From 3d521c0c0b043cd9deccb11533e7fbbf53d799c3 Mon Sep 17 00:00:00 2001 From: Justin Emter Date: Sat, 11 Nov 2017 11:54:04 -0800 Subject: [PATCH] Added 'useDirtyGapFix' option to pseudo_config in order to fill up empty gaps with commercials and allow the app to cutoff the last commercial. --- PseudoChannel.py | 4 +++- pseudo_config.py | 5 +++++ src/PseudoChannelCommercial.py | 5 ++++- src/PseudoChannelDatabase.py | 8 ++++---- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/PseudoChannel.py b/PseudoChannel.py index a1e8adc..8fc412e 100644 --- a/PseudoChannel.py +++ b/PseudoChannel.py @@ -48,6 +48,7 @@ class PseudoChannel(): USE_OVERRIDE_CACHE = config.useDailyOverlapCache DEBUG = config.debug_mode ROTATE_LOG = config.rotateLog + USE_DIRTY_GAP_FIX = config.useDirtyGapFix def __init__(self): @@ -356,7 +357,8 @@ class PseudoChannel(): if self.USING_COMMERCIAL_INJECTION: self.commercials = PseudoChannelCommercial( self.db.get_commercials(), - self.COMMERCIAL_PADDING_IN_SECONDS + self.COMMERCIAL_PADDING_IN_SECONDS, + self.USE_DIRTY_GAP_FIX ) schedule = self.db.get_schedule() weekday_dict = { diff --git a/pseudo_config.py b/pseudo_config.py index dd4d5db..19c08d4 100644 --- a/pseudo_config.py +++ b/pseudo_config.py @@ -76,6 +76,11 @@ rotateLog = "friday" """Debug mode will give you more output in your terminal to help problem solve issues.""" debug_mode = True +"""This squeezes in one last commercial to fill up the empty gaps even if the last commercial gets cutoff +Set this to false if you don't want your commercials to get cutoff/don't mind the gap. +""" +useDirtyGapFix = True + """ ##### Do not edit below this line--------------------------------------------------------------- diff --git a/src/PseudoChannelCommercial.py b/src/PseudoChannelCommercial.py index 490183a..93dd80a 100644 --- a/src/PseudoChannelCommercial.py +++ b/src/PseudoChannelCommercial.py @@ -13,10 +13,11 @@ class PseudoChannelCommercial(): COMMERCIAL_PADDING_IN_SECONDS = 0 daily_schedule = [] - def __init__(self, commercials, commercialPadding): + def __init__(self, commercials, commercialPadding, useDirtyGapFix): self.commercials = commercials self.COMMERCIAL_PADDING_IN_SECONDS = commercialPadding + self.USE_DIRTY_GAP_FIX = useDirtyGapFix def get_random_commercial(self): @@ -81,6 +82,8 @@ class PseudoChannelCommercial(): ) last_commercial = new_commercial if new_commercial_end_time > curr_item_start_time: + if self.USE_DIRTY_GAP_FIX: + commercial_list.append(new_commercial) break commercial_list.append(new_commercial) return commercial_list \ No newline at end of file diff --git a/src/PseudoChannelDatabase.py b/src/PseudoChannelDatabase.py index df3eddf..320f5eb 100644 --- a/src/PseudoChannelDatabase.py +++ b/src/PseudoChannelDatabase.py @@ -40,13 +40,13 @@ class PseudoChannelDatabase(): 'mediaID INTEGER, title TEXT, duration INTEGER, plexMediaID TEXT)') self.cursor.execute('CREATE TABLE IF NOT EXISTS ' 'schedule(id INTEGER PRIMARY KEY AUTOINCREMENT, unix INTEGER, ' - 'mediaID INTEGER, title TEXT, duration INTEGER, startTime INTEGER, ' - 'endTime INTEGER, dayOfWeek TEXT, startTimeUnix INTEGER, section TEXT, ' + 'mediaID INTEGER, title TEXT, duration INTEGER, startTime TEXT, ' + 'endTime TEXT, dayOfWeek TEXT, startTimeUnix INTEGER, section TEXT, ' 'strictTime TEXT, timeShift TEXT, overlapMax TEXT, xtra TEXT)') self.cursor.execute('CREATE TABLE IF NOT EXISTS ' 'daily_schedule(id INTEGER PRIMARY KEY AUTOINCREMENT, unix INTEGER, ' 'mediaID INTEGER, title TEXT, episodeNumber INTEGER, seasonNumber INTEGER, ' - 'showTitle TEXT, duration INTEGER, startTime INTEGER, endTime INTEGER, ' + 'showTitle TEXT, duration INTEGER, startTime TEXT, endTime TEXT, ' 'dayOfWeek TEXT, sectionType TEXT, plexMediaID TEXT)') self.cursor.execute('CREATE TABLE IF NOT EXISTS ' 'app_settings(id INTEGER PRIMARY KEY AUTOINCREMENT, version TEXT)') @@ -90,7 +90,7 @@ class PseudoChannelDatabase(): self.cursor.execute('CREATE TABLE IF NOT EXISTS ' 'daily_schedule(id INTEGER PRIMARY KEY AUTOINCREMENT, unix INTEGER, ' 'mediaID INTEGER, title TEXT, episodeNumber INTEGER, seasonNumber INTEGER, ' - 'showTitle TEXT, duration INTEGER, startTime INTEGER, endTime INTEGER, ' + 'showTitle TEXT, duration INTEGER, startTime TEXT, endTime TEXT, ' 'dayOfWeek TEXT, sectionType TEXT, plexMediaID TEXT)') self.conn.commit()