コード例 #1
0
def fetch_headshots(outdir):
    outdir = outdir.rstrip("/")
    os.makedirs(outdir, exist_ok=True)

    teams = []

    nfl_json = get_nfl_json()
    for team_json in nfl_json.values():
        team_json = team_json.get("roster")
        team_json = team_json.get("page").get("content")
        team_json = team_json.get("roster")

        athletes = []
        for group in team_json.get("groups"):
            for athlete in group.get("athletes"):
                athletes.append(athlete)

        for player_id, athlete in enumerate(athletes):

            ## Main Processing
            headshot_url = athlete.get("headshot")
            player_guid = athlete.get("guid")

            if not "nophoto" in headshot_url:
                outpath = f"{outdir}/{player_guid}.png"
                if os.path.isfile(outpath):
                    print(f"[*] Skipping headshot: {outpath}")
                    continue

                print(f"[+] Getting {team_id}/{player_id} headshot: {headshot_url}")
                r = requests.get(headshot_url, timeout=10, allow_redirects=False)
                with open(outpath, "wb") as f:
                    f.write(r.content)
コード例 #2
0
ファイル: stat.py プロジェクト: sandmanscanga/Franchise
    def __init__(self):
        nfl_json = get_nfl_json()

        categories = Category()

        stats = []
        for team_json in nfl_json.values():
            team_json = team_json.get("stats")
            team_json = team_json.get("page").get("content")
            team_json = team_json.get("stats").get("dictionary")
            for stat_json in team_json.values():
                stat_abbr = stat_json.get("abbrev")
                stat_name = stat_json.get("statName")
                stat_shortdesc = stat_json.get("shortDesc")
                stat_fulldesc = stat_json.get("desc")
                _stat_category = stat_json.get("group").title()
                stat_category = categories.find(_stat_category)
                stat = (stat_abbr, stat_name, stat_shortdesc, stat_fulldesc,
                        stat_category)
                stats.append(stat)
            break

        self.values = tuple(stats)
        self.keys = ("abbr", "name", "shortdesc", "fulldesc", "category")
        self.model = "app.stat"
        self.key = "name"
コード例 #3
0
    def __init__(self):
        self.playernavs = []

        nfl_json = get_nfl_json()

        positions = Position()
        teams = Team()

        players = []

        for team_json in nfl_json.values():
            team_json = team_json.get("roster")
            team_json = team_json.get("page").get("content")
            team_json = team_json.get("roster")

            _player_team = team_json.get("team").get("uid")
            player_team = teams.find(_player_team)

            groups = team_json.get("groups")
            for group in groups:
                athletes = group.get("athletes")
                for athlete in athletes:
                    playernav_home = athlete.get("href")
                    playernav_headshot = athlete.get("headshot")
                    playernav = (playernav_home, playernav_headshot)
                    self.playernavs.append(playernav)

                    player_uid = athlete.get("uid")
                    player_guid = athlete.get("guid")
                    player_name = athlete.get("name")

                    if "nophoto" in playernav_headshot:
                        player_headshot = "/static/app/nophoto.jpg"
                    else:
                        player_headshot = f"/static/app/headshots/{player_guid}.png"

                    _player_position = athlete.get("position")
                    player_position = positions.find(_player_position)

                    players.append((player_uid, player_guid, player_headshot,
                                    player_name, player_position, player_team))

        self.values = tuple(players)
        self.keys = ("uid", "guid", "headshot", "name", "position", "team")
        self.model = "app.player"
        self.key = "guid"
コード例 #4
0
def fetch_logos(outdir=""):
    outdir = outdir.rstrip("/")
    os.makedirs(outdir, exist_ok=True)

    nfl_json = get_nfl_json()
    for team_json in nfl_json.values():
        json_data = team_json.get("stats")
        json_data = json_data.get("page").get("content")
        json_data = json_data.get("stats").get("team")

        logo_url = json_data.get("logo")
        abbrev = json_data.get("abbrev")

        outpath = f"{outdir}/{abbrev}.png"
        if os.path.isfile(outpath):
            print(f"[*] Skipping logo: {outpath}")
            continue

        cmd = f"wget {logo_url} -O {outpath} -q"
        print(f"[+] Getting logo: {logo_url}")
        os.system(cmd)
