diff --git a/PseudoChannel.py b/PseudoChannel.py index 65df29f..ebae3de 100644 --- a/PseudoChannel.py +++ b/PseudoChannel.py @@ -1060,12 +1060,46 @@ if __name__ == '__main__': """ - daily_update_time = datetime.datetime.strptime( - pseudo_channel.translate_time( - pseudo_channel.DAILY_UPDATE_TIME - ), - pseudo_channel.APP_TIME_FORMAT_STR - ) + + + def trigger_what_should_be_playing_now(): + + def nearest(items, pivot): + return min(items, key=lambda x: abs(x - pivot)) + + daily_schedule = pseudo_channel.db.get_daily_schedule() + + dates_list = [datetime.datetime.strptime(''.join(str(date[8])), "%I:%M:%S %p") for date in daily_schedule] + + now = datetime.datetime.now() + + now = now.replace(year=1900, month=1, day=1) + + closest_media = nearest(dates_list, now) + + print closest_media + + for item in daily_schedule: + + item_time = datetime.datetime.strptime(''.join(str(item[8])), "%I:%M:%S %p") + + if item_time == closest_media: + + print "Here", item + + elapsed_time = closest_media - now + + print elapsed_time.total_seconds() + + # we need to play the content and add an offest + if elapsed_time.total_seconds() < 0: + + offset = int(abs(elapsed_time.total_seconds() * 1000)) + + print(offset) + + pseudo_channel.controller.play(item, daily_schedule, offset) + def job_that_executes_once(item, schedulelist): @@ -1138,6 +1172,8 @@ if __name__ == '__main__': go_generate_daily_sched ).tag('daily-update') + trigger_what_should_be_playing_now() + try: while True: diff --git a/src/PseudoDailyScheduleController.py b/src/PseudoDailyScheduleController.py index 2d20cdd..e4ba12f 100644 --- a/src/PseudoDailyScheduleController.py +++ b/src/PseudoDailyScheduleController.py @@ -480,7 +480,7 @@ class PseudoDailyScheduleController(): * @return null * ''' - def play_media(self, mediaType, mediaParentTitle, mediaTitle): + def play_media(self, mediaType, mediaParentTitle, mediaTitle, offset): try: @@ -499,7 +499,7 @@ class PseudoDailyScheduleController(): clientItem = self.PLEX.client(client) - clientItem.playMedia(item) + clientItem.playMedia(item, offset=offset) break @@ -511,7 +511,7 @@ class PseudoDailyScheduleController(): clientItem = self.PLEX.client(client) - clientItem.playMedia(movie) + clientItem.playMedia(movie, offset=offset) elif mediaType == "Commercials": @@ -521,7 +521,7 @@ class PseudoDailyScheduleController(): clientItem = self.PLEX.client(client) - clientItem.playMedia(movie) + clientItem.playMedia(movie, offset=offset) else: @@ -581,7 +581,7 @@ class PseudoDailyScheduleController(): break - def play(self, row, datalist): + def play(self, row, datalist, offset=0): print str("##### Starting Media: '{}'".format(row[3])).encode('UTF-8') @@ -590,7 +590,7 @@ class PseudoDailyScheduleController(): timeB = datetime.strptime(row[8], '%I:%M:%S %p') - self.play_media(row[11], row[6], row[3]) + self.play_media(row[11], row[6], row[3], offset) self.write_schedule_to_file( self.get_html_from_daily_schedule(