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.
           
Beispiel #2
0
        
        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 = []