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'])
Beispiel #4
0
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'])