From 1ee9236b50a309fa6fb3a08ef9ad0a664085d0d6 Mon Sep 17 00:00:00 2001
From: Andreas <andreasv@fsmpi.rwth-aachen.de>
Date: Tue, 25 Jul 2017 23:57:46 +0200
Subject: [PATCH] added thumbnails for livestreams, closes #251

---
 livestreams.py | 22 ++++++++++++++++++++++
 server.py      |  9 ++-------
 sorter.py      |  1 -
 3 files changed, 24 insertions(+), 8 deletions(-)
 create mode 100644 livestreams.py

diff --git a/livestreams.py b/livestreams.py
new file mode 100644
index 0000000..10118d8
--- /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 f535a6c..eb36456 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 720c6d3..472955b 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
-- 
GitLab