From eb26c71a6bb90a943cc2de67e8fbb2bd52fa7be9 Mon Sep 17 00:00:00 2001 From: j Date: Wed, 9 May 2018 17:12:35 +0100 Subject: [PATCH 1/2] cleanup install --- install.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/install.py b/install.py index 9f8d049..592b6d9 100755 --- a/install.py +++ b/install.py @@ -4,12 +4,7 @@ from os.path import join, abspath, basename, dirname import os import re -# change this name = 'cms' -overwrite = ( - #('home', 'indiancinema'), - #('infoView', 'indiancinema'), -) base = abspath(dirname(__file__)) os.chdir(base) @@ -23,15 +18,6 @@ for root, folders, files in os.walk(join(base, 'static')): os.unlink(target) os.symlink(rel_src, target) -if overwrite: - os.chdir('/srv/pandora/static/js') - for filename, sitename in overwrite: - src = '%s.%s.js' % (filename, sitename) - target = '%s.%s.js' % (filename, name) - if os.path.exists(target): - os.unlink(target) - os.symlink(src, target) - os.chdir(base) src = join(base, 'config.jsonc') target = '/srv/pandora/pandora/config.%s.jsonc' % name From 842b28a2b0e91ee8b48776fa535b535c02395f82 Mon Sep 17 00:00:00 2001 From: j Date: Thu, 10 May 2018 10:32:03 +0100 Subject: [PATCH 2/2] backup script --- backup_films.py | 66 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100755 backup_films.py diff --git a/backup_films.py b/backup_films.py new file mode 100755 index 0000000..dc04fe3 --- /dev/null +++ b/backup_films.py @@ -0,0 +1,66 @@ +#!/usr/bin/python3 + +import os +import sys +import unicodedata + +import ox +import ox.api + + +def get_extension(api, oshash): + r = api.findMedia({'query': { + 'conditions': [{'key': 'oshash', 'value': oshash}] + }, 'keys': ['extension']})['data'] + return r['items'][0]['extension'] + + +if __name__ == '__main__': + target = sys.argv[1] + + site = 'pandora.cinemusespace.com' + api = ox.api.signin('https://%s/api/' % site) + + keep = [] + r = api.find({'range': [0, 1000], 'keys': ['id']}) + for i in r['data']['items']: + item = api.get(id=i['id'], keys=['id', 'streams', 'title', 'director', 'year', 'instances'])['data'] + director = item.get('director', ['Unknown Director']) + path = os.path.join('; '.join(director), '%s' % (item['title'])) + if 'year' in item: + path += ' (%s)' % item['year'] + path = ox.decode_html(path) + prefix = ox.decode_html(item['title']) + parts = [] + if len(item['streams']) == 1: + id = item['streams'][0] + ext = get_extension(api, id) + name = '%s.%s' % (item['title'], ext) + name = ox.decode_html(name) + part = 1 + parts.append([os.path.join(path, name), item['id'], id, part]) + else: + part = 1 + for id in item['streams']: + ext = get_extension(api, id) + name = '%s.Part %d.%s' % (prefix, part, ext) + name = ox.decode_html(name) + parts.append([os.path.join(path, name), item['id'], id, part]) + part += 1 + + for path, id, oshash, part in parts: + abspath = os.path.join(target, path) + if os.path.exists(abspath) and ox.oshash(abspath) != oshash: + os.unlink(abspath) + if not os.path.exists(abspath): + url = 'https://%s/%s/download/source/%s' % (site, id, part) + print('downloading', abspath[len(target) + 1:]) + api.save_url(url, abspath) + keep.append(unicodedata.normalize('NFD', abspath)) + + for root, folders, files in os.walk(target): + for f in files: + path = os.path.join(root, f) + if unicodedata.normalize('NFD', path) not in keep: + print('deleting', path) + os.unlink(path)