Select Git revision
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
encoding.py 1.27 KiB
from server import *
@job_handler('probe', 'probe-raw')
def import_xmp_chapters(jobid, jobtype, data, state, status):
if 'lecture_id' not in data and data.get('import-chapters', False):
return
times = set()
# Only add new chapters, deleted chapters are taken into account here
for chapter in query('SELECT * FROM chapters WHERE lecture_id = ?', data['lecture_id']):
for offset in range(5):
times.add(chapter['time']-offset)
times.add(chapter['time']+offset)
for chapter in status.get('xmp_chapters', []):
if int(chapter['time']) in times:
continue
modify('INSERT INTO chapters (lecture_id, time, text, visible, time_created, time_updated) VALUES (?, ?, ?, 0, ?, ?)',
data['lecture_id'], int(chapter['time']), chapter['text'],
datetime.now(), datetime.now())
@job_handler('probe', 'remux', 'transcode')
def update_video_metadata(jobid, jobtype, data, state, status):
if 'video_id' not in data:
return
if jobtype not in ['remux', 'transcode']:
video = query('SELECT * FROM videos WHERE id = ?', data['video_id'])[0]
if video['hash'] and video['hash'] != status['hash']:
print('Hash mismatch for video', data['video_id'])
return
modify('UPDATE videos_data SET hash = ?, file_size = ? WHERE id = ?',
status['hash'], status['filesize'], data['video_id'])