from server import * 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)