コード例 #5
0
ファイル: team.py プロジェクト: sandmanscanga/Franchise
    def __init__(self):
        self.records = []
        self.profiles = []
        self.colors = []
        self.teamnavs = []

        teams = []

        nfl_json = get_nfl_json()

        divisions = Division()

        for json_data in nfl_json.values():
            team_json = json_data.get("roster")
            team_json = team_json.get("page").get("content")

            profile = team_json.get("roster").get("team")

            uid = profile.get("uid")
            abbrev = profile.get("abbrev")
            logo = f"/static/app/logos/{abbrev}.png"

            standingSummary = profile.get("standingSummary")
            _div = standingSummary.split(" in ")[-1]
            div = divisions.find(_div)

            team = (uid, logo, div)
            teams.append(team)

            ## Record
            record_summary = profile.get("recordSummary")
            if not record_summary:
                self.records.append((0, 0, 0))
            else:
                wld = [int(_) for _ in record_summary.split("-")]
                (win, loss) = (wld[0], wld[1])
                draw = 0 if len(wld) == 2 else wld[2]
                self.records.append((win, loss, draw))

            ## Profiles
            self.profiles.append(
                (abbrev, profile.get("location"),
                 profile.get("shortDisplayName"), profile.get("displayName"),
                 int(standingSummary.split(" in ")[0][0])))

            ## Colors
            main_color = profile.get("teamColor")
            alt_color = profile.get("altColor")

            if abbrev == "MIA":
                alt_color = "ffffff"
            elif abbrev == "CLE":
                alt_color = "eb3624"
            elif abbrev == "TEN":
                alt_color = "ffffff"
            elif abbrev == "KC":
                alt_color = "ffffff"
            elif abbrev == "LAC":
                main_color = alt_color
                alt_color = "ffc313"
            elif abbrev == "CHI":
                alt_color = "f26522"
            elif abbrev == "ATL":
                alt_color = "a61d33"
            elif abbrev == "NO":
                alt_color = "c8aa76"

            color = (main_color, alt_color)
            self.colors.append(color)

            ## TeamNavs
            subnav = team_json.get("subNavigation")

            teamnav_list = []
            for item in subnav.get("items")[:-1]:
                href = item.get("l").get("w").get("h")
                teamnav_list.append("https://www.espn.com" + href)

            logo_url = profile.get("logo")
            teamnav_list.append(logo_url)

            teamnav = tuple(teamnav_list)
            self.teamnavs.append(teamnav)

        self.values = tuple(teams)
        self.keys = ("uid", "logo", "division")
        self.model = "app.team"
コード例 #6
0
ファイル: teamstat.py プロジェクト: sandmanscanga/Franchise
    def __init__(self):
        self.oppstats = []

        nfl_json = get_nfl_json()

        stats = Stat()
        teams = Team()

        teamstats = []

        for team_json in nfl_json.values():
            team_json = team_json.get("stats")
            team_json = team_json.get("page").get("content")
            team_json = team_json.get("stats")

            _ts_team = team_json.get("team").get("uid")
            ts_team = teams.find(_ts_team)

            for ts_json in team_json.get("teamStats").get("team"):
                for ts_stat_json in ts_json.get("stats"):

                    _ts_stat = ts_stat_json.get("name")

                    if _ts_stat is not None:
                        ts_stat = stats.find(_ts_stat)

                        (ts_value, ts_string) = stats._eval_stat(ts_stat_json)

                        teamstat = (ts_value, ts_string, ts_stat, ts_team)
                        teamstats.append(teamstat)
                    else:
                        for ts_substat_json in ts_stat_json.get("stats"):

                            _ts_stat = ts_substat_json.get("name")
                            ts_stat = stats.find(_ts_stat)

                            (ts_value,
                             ts_string) = stats._eval_stat(ts_substat_json)

                            teamstat = (ts_value, ts_string, ts_stat, ts_team)
                            teamstats.append(teamstat)

            for os_json in team_json.get("teamStats").get("opponent"):
                for os_stat_json in os_json.get("stats"):

                    _os_stat = os_stat_json.get("name")

                    if _os_stat is not None:

                        (os_value, os_string) = stats._eval_stat(os_stat_json)

                        oppstat = (os_value, os_string)
                        self.oppstats.append(oppstat)
                    else:
                        for os_substat_json in os_stat_json.get("stats"):

                            (os_value,
                             os_string) = stats._eval_stat(os_substat_json)

                            oppstat = (os_value, os_string)
                            self.oppstats.append(oppstat)

        self.values = tuple(teamstats)
        self.keys = ("value", "string", "stat", "team")
        self.model = "app.teamstat"