diff --git a/livestreams.py b/livestreams.py new file mode 100644 index 0000000000000000000000000000000000000000..10118d846b113d42958febf4b700e01f3dd62ffb --- /dev/null +++ b/livestreams.py @@ -0,0 +1,22 @@ +from server import * +from sorter import schedule_thumbnail + +def genlive(streams): + for stream in streams: + stream['visible'] = True + stream['downloadable'] = False + stream['path'] = 'pub/hls/%s.m3u8'%stream['livehandle'] + stream['file_size'] = 0 + return streams + +@sched_func(30) +def livestream_thumbnail(): + livestreams = query('''SELECT streams.handle AS livehandle, streams.lecture_id, "formats" AS sep, formats.* + FROM streams + JOIN lectures ON lectures.id = streams.lecture_id + JOIN formats ON formats.keywords = "hls" + WHERE streams.active AND (? OR streams.visible) + ''', ismod()) + for v in genlive(livestreams): + schedule_thumbnail(v.lecture_id) + diff --git a/server.py b/server.py index f535a6caa94d012244b4d8412d59ced03b4f71d9..eb36456dd10f0dbbb03d16a5caee166ea24531c2 100644 --- a/server.py +++ b/server.py @@ -381,13 +381,7 @@ def courses(): groupedby = 'semester' return render_template('courses.html', courses=courses, groupedby=groupedby) -def genlive(streams): - for stream in streams: - stream['visible'] = True - stream['downloadable'] = False - stream['path'] = 'pub/hls/%s.m3u8'%stream['livehandle'] - stream['file_size'] = 0 - return streams +from livestreams import genlive @app.route('/<handle>') @app.route('/<int:id>') @@ -692,3 +686,4 @@ if 'JOBS_API_KEY' in config: import timetable import chapters import icalexport +import livestreams diff --git a/sorter.py b/sorter.py index 720c6d34550f7170af56c1747f1caf9aa3bd7418..472955be7b5a981ec8ea20bd5d1c27f470be0555 100644 --- a/sorter.py +++ b/sorter.py @@ -36,7 +36,6 @@ def insert_video(lectureid,dbfilepath,filepath,fileformatid): schedule_thumbnail(lectureid) def schedule_thumbnail(lectureid): - path = query('SELECT path FROM videos WHERE lecture_id') videos = query(''' SELECT videos.path FROM videos