mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-04-11 21:33:00 +00:00
added game time and date to ticker
This commit is contained in:
@@ -386,6 +386,7 @@ class OddsTickerManager:
|
|||||||
team_font = self.fonts['medium']
|
team_font = self.fonts['medium']
|
||||||
odds_font = self.fonts['medium']
|
odds_font = self.fonts['medium']
|
||||||
vs_font = self.fonts['medium']
|
vs_font = self.fonts['medium']
|
||||||
|
datetime_font = self.fonts['small'] # Use small font for date/time
|
||||||
|
|
||||||
# Get team logos
|
# Get team logos
|
||||||
home_logo = self._get_team_logo(game['home_team'], game['logo_dir'])
|
home_logo = self._get_team_logo(game['home_team'], game['logo_dir'])
|
||||||
@@ -403,12 +404,28 @@ class OddsTickerManager:
|
|||||||
vs_text = "vs."
|
vs_text = "vs."
|
||||||
vs_width = int(temp_draw.textlength(vs_text, font=vs_font))
|
vs_width = int(temp_draw.textlength(vs_text, font=vs_font))
|
||||||
|
|
||||||
|
# Format date and time
|
||||||
|
game_time = game['start_time']
|
||||||
|
timezone_str = self.config.get('timezone', 'UTC')
|
||||||
|
try:
|
||||||
|
tz = pytz.timezone(timezone_str)
|
||||||
|
except pytz.exceptions.UnknownTimeZoneError:
|
||||||
|
tz = pytz.UTC
|
||||||
|
|
||||||
|
if game_time.tzinfo is None:
|
||||||
|
game_time = game_time.replace(tzinfo=pytz.UTC)
|
||||||
|
local_time = game_time.astimezone(tz)
|
||||||
|
|
||||||
|
datetime_text = local_time.strftime("%a %-m/%d %-I:%M%p").lower()
|
||||||
|
|
||||||
# Team and record text
|
# Team and record text
|
||||||
away_team_text = f"{game.get('away_team', 'N/A')} ({game.get('away_record', '') or 'N/A'})"
|
away_team_text = f"{game.get('away_team', 'N/A')} ({game.get('away_record', '') or 'N/A'})"
|
||||||
home_team_text = f"{game.get('home_team', 'N/A')} ({game.get('home_record', '') or 'N/A'})"
|
home_team_text = f"{game.get('home_team', 'N/A')} ({game.get('home_record', '') or 'N/A'})"
|
||||||
|
|
||||||
away_team_width = int(temp_draw.textlength(away_team_text, font=team_font))
|
away_team_width = int(temp_draw.textlength(away_team_text, font=team_font))
|
||||||
home_team_width = int(temp_draw.textlength(home_team_text, font=team_font))
|
home_team_width = int(temp_draw.textlength(home_team_text, font=team_font))
|
||||||
team_info_width = max(away_team_width, home_team_width)
|
datetime_width = int(temp_draw.textlength(datetime_text, font=datetime_font))
|
||||||
|
team_info_width = max(away_team_width, home_team_width, datetime_width)
|
||||||
|
|
||||||
# Odds text
|
# Odds text
|
||||||
odds = game.get('odds') or {}
|
odds = game.get('odds') or {}
|
||||||
@@ -419,6 +436,14 @@ class OddsTickerManager:
|
|||||||
home_spread = home_team_odds.get('spread_odds')
|
home_spread = home_team_odds.get('spread_odds')
|
||||||
away_spread = away_team_odds.get('spread_odds')
|
away_spread = away_team_odds.get('spread_odds')
|
||||||
|
|
||||||
|
# Fallback to top-level spread from odds_manager
|
||||||
|
top_level_spread = odds.get('spread')
|
||||||
|
if top_level_spread is not None:
|
||||||
|
if home_spread is None or home_spread == 0.0:
|
||||||
|
home_spread = top_level_spread
|
||||||
|
if away_spread is None:
|
||||||
|
away_spread = -top_level_spread
|
||||||
|
|
||||||
# Check for valid spread values before comparing
|
# Check for valid spread values before comparing
|
||||||
home_favored = isinstance(home_spread, (int, float)) and home_spread < 0
|
home_favored = isinstance(home_spread, (int, float)) and home_spread < 0
|
||||||
away_favored = isinstance(away_spread, (int, float)) and away_spread < 0
|
away_favored = isinstance(away_spread, (int, float)) and away_spread < 0
|
||||||
@@ -474,9 +499,17 @@ class OddsTickerManager:
|
|||||||
|
|
||||||
# Team Info (stacked)
|
# Team Info (stacked)
|
||||||
team_font_height = team_font.size if hasattr(team_font, 'size') else 8
|
team_font_height = team_font.size if hasattr(team_font, 'size') else 8
|
||||||
away_y = 2
|
datetime_font_height = datetime_font.size if hasattr(datetime_font, 'size') else 6
|
||||||
home_y = height - team_font_height - 2
|
|
||||||
|
total_text_height = team_font_height + datetime_font_height + team_font_height
|
||||||
|
padding_y = (height - total_text_height) // 2 # Center the whole block vertically
|
||||||
|
|
||||||
|
away_y = padding_y
|
||||||
|
datetime_y = away_y + team_font_height
|
||||||
|
home_y = datetime_y + datetime_font_height
|
||||||
|
|
||||||
draw.text((current_x, away_y), away_team_text, font=team_font, fill=(255, 255, 255))
|
draw.text((current_x, away_y), away_team_text, font=team_font, fill=(255, 255, 255))
|
||||||
|
draw.text((current_x, datetime_y), datetime_text, font=datetime_font, fill=(255, 255, 255))
|
||||||
draw.text((current_x, home_y), home_team_text, font=team_font, fill=(255, 255, 255))
|
draw.text((current_x, home_y), home_team_text, font=team_font, fill=(255, 255, 255))
|
||||||
current_x += team_info_width + section_padding
|
current_x += team_info_width + section_padding
|
||||||
|
|
||||||
@@ -504,7 +537,7 @@ class OddsTickerManager:
|
|||||||
self.ticker_image = None
|
self.ticker_image = None
|
||||||
return
|
return
|
||||||
|
|
||||||
gap_width = self.display_manager.matrix.width // 2 # Gap between games
|
gap_width = 24 # Reduced gap between games
|
||||||
total_width = sum(img.width for img in game_images) + gap_width * (len(game_images))
|
total_width = sum(img.width for img in game_images) + gap_width * (len(game_images))
|
||||||
height = self.display_manager.matrix.height
|
height = self.display_manager.matrix.height
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user