import urllib.parse import requests def get_user_input(): paramDmsId = input("Enter DMS_ID: ") or "" paramUPC = input("Enter UPC: ") or "" paramMobile = input("Enter RINGTONE (Yes/No): ") or "No" paramServer = "webservices.theorchard.com" paramClipCode = f"{paramUPC}_1_1_1" print("Select TYPE:\n1. Complete Album\n2. Metadata Update") type_selection = input("Enter 1 or 2: ") type_options = {"1": "complete_album", "2": "metadata_update"} paramType = urllib.parse.quote(type_options.get(type_selection, "")) print( "Select FORMAT:\n1. DDEX v. 3.8\n2. DDEX v. 3.7\n3. DDEX v. " "3.4\n4. DDEX v. 3.2\n5. [UNDER DEVELOPMENT] DDEX RDR 1.4\n6. iTunes Music\n7. iTunes Film\n8. Orchard 1.5\n9. Custom XML (Frmwk 2)\n10. Custom XML (Frmwk 3)\n11. Custom Film XML (Frmwk 3)\n12. Custom TV XML (Frmwk 3)" ) format_selection = input("Enter 1-12: ") format_options = { "1": "DDEX v. 3.8", "2": "DDEX v. 3.7", "3": "DDEX v. 3.4", "4": "DDEX v. 3.2", "5": "[UNDER DEVELOPMENT] DDEX RDR 1.4", "6": "iTunes Music", "7": "iTunes Film", "8": "Orchard 1.5", "9": "Custom XML (Frmwk 2)", "10": "Custom XML (Frmwk 3)", "11": "Custom Film XML (Frmwk 3)", "12": "Custom TV XML (Frmwk 3)", } paramFormat = format_options.get(format_selection, "") return ( paramDmsId, paramUPC, paramMobile, paramServer, paramClipCode, paramType, paramFormat, ) def construct_url( paramDmsId, paramUPC, paramMobile, paramServer, paramType, paramFormat ): formatMap = { "DDEX v. 3.8": "ddex38", "DDEX v. 3.7": "ddex37", "DDEX v. 3.4": "ddex34", "DDEX v. 3.2": "ddex32", "[UNDER DEVELOPMENT] DDEX RDR 1.4": "ddexrdr", "iTunes Music": "itunes", "iTunes Film": "itunesfilm", "Orchard 1.5": "orchard", "Custom XML (Frmwk 2)": "orchard_old", "Custom XML (Frmwk 3)": "orchard_new", "Custom Film XML (Frmwk 3)": "orchard_new_film", "Custom TV XML (Frmwk 3)": "orchard_new_tv", } urlArray = { "ddex38": f"generate/dms_id/{paramDmsId}/storename/ddexern/version/3.8.0", "ddex37": f"generate/dms_id/{paramDmsId}/storename/ddexern/version/3.7.0", "ddex34": f"generate/dms_id/{paramDmsId}/storename/ddexern/version/3.4.0", "ddex32": f"generate/dms_id/{paramDmsId}/storename/ddexern/version/1.32.0", "ddexrdr": f"generate/dms_id/{paramDmsId}/storename/ddexrdr/version/1.4", "itunes": "generate/dms_id/1/subformat/music", "itunesfilm": "generate/dms_id/1/subformat/film", "orchard": f"generate/dms_id/{paramDmsId}/storename/orchard/version/1.5", "custom_old": f"wg_metadata.php/dms_id/{paramDmsId}", "custom_new": f"generate/dms_id/{paramDmsId}", "custom_new_film": f"generate/dms_id/{paramDmsId}/subformat/film", "custom_new_tv": f"generate/dms_id/{paramDmsId}/subformat/tv", } param_clip_code = f"{paramUPC}_1_1_1" mobile_link = ( f"/mobile/1/clip_code/{param_clip_code}" if paramMobile == "Yes" else "" ) xml_link = f"https://{paramServer}/oa/metadata/{urlArray[formatMap[paramFormat]]}/returnErr/1/xml_only/0/delivery_type/{paramType}/upc/{paramUPC}{mobile_link}" return xml_link try: paramDmsId, paramUPC, paramMobile, paramServer, paramClipCode, paramType, paramFormat = get_user_input() xml_link = construct_url(paramDmsId, paramUPC, paramMobile, paramServer, paramType, paramFormat) # Capture the returned xml_link response = requests.get(xml_link) print(response.text) except Exception as e: print(f"An error occurred: {e}")