diff --git a/PseudoChannel.py b/PseudoChannel.py
index 117d01a..dd8dfc1 100644
--- a/PseudoChannel.py
+++ b/PseudoChannel.py
@@ -26,9 +26,6 @@ import xml.etree.ElementTree as ET
import schedule
-from threading import Timer
-import signal
-
from time import sleep
import pseudo_config as config
@@ -1063,14 +1060,76 @@ if __name__ == '__main__':
"""
- the_daily_schedule = pseudo_channel.db.get_daily_schedule()
-
daily_update_time = datetime.datetime.strptime(
pseudo_channel.translate_time(
pseudo_channel.DAILY_UPDATE_TIME
),
pseudo_channel.APP_TIME_FORMAT_STR
- )
+ )
+
+ def job_that_executes_once(item, schedulelist):
+
+ print "##### Readying media: '{}'".format(item[3])
+
+ next_start_time = datetime.datetime.strptime(item[8], "%I:%M:%S %p")
+
+ now = datetime.datetime.now()
+
+ now = now.replace(year=1900, month=1, day=1)
+
+ now_for_update = now.replace(microsecond=0)
+
+
+ if now_for_update == time(
+ daily_update_time.hour,
+ daily_update_time.minute,
+ daily_update_time.second
+ ):
+
+ if pseudo_channel.USING_GOOGLE_CALENDAR:
+
+ pseudo_channel.update_schedule_from_google_calendar()
+
+ the_daily_schedule = pseudo_channel.db.get_daily_schedule()
+
+ else:
+
+ pass
+
+ pseudo_channel.generate_daily_schedule()
+
+ the_daily_schedule = pseudo_channel.db.get_daily_schedule()
+
+ """------------------"""
+
+ time_diff = next_start_time - now
+
+ if time_diff.total_seconds() > 0:
+
+
+ print "+++++ Sleeping for {} seconds before playing: '{}'".format(time_diff.total_seconds(), item[3])
+ sleep(time_diff.total_seconds())
+
+ print "Woke up!"
+
+ pseudo_channel.controller.play(item, schedulelist)
+
+ return schedule.CancelJob
+
+ def generate_memory_schedule(schedulelist):
+
+ print "##### Generating Memory Schedule."
+
+ for item in schedulelist:
+
+ trans_time = datetime.datetime.strptime(item[8], "%I:%M:%S %p").strftime("%H:%M")
+
+ schedule.every().day.at(trans_time).do(job_that_executes_once, item, schedulelist).tag()
+
+ print "+++++ Done."
+
+
+ #the_daily_schedule = pseudo_channel.db.get_daily_schedule()
def run_task():
@@ -1109,7 +1168,9 @@ if __name__ == '__main__':
print '{}'.format(datetime.datetime.now(), end="\r")
- schedule.every(1).seconds.do(run_task)
+ #schedule.every(1).seconds.do(run_task)
+
+ generate_memory_schedule(pseudo_channel.db.get_daily_schedule())
try:
diff --git a/pseudo_schedule.xml b/pseudo_schedule.xml
index 9c0e60f..86f9fa3 100644
--- a/pseudo_schedule.xml
+++ b/pseudo_schedule.xml
@@ -11,7 +11,6 @@
-
diff --git a/src/PseudoDailyScheduleController.py b/src/PseudoDailyScheduleController.py
index e35890a..baa1154 100644
--- a/src/PseudoDailyScheduleController.py
+++ b/src/PseudoDailyScheduleController.py
@@ -570,6 +570,45 @@ class PseudoDailyScheduleController():
self.write_refresh_bool_to_file()
break
+
+ def play(self, row, datalist):
+
+ print("Starting Media: " + row[3])
+ print(row)
+
+ timeB = datetime.strptime(row[8], '%I:%M:%S %p')
+
+ self.play_media(row[11], row[6], row[3])
+
+ self.write_schedule_to_file(
+ self.get_html_from_daily_schedule(
+ timeB,
+ self.get_show_photo(
+ row[11],
+ row[6] if row[11] == "TV Shows" else row[3]
+ ),
+ datalist
+ )
+ )
+
+ self.write_refresh_bool_to_file()
+
+ """Generate / write XML to file
+ """
+ self.write_xml_to_file(
+ self.get_xml_from_daily_schedule(
+ timeB,
+ self.get_show_photo(
+ row[11],
+ row[6] if row[11] == "TV Shows" else row[3]
+ ),
+ datalist
+ )
+ )
+
+ self.my_logger.debug('Trying to play: ' + row[3])
+
+
'''
*
* Check DB / current time. If that matches a scheduled shows startTime then trigger play via Plex API