@@ -68,9 +68,9 @@ def _fetch_requested_urls(self, conn):
6868 else "SELECT path, duration, live_status FROM media WHERE path LIKE 'http%' AND time_created > ?" )
6969 rows = conn .execute (query , (int (self .start_time .timestamp ()),)).fetchall ()
7070 requested_urls = {}
71- for path , duration in rows :
71+ for path , duration , live_status in rows :
7272 if duration is not None and duration > 0 :
73- requested_urls [path ] = {"duration" : duration }
73+ requested_urls [path ] = {"duration" : duration , "live_status" : live_status }
7474 else :
7575 self .unavailable .append (path )
7676 return requested_urls
@@ -125,10 +125,10 @@ def _sort_and_limit_requested_urls(self, requested_urls):
125125 return dict (sorted (requested_urls .items (), key = lambda item : item [1 ]["views_per_day" ], reverse = True )[:min (MAX_VIDEOS_PER_DOWNLOAD , len (requested_urls ))])
126126
127127 def _add_download_tasks_to_worker (self , requested_urls ):
128- for index , requested_url in enumerate (requested_urls .keys ()):
128+ for index , ( requested_url , url_data ) in enumerate (requested_urls .items ()):
129129 task_download = TaskDownload (_ ("Downloading %(url)s..." , url = requested_url ),
130130 requested_url , self .original_url ,
131- self .current_user_name , self .shelf_id )
131+ self .current_user_name , self .shelf_id , duration = str ( url_data [ "duration" ]), live_status = url_data [ "live_status" ] )
132132 WorkerThread .add (self .current_user_name , task_download )
133133 num_requested_urls = len (requested_urls )
134134 total_duration = sum (url_data ["duration" ] for url_data in requested_urls .values ())
@@ -140,6 +140,13 @@ def _add_download_tasks_to_worker(self, requested_urls):
140140 self .message += f"<br><br>Shelf Title: <a href='{ shelf_url } ' target='_blank'>{ self .shelf_title } </a>"
141141 if self .unavailable :
142142 self .message += "<br><br>Unavailable Video(s):<br>" + "<br>" .join (f'<a href="{ url } " target="_blank">{ url } </a>' for url in self .unavailable )
143+ upcoming_live_urls = [url for url , url_data in requested_urls .items () if url_data ["live_status" ] == "is_upcoming" ]
144+ live_urls = [url for url , url_data in requested_urls .items () if url_data ["live_status" ] == "is_live" ]
145+ if upcoming_live_urls :
146+ self .message += "<br><br>Upcoming Live Video(s):<br>" + "<br>" .join (f'<a href="{ url } " target="_blank">{ url } </a>' for url in upcoming_live_urls )
147+ if live_urls :
148+ self .message += "<br><br>Live Video(s):<br>" + "<br>" .join (f'<a href="{ url } " target="_blank">{ url } </a>' for url in live_urls )
149+
143150
144151 def run (self , worker_thread ):
145152 self .worker_thread = worker_thread
0 commit comments