Ejemplo n.º 1
0
def get_team(team_id):
    with db_helper.db_connect() as db:
        rows = db.get_rows("teams", "TeamAPIID", team_id)
        if len(rows) == 1:
            return row_to_blurb(rows[0])
        else:
            return None
Ejemplo n.º 2
0
def get_player(player_id):
    with db_helper.db_connect() as db:
        rows = db.get_rows("players", "PlayerAPIID", player_id)
        if len(rows) == 1:
            return row_to_blurb(rows[0])
        else:
            return None
Ejemplo n.º 3
0
def get_coach_by_number(coach_id):
    with db_helper.db_connect() as db:
        rows = db.get_rows("coaches", "CoachID", coach_id)
        if len(rows) == 1:
            return row_to_blurb(rows[0])
        else:
            return None
Ejemplo n.º 4
0
def get_coach_info(coach_id):

    with db_helper.db_connect() as db:
        rows = db.get_rows("coaches", "CoachAPIID", coach_id)
        if len(rows) == 1:
            row = rows[0]
            coach = {
                "name":
                row[1],
                "image_url":
                row[9],
                "dob":
                row[4],
                "current_team":
                teams.get_team(row[3]),
                "win_loss_percentage":
                row[5],
                "color":
                row[10] if 10 in row else None,
                "current_roster": [
                    players.get_player(player_id)
                    for player_id in row[8].split(",")
                ],
                "past_teams": [team for team in row[7].split(",")],
                "recognitions": [award for award in row[6].split(";")]
            }
            return coach
        else:
            return None
Ejemplo n.º 5
0
def get_division(prenba_id):
    with db_helper.db_connect() as db:
        rows = db.get_rows("divisions", "DivisionAPIID", prenba_id)
        if len(rows) == 1:
            return row_to_blurb(rows[0])
        else:
            return None
Ejemplo n.º 6
0
def main() -> None:
    # Load environment
    dotenv.load_dotenv(".env")
    db_filename = pathlib.Path(os.getenv("DB_FILENAME") or DEFAULT_DB_FILENAME)
    server_manager_filename = pathlib.Path(
        os.getenv("SERVER_MANAGER_FILENAME")
        or DEFAULT_SERVER_MANAGER_FILENAME)
    discord_token = os.getenv("DISCORD_TOKEN")

    # Validate cmdline args
    s = schema.Schema({"--help": bool, "--test": bool})
    args = s.validate(docopt.docopt(__doc__))

    # Set up stderr logging
    logging.basicConfig(stream=sys.stderr, level=logging.INFO)
    root_logger = logging.getLogger()
    handler = root_logger.handlers[0]
    handler.setFormatter(ColoredLogFormatter())

    # Ensure DB setup is complete
    logging.info("Setting up db connection and tables")
    conn = db_helper.db_connect(db_filename)
    db_helper.create_all(conn)

    # And start the client
    logging.info("Running client")
    client = Client(conn, server_manager_filename, is_test=args["--test"])
    client.run(discord_token)
Ejemplo n.º 7
0
def search_teams(query):
    teams = []
    for id in team_index.search_team_index(query):
        with db_helper.db_connect() as db:
            rows = db.get_rows("teams", "TeamAPIID", id)
            if len(rows) == 1:
                teams.append(row_to_detailblurb(rows[0]))
    return teams
Ejemplo n.º 8
0
def search_divisions(query):
    divisions = []
    for id in divisions_index.search_division_index(query):
        with db_helper.db_connect() as db:
            rows = db.get_rows("divisions", "DivisionAPIID", id)
            if len(rows) == 1:
                divisions.append(row_to_detailblurb(rows[0]))
    return divisions
Ejemplo n.º 9
0
def search_players(query):
    players = []
    for id in player_index.search_player_index(query):
        with db_helper.db_connect() as db:
            rows = db.get_rows("players", "PlayerAPIID", id)
            if len(rows) == 1:
                players.append(row_to_detailblurb(rows[0]))
    return players
