Spaces:
Running
Running
Update engine/live_game_engine.py
Browse files- engine/live_game_engine.py +24 -8
engine/live_game_engine.py
CHANGED
|
@@ -250,25 +250,41 @@ def enrich_game_from_live_feed(game: dict[str, Any], feed: dict[str, Any]) -> di
|
|
| 250 |
current_play = plays.get("currentPlay", {}) or {}
|
| 251 |
|
| 252 |
|
| 253 |
-
matchup = current_play.get("matchup", {}) or {}
|
| 254 |
count = current_play.get("count", {}) or {}
|
| 255 |
|
| 256 |
offense = linescore.get("offense", {}) or {}
|
| 257 |
defense = linescore.get("defense", {}) or {}
|
| 258 |
|
|
|
|
| 259 |
batter = matchup.get("batter", {}) or {}
|
| 260 |
pitcher = matchup.get("pitcher", {}) or {}
|
| 261 |
|
| 262 |
-
|
| 263 |
-
|
|
|
|
| 264 |
|
| 265 |
-
|
| 266 |
-
|
| 267 |
-
batter_name = str(batter_obj.get("fullName", "") or "").strip()
|
| 268 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 269 |
if not pitcher_name:
|
| 270 |
-
|
| 271 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 272 |
|
| 273 |
out["batter_name"] = batter_name
|
| 274 |
out["pitcher_name"] = pitcher_name
|
|
|
|
| 250 |
current_play = plays.get("currentPlay", {}) or {}
|
| 251 |
|
| 252 |
|
|
|
|
| 253 |
count = current_play.get("count", {}) or {}
|
| 254 |
|
| 255 |
offense = linescore.get("offense", {}) or {}
|
| 256 |
defense = linescore.get("defense", {}) or {}
|
| 257 |
|
| 258 |
+
matchup = current_play.get("matchup", {}) or {}
|
| 259 |
batter = matchup.get("batter", {}) or {}
|
| 260 |
pitcher = matchup.get("pitcher", {}) or {}
|
| 261 |
|
| 262 |
+
# Primary source: current play matchup
|
| 263 |
+
batter_name = _extract_person_name(batter)
|
| 264 |
+
pitcher_name = _extract_person_name(pitcher)
|
| 265 |
|
| 266 |
+
batter_id = batter.get("id")
|
| 267 |
+
pitcher_id = pitcher.get("id")
|
|
|
|
| 268 |
|
| 269 |
+
# Fallback 1: linescore offense / defense objects
|
| 270 |
+
offense = linescore.get("offense", {}) or {}
|
| 271 |
+
defense = linescore.get("defense", {}) or {}
|
| 272 |
+
|
| 273 |
+
if not batter_name:
|
| 274 |
+
batter_name = _extract_person_name(offense.get("batter", {}))
|
| 275 |
if not pitcher_name:
|
| 276 |
+
pitcher_name = _extract_person_name(defense.get("pitcher", {}))
|
| 277 |
+
|
| 278 |
+
if not batter_id:
|
| 279 |
+
batter_id = (offense.get("batter", {}) or {}).get("id")
|
| 280 |
+
if not pitcher_id:
|
| 281 |
+
pitcher_id = (defense.get("pitcher", {}) or {}).get("id")
|
| 282 |
+
|
| 283 |
+
# Fallback 2: global players lookup by id
|
| 284 |
+
if not batter_name and batter_id:
|
| 285 |
+
batter_name = _player_name_from_id(feed, batter_id)
|
| 286 |
+
if not pitcher_name and pitcher_id:
|
| 287 |
+
pitcher_name = _player_name_from_id(feed, pitcher_id)
|
| 288 |
|
| 289 |
out["batter_name"] = batter_name
|
| 290 |
out["pitcher_name"] = pitcher_name
|