Skip to content
Snippets Groups Projects
Commit 35b7e9f7 authored by Julian Rother's avatar Julian Rother
Browse files

Implementet metadata remuxing

parent 1d152578
No related branches found
No related tags found
No related merge requests found
......@@ -29,3 +29,43 @@ def update_video_metadata(jobid, jobtype, data, state, status):
modify('UPDATE videos_data SET hash = ?, file_size = ? WHERE id = ?',
status['hash'], status['filesize'], data['video_id'])
def schedule_remux(lectureid):
lecture = query('SELECT * FROM lectures WHERE id = ?', lectureid)[0]
course = query('SELECT * FROM courses WHERE id = ?', lecture['course_id'])[0]
chapters = query('SELECT text, time FROM chapters WHERE lecture_id = ?', lectureid)
videos = query('SELECT videos.*, sources.path AS srcpath, sources.hash AS srchash FROM videos JOIN sources ON videos.source = sources.id WHERE videos.lecture_id = ?', lectureid)
metadata = {'title': lecture['title'], 'album': course['title'],
'description': lecture['comment'],
'date': lecture['time'].strftime('%m/%d/%Y'),
'artist': lecture['speaker'] if lecture['speaker'] else course['organizer']}
for video in videos:
if not video['source']:
continue
data = {'video_id': video['id'], 'path': video['path'],
'srcpath': video['srcpath'], 'srchash': video['srchash'],
'chapters': chapters, 'metadata': metadata}
schedule_job('remux', data)
@edit_handler('chapters')
def chapter_changed(table, column, value, id):
print('chapter_changed')
chapters = query('SELECT * FROM chapters WHERE id = ?', id)
if not chapters:
return
chapter = chapters[0]
if column in ['visible', 'deleted'] or (chapter['visible'] and not chapter['deleted']):
schedule_remux(chapter['lecture_id'])
@edit_handler('courses')
def course_changed(table, column, value, id):
if column not in ['title', 'organizer']:
return
lectures = query('SELECT * FROM lectures WHERE course_id = ?', id)
for lecture in lectures:
schedule_remux(lecture['id'])
@edit_handler('lectures')
def lecture_changed(table, column, value, id):
if column in ['title', 'comment', 'time', 'speaker']:
schedule_remux(id)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment