def team(): """ Palauttaa joukkueen valitun kauden tilastot. Jos joukkuetta ei ole määritelty, palautetaan kaikki joukkueet. """ year = request.args.get("year", scraper.SEASON) team = request.args.get("team", None) try: data = scraper.scrape_standings(year) except Exception as e: logging.error(e) abort(404) if data is None: abort(404) if team: if not team in data: abort(404) data = data[team] return jsonify(data)
def get_players_and_teams(players=None, teams=None): """ Hakee valittujen pelaajien ja joukkueiden kauden tilastot sekä viimeisimmän ottelut tiedot. Jos pelaaja ei ole pelannut tällä kaudella yhtään ottelua, pelaajan osalta palautetaan vain tyhjiöarvo. """ players_dict, teams_dict = {}, {} if teams: standings = scraper.scrape_standings() assert isinstance(standings, dict) # TODO debug assert isinstance(teams[0], basestring) # TODO debug if not standings: abort(503) # Service unavailable if any(team not in standings for team in teams): abort(400) # Bad request - virheellinen joukkueen tunnus for team in teams: stats = standings[team] try: games = scraper.scrape_games_by_team(team) except: games = None teams_dict[team] = dict(stats=stats, games=games) if players: player_stats = scraper.scrape_player_stats() for pid in players: for pstat in player_stats: if pid == pstat["pid"]: try: games = scraper.scrape_games_by_player(pid) except: games = None stats, latest_game = None, None players_dict[pid] = dict(stats=pstat, games=games) break # Seurattavaa pelaajaa ei löytynyt kenttäpelaajista, # etsitään maalivahdeista: goalie_stats = scraper.scrape_player_stats(goalies=True) for pid in players: if pid in players_dict: continue # Pelaaja löytyi kenttäpelaajista for pstat in goalie_stats: if pid == pstat["pid"]: try: games = scraper.scrape_games_by_player(pid) except: games = None stats, latest_game = None, None players_dict[pid] = dict(stats=pstat, games=games) break # Jos pelaajaa ei löytynyt kenttäpelaajista eikä maalivahdeista, # ei pelaaja ole pelannut yhdessäkään ottelussa nykyisellä kaudella for pid in players: if not pid in players_dict: players_dict[pid] = dict(stats=None, games=None) return dict(players=players_dict, teams=teams_dict)