Ejemplo n.º 10
0
def search_coaches(query):
    coaches = []
    for id in coach_index.search_coach_index(query):
        with db_helper.db_connect() as db:
            rows = db.get_rows("coaches", "CoachAPIID", id)
            if len(rows) == 1:
                coaches.append(row_to_detailblurb(rows[0]))
    return coaches
Ejemplo n.º 11
0
def get_awards_for_player(player_id):
    with db_helper.db_connect() as db:
        rows = db.get_rows("awards", "Player", player_id)
        if len(rows) > 0:
            awards = []
            for k, v in Counter([row[1] for row in rows]).items():
                if v == 1:
                    awards.append(k)
                else:
                    awards.append(k + " x " + str(v))
            return awards
        else:
            return []
Ejemplo n.º 12
0
def get_team_info(team_id):
    def get_titles(row):
        titles = row.split(";")
        return {
            "championships":
            [i.strip() for i in titles[0].split(",")] if titles[0] else [],
            "conference_champs":
            [i.strip() for i in titles[1].split(",")] if titles[1] else [],
            "division_champs":
            [i.strip() for i in titles[2].split(",")] if titles[2] else [],
        }

    with db_helper.db_connect() as db:
        rows = db.get_rows("teams", "TeamAPIID", team_id)
        if len(rows) == 1:
            row = rows[0]
            team = {
                "name":
                row[3],
                "logo_url":
                row[11],
                "city":
                row[1],
                "arena":
                row[9],
                "head_coach":
                coaches.get_coach_by_number(row[7]),
                "color":
                row[12],
                "twitter":
                row[13] if 13 in row else None,
                "titles":
                get_titles(row[10]),
                "division":
                row[5],
                "conference":
                row[6],
                "current_roster": [
                    players.get_player(player_id)
                    for player_id in row[8].split(",")
                ],
            }
            return team
        else:
            return None
Ejemplo n.º 13
0
def get_division_info(prenba_id):

    with db_helper.db_connect() as db:
        rows = db.get_rows("divisions", "DivisionAPIID", prenba_id)
        if len(rows) == 1:
            row = rows[0]
            division = {
                "name": row[0],
                "conference": row[1],
                "teams":
                [teams.get_team(team_id) for team_id in row[3].split(",")],
                "inauguralSeason": row[2],
                "divChamp": row[5],
                "mostDivTitles": row[6],
                "rivalries": [rivalry for rivalry in row[7].split(",")],
                "imageURL": row[8]
            }
            return division
        else:
            return None
Ejemplo n.º 14
0
def get_player_info(player_id):
    with db_helper.db_connect() as db:
        rows = db.get_rows("players", "PlayerAPIID", player_id)
        if len(rows) == 1:
            row = rows[0]
            player = {
                "player": row[1],
                "jersey_number": row[4],
                "image_url": row[13],
                "team": teams.get_team(row[3]),
                "position": row[5],
                "dob": row[8],
                "height": row[6],
                "weight": row[7],
                "prenba": row[9],
                "color": row[14] if 14 in row else None,
                "career_stats": get_career_stats(row[12]),
                "recognitions": get_awards_for_player(player_id)
            }
            return player
        else:
            return None
Ejemplo n.º 15
0
def list_coaches_full():
    with db_helper.db_connect() as db:
        players = []
        for row in db.list_table("coaches"):
            players.append(row_to_detailblurb(row))
        return players
Ejemplo n.º 16
0
def list_divisions_full():
    with db_helper.db_connect() as db:
        divisions = []
        for row in db.list_table("divisions"):
            divisions.append(row_to_detailblurb(row))
        return divisions
Ejemplo n.º 17
0
def list_players():
    with db_helper.db_connect() as db:
        players = []
        for row in db.list_table("players"):
            players.append(row_to_blurb(row))
        return players
Ejemplo n.º 18
0
def list_teams_full():
    with db_helper.db_connect() as db:
        teams = []
        for row in db.list_table("teams"):
            teams.append(row_to_detailblurb(row))
        return teams
Ejemplo n.º 19
0
 def __init__(self):
     self.conn = db_connect()
     self.idf_values = {}