@@ -74,10 +74,20 @@ def schedule(
7474 if game_id :
7575 params .update ({"gamePks" : game_id })
7676
77+ hydrate = (
78+ "decisions,probablePitcher(note),linescore,broadcasts,game(content(media(epg)))"
79+ )
80+ if date == "2014-03-11" or (str (start_date ) <= "2014-03-11" <= str (end_date )):
81+ # For some reason the seriesStatus hydration throws a server error on 2014-03-11 only (checked back to 2000)
82+ logger .warning (
83+ "Excluding seriesStatus hydration because the MLB API throws an error for 2014-03-11 which is included in the requested date range."
84+ )
85+ else :
86+ hydrate += ",seriesStatus"
7787 params .update (
7888 {
7989 "sportId" : str (sportId ),
80- "hydrate" : "decisions,probablePitcher(note),linescore,broadcasts,game(content(media(epg)))" ,
90+ "hydrate" : hydrate ,
8191 }
8292 )
8393
@@ -95,8 +105,8 @@ def schedule(
95105 "game_date" : date ["date" ],
96106 "game_type" : game ["gameType" ],
97107 "status" : game ["status" ]["detailedState" ],
98- "away_name" : game ["teams" ]["away" ]["team" ][ "name" ] ,
99- "home_name" : game ["teams" ]["home" ]["team" ][ "name" ] ,
108+ "away_name" : game ["teams" ]["away" ]["team" ]. get ( "name" , "???" ) ,
109+ "home_name" : game ["teams" ]["home" ]["team" ]. get ( "name" , "???" ) ,
100110 "away_id" : game ["teams" ]["away" ]["team" ]["id" ],
101111 "home_id" : game ["teams" ]["home" ]["team" ]["id" ],
102112 "doubleheader" : game ["doubleHeader" ],
@@ -128,6 +138,7 @@ def schedule(
128138 if broadcast .get ("isNational" , False )
129139 )
130140 ),
141+ "series_status" : game .get ("seriesStatus" , {}).get ("result" ),
131142 }
132143 if game ["content" ].get ("media" , {}).get ("freeGame" , False ):
133144 game_info ["national_broadcasts" ].append ("MLB.tv Free Game" )
@@ -137,12 +148,16 @@ def schedule(
137148 else :
138149 game_info .update (
139150 {
140- "winning_team" : game ["teams" ]["away" ]["team" ]["name" ]
151+ "winning_team" : game ["teams" ]["away" ]["team" ].get (
152+ "name" , "???"
153+ )
141154 if game ["teams" ]["away" ].get ("isWinner" )
142- else game ["teams" ]["home" ]["team" ]["name" ],
143- "losing_team" : game ["teams" ]["home" ]["team" ]["name" ]
155+ else game ["teams" ]["home" ]["team" ].get ("name" , "???" ),
156+ "losing_team" : game ["teams" ]["home" ]["team" ].get (
157+ "name" , "???"
158+ )
144159 if game ["teams" ]["away" ].get ("isWinner" )
145- else game ["teams" ]["away" ]["team" ][ "name" ] ,
160+ else game ["teams" ]["away" ]["team" ]. get ( "name" , "???" ) ,
146161 "winning_pitcher" : game .get ("decisions" , {})
147162 .get ("winner" , {})
148163 .get ("fullName" , "" ),
@@ -157,13 +172,13 @@ def schedule(
157172 summary = (
158173 date ["date" ]
159174 + " - "
160- + game ["teams" ]["away" ]["team" ][ "name" ]
175+ + game ["teams" ]["away" ]["team" ]. get ( "name" , "???" )
161176 + " ("
162- + str (game ["teams" ]["away" ][ "score" ] )
177+ + str (game ["teams" ]["away" ]. get ( "score" , "" ) )
163178 + ") @ "
164- + game ["teams" ]["home" ]["team" ][ "name" ]
179+ + game ["teams" ]["home" ]["team" ]. get ( "name" , "???" )
165180 + " ("
166- + str (game ["teams" ]["home" ][ "score" ] )
181+ + str (game ["teams" ]["home" ]. get ( "score" , "" ) )
167182 + ") ("
168183 + game ["status" ]["detailedState" ]
169184 + ")"
@@ -176,11 +191,11 @@ def schedule(
176191 + " - "
177192 + game ["teams" ]["away" ]["team" ]["name" ]
178193 + " ("
179- + str (game ["teams" ]["away" ][ "score" ] )
194+ + str (game ["teams" ]["away" ]. get ( "score" , "0" ) )
180195 + ") @ "
181196 + game ["teams" ]["home" ]["team" ]["name" ]
182197 + " ("
183- + str (game ["teams" ]["home" ][ "score" ] )
198+ + str (game ["teams" ]["home" ]. get ( "score" , "0" ) )
184199 + ") ("
185200 + game ["linescore" ]["inningState" ]
186201 + " of the "
0 commit comments