Advertisement
Guest User

Untitled

a guest
Jan 25th, 2020
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.06 KB | None | 0 0
  1. import requests
  2. from datetime import datetime
  3. import dateutil.parser
  4.  
  5. response = requests.get("https://api.collegefootballdata.com/teams/fbs?year=2019")
  6. teams = [team["school"] for team in response.json()]
  7.  
  8. def ooc_games(team, start_year, max_years=1):
  9.     for i in range(max_years):
  10.         params = {"year": start_year - i, "seasonType": "both", "team": team}
  11.         response = requests.get("https://api.collegefootballdata.com/games?", params=params)
  12.         games = response.json()
  13.         yield from sorted(
  14.             (game for game in games if not game["conference_game"]),
  15.             key=lambda g: g["start_date"],
  16.             reverse=True
  17.         )
  18.  
  19. def winning_team(game):
  20.     assert game["home_points"] != game["away_points"], "Get your tie out of here"
  21.     if game["home_points"] > game["away_points"]:
  22.         return game["home_team"]
  23.     else:
  24.         return game["away_team"]
  25.  
  26. def last_ooc_loss(team):
  27.     wins = 0
  28.     for game in ooc_games(team, 2019, max_years=10):
  29.         winner = winning_team(game)
  30.         if winner != team:
  31.             return game, wins
  32.         else:
  33.             wins += 1
  34.  
  35. last_ooc_losses = {team: last_ooc_loss(team) for team in teams}
  36.  
  37. 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()))
  38. 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]))
  39.  
  40. print("|Team|OOC Win Streak|Last OOC loss|Date of last OOC loss|")
  41. print("|---|---|---|---|")
  42. for team, (game, streak) in last_ooc_losses_sorted_streak:
  43.     print(f"|{team}|{streak}|{winning_team(game)}|{dateutil.parser.isoparse(game['start_date']).date()}|")
  44.  
  45. print()
  46. print()
  47. print()
  48.  
  49. print("|Team|Date of last OOC loss|Last OOC loss|OOC Win Streak|")
  50. print("|---|---|---|---|")
  51. for team, (game, streak) in last_ooc_losses_sorted_date:
  52.     print(f"|{team}|{dateutil.parser.isoparse(game['start_date']).date()}|{winning_team(game)}|{streak}|")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement