Syntrex commited on
Commit
59743ca
·
verified ·
1 Parent(s): 28ef13d

Update engine/live_game_engine.py

Browse files
Files changed (1) hide show
  1. 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
- batter_name = str(batter.get("fullName", "") or "").strip()
263
- pitcher_name = str(pitcher.get("fullName", "") or "").strip()
 
264
 
265
- if not batter_name:
266
- batter_obj = offense.get("batter", {}) or {}
267
- batter_name = str(batter_obj.get("fullName", "") or "").strip()
268
 
 
 
 
 
 
 
269
  if not pitcher_name:
270
- pitcher_obj = defense.get("pitcher", {}) or {}
271
- pitcher_name = str(pitcher_obj.get("fullName", "") or "").strip()
 
 
 
 
 
 
 
 
 
 
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