From 09e1f2833c24397583309c0ec79c2976d36f1dee Mon Sep 17 00:00:00 2001 From: j Date: Thu, 15 Nov 2018 11:57:26 +0000 Subject: [PATCH] add render mode on pandora server --- edit.py | 41 ++++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/edit.py b/edit.py index 83ad2dd..301760d 100755 --- a/edit.py +++ b/edit.py @@ -7,6 +7,7 @@ import os import sys import urllib.parse import urllib.request +from glob import glob import ox import ox.web.auth @@ -100,24 +101,37 @@ def sort_clips(edit, sort): s = sorted(clips, key=lambda c: ids.index(c['id']) if c['id'] in ids else -1) return s -def cache_clips(api, videos, use_source=False): +def get_pandora_media_path(oshash): + h = oshash + path = '/srv/pandora/data/media/' + '/'.join([h[:2], h[2:4], h[4:6], h[6:]]) + path = glob('%s/data.*' % path) + if path: + path = path[0] + else: + path = ox.sorted_strings(glob('%s/*.mp4' % path))[-1] + return path + +def cache_clips(api, videos, use_source=False, use_pandora=False): for clip in videos: out = '%s/%s.mp4' % (render, clip['oshash']) if 'path' in clip: clip['src'] = clip['path'] clip['path'] = out if not os.path.exists(out): - url = clip['url'] - if use_source: - name = url.split('/')[-1].split('.')[0] - resolution, part = name.split('p') - if part and part.isdigit(): - part = int(part) - else: - part = 1 - url = '/'.join(url.split('/')[:-1] + ['download', 'source', str(part)]) - print(url, out) - api.save_url(url, out) + if use_pandora: + os.symlink(get_pandora_media_path(clip['oshash']), out) + else: + url = clip['url'] + if use_source: + name = url.split('/')[-1].split('.')[0] + resolution, part = name.split('p') + if part and part.isdigit(): + part = int(part) + else: + part = 1 + url = '/'.join(url.split('/')[:-1] + ['download', 'source', str(part)]) + print(url, out) + api.save_url(url, out) if __name__ == '__main__': @@ -138,6 +152,7 @@ if __name__ == '__main__': edit_url = opts.url use_local = opts.source == 'local' use_source = opts.source == 'source' + use_pandora = opts.source == 'pandora' prefix = opts.prefix parts = edit_url.split('/') site = parts[2] @@ -238,7 +253,7 @@ if __name__ == '__main__': position = math.ceil(position / (1/25)) * 1/25 if not use_local: - cache_clips(api, videos, use_source) + cache_clips(api, videos, use_source, use_pandora) name = normalize(edit_id) if sort_by != 'year':