mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-04-10 21:03:01 +00:00
milb combined live game status mapping that was causing confusion
This commit is contained in:
@@ -419,15 +419,19 @@ class BaseMiLBManager:
|
|||||||
status_obj = event['status']
|
status_obj = event['status']
|
||||||
status_state = status_obj.get('abstractGameState', 'Preview') # Changed default to 'Preview'
|
status_state = status_obj.get('abstractGameState', 'Preview') # Changed default to 'Preview'
|
||||||
|
|
||||||
# Map status to a consistent format
|
# Map status to a consistent format using abstractGameState
|
||||||
status_map = {
|
mapped_status = 'status_other'
|
||||||
'in progress': 'status_in_progress',
|
mapped_status_state = 'pre'
|
||||||
'final': 'status_final',
|
|
||||||
'scheduled': 'status_scheduled',
|
if status_state == 'Live':
|
||||||
'preview': 'status_scheduled'
|
mapped_status = 'status_in_progress'
|
||||||
}
|
mapped_status_state = 'in'
|
||||||
mapped_status = status_map.get(status_obj.get('detailedState', '').lower(), 'status_other')
|
elif status_state == 'Final':
|
||||||
mapped_status_state = 'in' if mapped_status == 'status_in_progress' else 'post' if mapped_status == 'status_final' else 'pre'
|
mapped_status = 'status_final'
|
||||||
|
mapped_status_state = 'post'
|
||||||
|
elif status_state in ['Preview', 'Scheduled']:
|
||||||
|
mapped_status = 'status_scheduled'
|
||||||
|
mapped_status_state = 'pre'
|
||||||
|
|
||||||
game_data = {
|
game_data = {
|
||||||
'id': game_pk,
|
'id': game_pk,
|
||||||
@@ -689,23 +693,35 @@ class MiLBLiveManager(BaseMiLBManager):
|
|||||||
else:
|
else:
|
||||||
# Fetch live game data from MiLB API
|
# Fetch live game data from MiLB API
|
||||||
games = self._fetch_milb_api_data(use_cache=False)
|
games = self._fetch_milb_api_data(use_cache=False)
|
||||||
|
if not games:
|
||||||
|
self.logger.debug("[MiLB] No games returned from API")
|
||||||
if games:
|
if games:
|
||||||
|
# Debug: Log all games found
|
||||||
|
self.logger.debug(f"[MiLB] Found {len(games)} total games from API")
|
||||||
|
for game_id, game in games.items():
|
||||||
|
self.logger.debug(f"[MiLB] Game {game_id}: {game['away_team']} @ {game['home_team']} - Status: {game['status']}, State: {game['status_state']}")
|
||||||
|
|
||||||
# Find all live games involving favorite teams
|
# Find all live games involving favorite teams
|
||||||
new_live_games = []
|
new_live_games = []
|
||||||
for game in games.values():
|
for game in games.values():
|
||||||
# Only process games that are actually in progress
|
# Only process games that are actually in progress
|
||||||
if game['status_state'] == 'in' and game['status'] == 'status_in_progress':
|
if game['status_state'] == 'in' and game['status'] == 'status_in_progress':
|
||||||
|
self.logger.debug(f"[MiLB] Found live game: {game['away_team']} @ {game['home_team']}")
|
||||||
if not self.favorite_teams or (
|
if not self.favorite_teams or (
|
||||||
game['home_team'] in self.favorite_teams or
|
game['home_team'] in self.favorite_teams or
|
||||||
game['away_team'] in self.favorite_teams
|
game['away_team'] in self.favorite_teams
|
||||||
):
|
):
|
||||||
|
self.logger.debug(f"[MiLB] Processing favorite team game: {game['away_team']} @ {game['home_team']}")
|
||||||
# Ensure scores are valid numbers
|
# Ensure scores are valid numbers
|
||||||
try:
|
try:
|
||||||
game['home_score'] = int(game['home_score'])
|
game['home_score'] = int(game['home_score'])
|
||||||
game['away_score'] = int(game['away_score'])
|
game['away_score'] = int(game['away_score'])
|
||||||
new_live_games.append(game)
|
new_live_games.append(game)
|
||||||
|
self.logger.debug(f"[MiLB] Added live game to list: {game['away_team']} @ {game['home_team']}")
|
||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
self.logger.warning(f"Invalid score format for game {game['away_team']} @ {game['home_team']}")
|
self.logger.warning(f"Invalid score format for game {game['away_team']} @ {game['home_team']}")
|
||||||
|
else:
|
||||||
|
self.logger.debug(f"[MiLB] Skipping non-favorite team game: {game['away_team']} @ {game['home_team']}")
|
||||||
|
|
||||||
# Only log if there's a change in games or enough time has passed
|
# Only log if there's a change in games or enough time has passed
|
||||||
should_log = (
|
should_log = (
|
||||||
@@ -750,6 +766,7 @@ class MiLBLiveManager(BaseMiLBManager):
|
|||||||
self.last_display_update = current_time
|
self.last_display_update = current_time
|
||||||
else:
|
else:
|
||||||
# No live games found
|
# No live games found
|
||||||
|
self.logger.debug("[MiLB] No live games found in API response")
|
||||||
self.live_games = []
|
self.live_games = []
|
||||||
self.current_game = None
|
self.current_game = None
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user