config = get_omeka_config() endpoint = args['api_url'] if args['api_url'] <> None else config['api_url'] apikey = args['key'] if args['api_url'] <> None else config['key'] omeka_client = OmekaClient(endpoint.encode("utf-8"), apikey) file_stash = re.sub(":|/","_",endpoint) + ".json" print file_stash; if os.path.exists(file_stash): id_map = json.load(open(file_stash)) else: id_map = {} dir = args['dir'] exif_id = omeka_client.getSetId("EXIF", create=True) dc_id = omeka_client.getSetId("Dublin Core") title_id = omeka_client.getElementId(dc_id, "Title") collection_id = omeka_client.getCollectionId("Photos", create=True) item_type_id = omeka_client.getItemTypeId("Still Image", create=True) exif_fields = ["LensID", "FOV", "DOF", "Make", "Model", "FileName", "ExposureTime", "FNumber", "FocusDistance"] for root, dirs, files in os.walk(dir): for file in files: ext = os.path.splitext(file)[1] if ext.lower() in extensions: file_path = os.path.join(root, file) pic_data = json.loads(subprocess.check_output(["exiftool", "-json", file_path]))[0] #TODO - upload the pics #TODO Create new fields for new metadata.
def map_element(key, element_id, set_name): mapping.collection_field_mapping[collection_name][key] = element_id mapping.supplied_element_names.append({"Collection": collection_name, "Column": key, "Omeka Element Set": set_name, "Omeka Element": key, "Linked": "", "Related": "", "Download": "", "File": ""}) for key in d['data'][0]: for set_name in default_element_set_names: set_id = omeka_client.getSetId(set_name) element_id = omeka_client.getElementId(set_id, key) if element_id <> None and not key in mapping.collection_field_mapping[collection_name]: map_element(key, element_id, set_name) if args['create_elements'] and key <> "Omeka Type" and not key in mapping.collection_field_mapping[collection_name]: set_name = 'Bespoke Metadata' set_id = omeka_client.getSetId(set_name, create=True) element_id = omeka_client.getElementId(set_id, key, create=args['create_elements']) map_element(key, element_id, set_name) for item in d['data']: stuff_to_upload = False relations = [] element_texts = [] URLs = []