diff --git a/gen_details.py b/gen_details.py new file mode 100644 index 0000000..5c0408c --- /dev/null +++ b/gen_details.py @@ -0,0 +1,76 @@ +import sys +import csv +import urllib.response +import urllib.request + +# check if the user supplied the correct number of command line arguments +if len(sys.argv) != 6: + print("Usage: python titlegen.py inputfilename.csv startlineno endlineno outputfilename.csv API_key") + sys.exit(1) + # set the api key from the command line argument + +startlineno = int(sys.argv[2]) +endlineno = int(sys.argv[3]) +lineno = 0 +api_key = sys.argv[5] +with open(sys.argv[1], "r") as file: + outfile = open(sys.argv[4], "w") + writer = csv.writer(outfile) + reader = csv.reader(file) + for row in reader: + lineno += 1 + if (lineno < startlineno or lineno > endlineno): + continue + if lineno == 1: + newrow = row + row.append("Materials") + row.append("Dimensions") + writer.writerow(newrow) + continue + + # get the 7th column of the row to a string variable + itemurl = row[5] + print(itemurl) + # Extract the string after the last slash in the itemurl + itemid = itemurl.rsplit('/', 1)[-1] + print(itemid) + + # Fetch the xml data from "https://api.dimu.org/api/artifact?unique_id=&mapping=ESE&api.key= tag as string variables + + # Use an xml parser and extract the fields in the xml data that has are inside tag as string variables + from xml.dom.minidom import parse, parseString + + dom = parseString(data) + # Extract the fields in the xml data that has are inside tag as string variables + allmediums = "" + medium_list = dom.getElementsByTagName('dcterms:medium') + # iterate through the list of medium_list and print the value of the first child node of each element + + for medium in medium_list: + mediumname = medium.firstChild.nodeValue + allmediums += mediumname + " " + print(allmediums) + + allextents = "" + extent_list = dom.getElementsByTagName('dcterms:extent') + # iterate through the list of extent_list and print the value of the first child node of each element + for extent in extent_list: + extentitem = extent.firstChild.nodeValue + allextents += extentitem + " " + print(allextents) + + # Generate a new row with the previosu row appended with the new fields medium and extent + newrow = row + newrow.append(allmediums) + newrow.append(allextents) + writer.writerow(newrow) + + outfile.close() + file.close()