add cleanup example

This commit is contained in:
j 2019-06-08 10:32:39 +01:00
parent 1940d6b3dc
commit c0cff7c541
2 changed files with 48 additions and 0 deletions

47
cleanup_collection.py Executable file
View file

@ -0,0 +1,47 @@
#!/usr/bin/python3
import sys
import re
import ox.api
if len(sys.argv) != 3:
print('usage: %s <site> <collection>' % sys.argv[0])
sys.exit(1)
site = sys.argv[1]
collection = sys.argv[2]
api = ox.api.signin(site)
for d in api.findDocuments({
'query': {
'conditions': [{'key': 'collection', 'value': collection, 'operator': '=='}]
},
'keys': ['id', 'title'],
'sort': [{'key': 'title', 'operator': '+'}],
'range': [0, 10000]
})['data']['items']:
document = api.getDocument({
'id': d['id']
})['data']
# all edits here
edit = {}
title = document['title']
title = title.replace('_ocr', '')
title = title.replace('_', ' ').strip()
if title != document['title']:
edit['title'] = title
year = re.compile('\d{4}').findall(document['title'])
if year and not document.get('date'):
document['date'] = edit['date'] = year[0]
if document.get('date') and document['date'] in title:
title = title.replace(document['date'], '').strip()
edit['title'] = title
if edit:
edit['id'] = d['id']
print('update', d['id'], d['title'])
api.editDocument(edit)

View file

@ -4,6 +4,7 @@ import ox.api
if len(sys.argv) != 4: if len(sys.argv) != 4:
print('usage: %s <site> <old title prefix> <new title prefix>' % sys.argv[0]) print('usage: %s <site> <old title prefix> <new title prefix>' % sys.argv[0])
sys.exit(1)
site = sys.argv[1] site = sys.argv[1]
old_prefix = sys.argv[2] old_prefix = sys.argv[2]