Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- from datetime import datetime
- import dateutil.parser
- response = requests.get("https://api.collegefootballdata.com/teams/fbs?year=2019")
- teams = [team["school"] for team in response.json()]
- def ooc_games(team, start_year, max_years=1):
- for i in range(max_years):
- params = {"year": start_year - i, "seasonType": "both", "team": team}
- response = requests.get("https://api.collegefootballdata.com/games?", params=params)
- games = response.json()
- yield from sorted(
- (game for game in games if not game["conference_game"]),
- key=lambda g: g["start_date"],
- reverse=True
- )
- def winning_team(game):
- assert game["home_points"] != game["away_points"], "Get your tie out of here"
- if game["home_points"] > game["away_points"]:
- return game["home_team"]
- else:
- return game["away_team"]
- def last_ooc_loss(team):
- wins = 0
- for game in ooc_games(team, 2019, max_years=10):
- winner = winning_team(game)
- if winner != team:
- return game, wins
- else:
- wins += 1
- last_ooc_losses = {team: last_ooc_loss(team) for team in teams}
- last_ooc_losses_sorted_streak = sorted(last_ooc_losses.items(), key=lambda team_game: (-team_game[1][1], dateutil.parser.isoparse(team_game[1][0]["start_date"]).date()))
- last_ooc_losses_sorted_date = sorted(last_ooc_losses.items(), key=lambda team_game: (dateutil.parser.isoparse(team_game[1][0]["start_date"]).date(), -team_game[1][1]))
- print("|Team|OOC Win Streak|Last OOC loss|Date of last OOC loss|")
- print("|---|---|---|---|")
- for team, (game, streak) in last_ooc_losses_sorted_streak:
- print(f"|{team}|{streak}|{winning_team(game)}|{dateutil.parser.isoparse(game['start_date']).date()}|")
- print()
- print()
- print()
- print("|Team|Date of last OOC loss|Last OOC loss|OOC Win Streak|")
- print("|---|---|---|---|")
- for team, (game, streak) in last_ooc_losses_sorted_date:
- print(f"|{team}|{dateutil.parser.isoparse(game['start_date']).date()}|{winning_team(game)}|{streak}|")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement