Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
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)
Exemple #4
0
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)