From 62b50cc06f0092ad5edb402e3ec3f0854a8547ae Mon Sep 17 00:00:00 2001 From: ChuckBuilds <33324927+ChuckBuilds@users.noreply.github.com> Date: Mon, 18 Aug 2025 21:35:54 -0500 Subject: [PATCH] fix display start time on odds ticker and added amazon prime video logo to broadcast --- assets/broadcast_logos/prime.png | Bin 0 -> 24429 bytes src/odds_ticker_manager.py | 41 ++++++++++++++++--------------- 2 files changed, 21 insertions(+), 20 deletions(-) create mode 100644 assets/broadcast_logos/prime.png diff --git a/assets/broadcast_logos/prime.png b/assets/broadcast_logos/prime.png new file mode 100644 index 0000000000000000000000000000000000000000..a75ff9f3b9e4fbf94fe1019f9f81d33c09488729 GIT binary patch literal 24429 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 literal 0 HcmV?d00001 diff --git a/src/odds_ticker_manager.py b/src/odds_ticker_manager.py index ef058458..af1bcb53 100644 --- a/src/odds_ticker_manager.py +++ b/src/odds_ticker_manager.py @@ -1437,6 +1437,11 @@ class OddsTickerManager: logger.debug("Odds ticker is disabled, exiting display method.") return + # Initialize display start time if not set + if not hasattr(self, '_display_start_time'): + self._display_start_time = time.time() + logger.debug(f"Initialized display start time: {self._display_start_time}") + logger.debug(f"Number of games in data at start of display method: {len(self.games_data)}") if not self.games_data: logger.warning("Odds ticker has no games data. Attempting to update...") @@ -1493,27 +1498,23 @@ class OddsTickerManager: # Check if we're at a natural break point for mode switching # If we're near the end of the display duration and not at a clean break point, # adjust the scroll position to complete the current game display - if hasattr(self, '_display_start_time'): - elapsed_time = current_time - self._display_start_time - remaining_time = self.dynamic_duration - elapsed_time + elapsed_time = current_time - self._display_start_time + remaining_time = self.dynamic_duration - elapsed_time + + # If we have less than 2 seconds remaining and we're not at a clean break point, + # try to complete the current game display + if remaining_time < 2.0 and self.scroll_position > 0: + # Calculate how much time we need to complete the current scroll position + frames_to_complete = (self.ticker_image.width - self.scroll_position) / self.scroll_speed + time_to_complete = frames_to_complete * self.scroll_delay - # If we have less than 2 seconds remaining and we're not at a clean break point, - # try to complete the current game display - if remaining_time < 2.0 and self.scroll_position > 0: - # Calculate how much time we need to complete the current scroll position - frames_to_complete = (self.ticker_image.width - self.scroll_position) / self.scroll_speed - time_to_complete = frames_to_complete * self.scroll_delay - - if time_to_complete <= remaining_time: - # We have enough time to complete the scroll, continue normally - pass - else: - # Not enough time, reset to beginning for clean transition - logger.debug(f"Display ending soon, resetting scroll position for clean transition") - self.scroll_position = 0 - else: - # First time through, record the start time - self._display_start_time = current_time + if time_to_complete <= remaining_time: + # We have enough time to complete the scroll, continue normally + pass + else: + # Not enough time, reset to beginning for clean transition + logger.debug(f"Display ending soon, resetting scroll position for clean transition") + self.scroll_position = 0 # Create the visible part of the image by pasting from the ticker_image visible_image = Image.new('RGB', (width, height))