Skip to content
Snippets Groups Projects
Select Git revision
  • 02b9cf2a8d1a2e1bb8f6e3c8fa585b6fdaa1a548
  • master default protected
  • intros
  • live_sources
  • bootstrap4
  • modules
6 results

chapters.py

Blame
  • Forked from Video AG Infrastruktur / website
    Source project has a limited visibility.
    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'])