From 97364e4ee7a88a80e3f17ad777de964eb1e14fdf Mon Sep 17 00:00:00 2001 From: j Date: Thu, 5 Dec 2019 13:08:26 +0000 Subject: [PATCH] add volume from title --- cleanup/add_volume.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100755 cleanup/add_volume.py diff --git a/cleanup/add_volume.py b/cleanup/add_volume.py new file mode 100755 index 0000000..4aeae0d --- /dev/null +++ b/cleanup/add_volume.py @@ -0,0 +1,33 @@ +#!/usr/bin/python3 +import re + +import ox +import ox.api + +site = 'archive.leftove.rs' +api = ox.api.signin('https://%s/api/' % site) + +for regex, fragments in ( + ['Vol. \d+, No. \d+', ['Vol.', 'No.']], + ['Vol \d+ no \d+', [' Vol ', ' no ']], + ['Vol:\d+ #\d+', ['Vol:', '#']], +): + for doc in api.findDocuments({ + 'query': { + 'conditions': [ + {'key': 'title', 'operator': '=', 'value': fragment} + for fragment in fragments + ], + 'operator': '&' + }, + 'keys': ['id', 'title', 'volume'], + 'range': [0, 10000] + })['data']['items']: + if 'Vol' not in doc.get('volume', ''): + m = re.compile(regex).findall(doc['title']) + if m: + print(m[0], doc['id'], doc['title']) + api.editDocument({ + 'id': doc['id'], + 'volume': m[0].strip() + })