non-priority sports logic improvement

This commit is contained in:
Chuck
2025-07-26 19:34:41 -05:00
parent d4bd8d66e8
commit 2f7fa481a3
2 changed files with 32 additions and 18 deletions

View File

@@ -75,18 +75,18 @@
"use_short_date_format": true "use_short_date_format": true
}, },
"clock": { "clock": {
"enabled": false, "enabled": true,
"format": "%I:%M %p", "format": "%I:%M %p",
"update_interval": 1 "update_interval": 1
}, },
"weather": { "weather": {
"enabled": false, "enabled": true,
"update_interval": 1800, "update_interval": 1800,
"units": "imperial", "units": "imperial",
"display_format": "{temp}°F\n{condition}" "display_format": "{temp}°F\n{condition}"
}, },
"stocks": { "stocks": {
"enabled": false, "enabled": true,
"update_interval": 600, "update_interval": 600,
"scroll_speed": 1, "scroll_speed": 1,
"scroll_delay": 0.01, "scroll_delay": 0.01,
@@ -97,7 +97,7 @@
"display_format": "{symbol}: ${price} ({change}%)" "display_format": "{symbol}: ${price} ({change}%)"
}, },
"crypto": { "crypto": {
"enabled": false, "enabled": true,
"update_interval": 600, "update_interval": 600,
"symbols": [ "symbols": [
"BTC-USD", "ETH-USD" "BTC-USD", "ETH-USD"
@@ -105,7 +105,7 @@
"display_format": "{symbol}: ${price} ({change}%)" "display_format": "{symbol}: ${price} ({change}%)"
}, },
"stock_news": { "stock_news": {
"enabled": false, "enabled": true,
"update_interval": 3600, "update_interval": 3600,
"scroll_speed": 1, "scroll_speed": 1,
"scroll_delay": 0.01, "scroll_delay": 0.01,
@@ -113,7 +113,7 @@
"headlines_per_rotation": 2 "headlines_per_rotation": 2
}, },
"odds_ticker": { "odds_ticker": {
"enabled": false, "enabled": true,
"show_favorite_teams_only": true, "show_favorite_teams_only": true,
"games_per_favorite_team": 1, "games_per_favorite_team": 1,
"max_games_per_league": 5, "max_games_per_league": 5,
@@ -128,7 +128,7 @@
"show_channel_logos": true "show_channel_logos": true
}, },
"calendar": { "calendar": {
"enabled": false, "enabled": true,
"credentials_file": "credentials.json", "credentials_file": "credentials.json",
"token_file": "token.pickle", "token_file": "token.pickle",
"update_interval": 3600, "update_interval": 3600,
@@ -179,7 +179,7 @@
} }
}, },
"nfl_scoreboard": { "nfl_scoreboard": {
"enabled": false, "enabled": true,
"live_priority": true, "live_priority": true,
"live_game_duration": 20, "live_game_duration": 20,
"show_odds": true, "show_odds": true,
@@ -201,7 +201,7 @@
} }
}, },
"ncaa_fb_scoreboard": { "ncaa_fb_scoreboard": {
"enabled": false, "enabled": true,
"live_priority": true, "live_priority": true,
"live_game_duration": 20, "live_game_duration": 20,
"show_odds": true, "show_odds": true,
@@ -264,12 +264,12 @@
} }
}, },
"youtube": { "youtube": {
"enabled": false, "enabled": true,
"update_interval": 3600 "update_interval": 3600
}, },
"mlb": { "mlb": {
"enabled": false, "enabled": true,
"live_priority": true, "live_priority": false,
"live_game_duration": 30, "live_game_duration": 30,
"show_odds": true, "show_odds": true,
"test_mode": false, "test_mode": false,
@@ -292,8 +292,8 @@
} }
}, },
"milb": { "milb": {
"enabled": false, "enabled": true,
"live_priority": true, "live_priority": false,
"live_game_duration": 30, "live_game_duration": 30,
"test_mode": false, "test_mode": false,
"update_interval_seconds": 3600, "update_interval_seconds": 3600,

View File

@@ -759,8 +759,14 @@ class DisplayController:
"""Add or remove live modes from available_modes based on live_priority and live games.""" """Add or remove live modes from available_modes based on live_priority and live games."""
# Helper to add/remove live modes for all sports # Helper to add/remove live modes for all sports
def update_mode(mode_name, manager, live_priority): def update_mode(mode_name, manager, live_priority):
# If manager is None (sport disabled), remove the mode from rotation
if manager is None:
if mode_name in self.available_modes:
self.available_modes.remove(mode_name)
return
if not live_priority: if not live_priority:
if manager and getattr(manager, 'live_games', None): if getattr(manager, 'live_games', None):
if mode_name not in self.available_modes: if mode_name not in self.available_modes:
self.available_modes.append(mode_name) self.available_modes.append(mode_name)
else: else:
@@ -822,7 +828,8 @@ class DisplayController:
('ncaam_basketball', 'ncaam_basketball_live', self.ncaam_basketball_live_priority) ('ncaam_basketball', 'ncaam_basketball_live', self.ncaam_basketball_live_priority)
]: ]:
manager = getattr(self, attr, None) manager = getattr(self, attr, None)
if priority and manager and getattr(manager, 'live_games', None): # Only consider sports that are enabled (manager is not None)
if manager is not None and priority and getattr(manager, 'live_games', None):
live_priority_takeover = True live_priority_takeover = True
live_priority_sport = sport live_priority_sport = sport
break break
@@ -1013,6 +1020,13 @@ class DisplayController:
self.force_clear = False self.force_clear = False
elif self.current_display_mode != 'none': elif self.current_display_mode != 'none':
logger.warning(f"No manager found or selected for display mode: {self.current_display_mode}") logger.warning(f"No manager found or selected for display mode: {self.current_display_mode}")
# If we can't display the current mode, switch to the next available mode
if self.available_modes:
self.current_mode_index = (self.current_mode_index + 1) % len(self.available_modes)
self.current_display_mode = self.available_modes[self.current_mode_index]
logger.info(f"Switching to next available mode: {self.current_display_mode}")
else:
logger.error("No available display modes found!")
except Exception as e: except Exception as e:
logger.error(f"Error during display update for mode {self.current_display_mode}: {e}", exc_info=True) logger.error(f"Error during display update for mode {self.current_display_mode}: {e}", exc_info=True)