from sys import stdout import argparse import json logger = create_stream_logger('deleting', stdout) config = get_omeka_config() parser = argparse.ArgumentParser() parser.add_argument('-k', '--key', default=None, help='Omeka API Key') parser.add_argument('-u', '--api_url',default=None, help='Omeka API Endpoint URL (hint, ends in /api)') args = vars(parser.parse_args()) 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"), logger, apikey) deleted = {} for to_delete in ["items", "collections"]: logger.info('Deleting all %s', to_delete) resp, cont = omeka_client.get(to_delete) items = json.loads(cont) count = 0 for item in items: logger.info('Deleting %s: %s', to_delete, item['id']) omeka_client.delete(to_delete, item['id']) count += 1 deleted[to_delete] = count for d in deleted: logger.info('Deleted %d %s', deleted[d], d)
num_docs_found = 0 num_html_uploaded = 0 num_html_deleted = 0 for item in items: logger.info('Looking at %s', item['id']) #First pass - delete HTML if required if args['delete_html']: for f in omeka_client.get_files_for_item(item['id']): fname = f['original_filename'] name, ext = os.path.splitext(fname) if ext.lower() == ".html": logger.info("Deleting html file: %s", f['id']) num_html_deleted += 1 omeka_client.delete('files', f['id']) #Second pass do the conversion if required if not args['do_not_convert']: for f in omeka_client.get_files_for_item(item['id']): fname = f['original_filename'] name, ext = os.path.splitext(fname) if ext.lower() in [".docx", ".doc", ".odt", ".rtf"]: num_docs_found += 1 res, data = omeka_client.get_file(f['file_urls']['original']) download_file = os.path.join(temp_dir, fname) out = open(download_file, 'wb') out.write(data) out.close() logger.info("Converting office doc file %s to HTML", f['id'])
from omekaclient import OmekaClient from omekautils import get_omeka_config from omekautils import create_stream_logger from sys import stdout import argparse import json logger = create_stream_logger('deleting', stdout) config = get_omeka_config() parser = argparse.ArgumentParser() parser.add_argument('-k', '--key', default=None, help='Omeka API Key') parser.add_argument('-u', '--api_url', default=None, help='Omeka API Endpoint URL (hint, ends in /api)') args = vars(parser.parse_args()) 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"), logger, apikey) for to_delete in ["items", "collections"]: logger.info('Deleting all %s', to_delete) resp, cont = omeka_client.get(to_delete) items = json.loads(cont) for item in items: logger.info('Deleting %s: %s', to_delete, item['id']) omeka_client.delete(to_delete, item['id'])