mirror of
https://github.com/FakeTV/pseudo-channel.git
synced 2025-12-22 03:03:33 +00:00
Added logic to sleep / wake-up according to the 'schedule' lib memory schedule. TODO: clean up code / test.
This commit is contained in:
@@ -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:
|
||||
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
<wednesdays></wednesdays>
|
||||
<thursdays></thursdays>
|
||||
<fridays>
|
||||
<time title="Looney Tunes" type="series" strict-time="true" time-shift="1" overlap-max="">12:30 AM</time>
|
||||
</fridays>
|
||||
<saturdays></saturdays>
|
||||
<sundays></sundays>
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user