if previous_id != None: logger.info("Re-uploading %s", previous_id) response, content = omeka_client.put("items" , previous_id, jsonstr) new_item = json.loads(content) if 'id' not in new_item: print new_item else: logger.info("Uploading new version") response, content = omeka_client.post("items", jsonstr) #Looks like the ID wasn't actually there, so get it to mint a new one if response['status'] == '404': logger.info("retrying") response, content = omeka_client.post("items", jsonstr) # Have new (or old) item now new_item = json.loads(content) item.omeka_id = new_item['id'] uploaded_item_ids.append(item.omeka_id) # Relate to other items for r in item.relations: property_id = omeka_client.getRelationPropertyIdByLocalPart(r.namespace.prefix, r.field_name) object_id = previous_id = omeka_client.get_item_id_by_dc_identifier(r.value) if object_id != None: logger.info("Relating this item %s to another. Property %s, target %s", item.omeka_id, property_id, object_id) omeka_client.addItemRelation(item.omeka_id, property_id, object_id) download_and_upload_files(item)