Files
OpenDisplay/mlb.py

78 lines
3.3 KiB
Python

import statsapi
import datetime
import pytz
def process_game(game,mytz):
results = ""
if game["home_name"] == "Pittsburgh Pirates": # home game
score_pirates = game["home_score"]
score_other = game["away_score"]
results += "vs "+game["away_name"]
else:
score_pirates = game["away_score"]
score_other = game["home_score"]
results += "at "+game["home_name"]
if game["status"] != "Scheduled":
if game["status"] == "Final":
if score_pirates > score_other:
results += ", Pirates won"
else:
results += ", Pirates lost"
else: # game in progress
if score_pirates > score_other:
results += ", Pirates winning"
elif score_pirates < score_other:
results += ", Pirates losing"
else:
results += ", tied"
results += " "+str(game["away_score"])+" - "+str(game["home_score"])
if game["status"] != "Final":
gamedate = datetime.datetime.strptime(game["game_datetime"],"%Y-%m-%dT%H:%M:%SZ")
gamedateutc = gamedate.replace(tzinfo=datetime.timezone.utc)
results+= " "+gamedateutc.astimezone(tz=mytz).strftime("%I:%M %p")
if game["national_broadcasts"]:
nb = ""
for b in game["national_broadcasts"]:
if nb:
nb += ", "
nb += b
results += " (on "+nb+")"
results += " ("+game["status"]+")"
return results
def get_pirates():
useastern_timezone = pytz.timezone("US/Eastern")
results = ""
todaystr = datetime.datetime.now(tz=useastern_timezone).strftime("%Y-%m-%d")
tomorrow = datetime.datetime.now(tz=useastern_timezone)+datetime.timedelta(days=1)
tomorrowstr = tomorrow.strftime("%Y-%m-%d")
yesterday = datetime.datetime.now(tz=useastern_timezone)+datetime.timedelta(days=-1)
yesterdaystr = yesterday.strftime("%Y-%m-%d")
piratesid = statsapi.lookup_team('pittsburgh')[0]['id']
yesterdaysgame = statsapi.schedule(team=piratesid,date=yesterdaystr)
if yesterdaysgame:
results+= "Yesterday: "+process_game(yesterdaysgame[0],useastern_timezone)+"\n"
todaysgame = statsapi.schedule(team=piratesid,date=todaystr)
if todaysgame:
results+= "Today: "+process_game(todaysgame[0],useastern_timezone)+"\n"
#results += todaysgame[0]["summary"]+" "+todaysgame[0]["game_datetime"]+"\n"
#print("todaysgame",todaysgame)
tomorrowsgame = statsapi.schedule(team=piratesid,date=tomorrowstr)
if tomorrowsgame:
results+= "Tomorrow: "+process_game(tomorrowsgame[0],useastern_timezone)+"\n"
#dtt = tomorrowsgame[0]["game_datetime"][11:16]
#results+= tomorrowsgame[0]["summary"]+" "+tomorrowsgame[0]["game_datetime"]+"\n"
return results
if __name__ == '__main__':
print(get_pirates())
#print(statsapi.schedule(team=piratesid))
# 6/5 Local time 7:15 pm '2026-06-05T23:15:00Z'
# 6/6 Local time 4:10 pm '2026-06-06T20:10:00Z'
# 6/7 Local time 1:35 pm '2026-06-07T17:35:00Z'
# datetime.datetime.strptime(game[0]["game_datetime"],"%Y-%m-%dT%H:%M:%SZ")
# gamedateutc = gamedate.replace(tzinfo=datetime.timezone.utc)
# gamedateutc.astimezone()