Skip to content
Snippets Groups Projects
Select Git revision
  • d4a35c409500ee0dc05acd4b563b403ddc684c37
  • main default
  • full_migration
  • v1.0.9 protected
  • v1.0.8 protected
  • v1.0.7 protected
  • v1.0.6 protected
  • v1.0.5 protected
  • v1.0.4 protected
  • v1.0.3 protected
  • v1.0.2 protected
  • v1.0.1 protected
  • v1.0 protected
13 results

app.py

Blame
  • 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'])