added -s flag to league leaders
This commit is contained in:
parent
548f37fa9e
commit
a5a1f4ce04
|
@ -79,10 +79,12 @@ def create_season_connection(league_name, season_num):
|
|||
#create connection, create db if doesn't exist
|
||||
conn = None
|
||||
try:
|
||||
if not os.path.exists(os.path.join(data_dir, league_dir, league_name)):
|
||||
|
||||
if not os.path.exists(os.path.join(data_dir, league_dir, league_name)):
|
||||
os.makedirs(os.path.join(data_dir, league_dir, league_name))
|
||||
conn = sql.connect(os.path.join(data_dir, league_dir, league_name, season_num, f"{league_name}.db"))
|
||||
try:
|
||||
conn = sql.connect(os.path.join(data_dir, league_dir, league_name, season_num, f"{league_name}.db"))
|
||||
except:
|
||||
raise ValueError("Season not played")
|
||||
|
||||
# enable write-ahead log for performance and resilience
|
||||
conn.execute('pragma journal_mode=wal')
|
||||
|
@ -197,8 +199,11 @@ def add_stats(league_name, player_game_stats_list):
|
|||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
def get_stats(league_name, stat, is_batter=True, day = 10):
|
||||
conn = create_connection(league_name)
|
||||
def get_stats(league_name, stat, is_batter=True, day = 10, season = None):
|
||||
if season is None:
|
||||
conn = create_connection(league_name)
|
||||
else:
|
||||
conn = create_season_connection(league_name, season)
|
||||
stats = None
|
||||
if conn is not None:
|
||||
conn.row_factory = sql.Row
|
||||
|
|
12
leagues.py
12
leagues.py
|
@ -455,9 +455,15 @@ class league_structure(object):
|
|||
|
||||
return tournaments
|
||||
|
||||
def stat_embed(self, stat_name):
|
||||
this_embed = Embed(color=Color.purple(), title=f"{self.name} Season {self.season} {stat_name} Leaders")
|
||||
stats = league_db.get_stats(self.name, stat_name.lower(), day = self.day)
|
||||
def stat_embed(self, stat_name, season_num):
|
||||
if season_num is None:
|
||||
season_string = str(self.season)
|
||||
day = self.day
|
||||
else:
|
||||
season_string = str(season_num)
|
||||
day = len(self.schedule)
|
||||
this_embed = Embed(color=Color.purple(), title=f"{self.name} Season {season_string} {stat_name} Leaders")
|
||||
stats = league_db.get_stats(self.name, stat_name.lower(), day = day, season = season_num)
|
||||
if stats is None:
|
||||
return None
|
||||
else:
|
||||
|
|
|
@ -1070,10 +1070,22 @@ class LeagueLeadersCommand(Command):
|
|||
if league_exists(command.split("\n")[0].strip()):
|
||||
league = leagues.load_league_file(command.split("\n")[0].strip())
|
||||
stat_name = command.split("\n")[1].strip()
|
||||
season_num = None
|
||||
|
||||
for flag in flags:
|
||||
if flag[0] == "s":
|
||||
try:
|
||||
season_num = int(flag[1])
|
||||
return
|
||||
except ValueError:
|
||||
raise CommandError("Give us a proper number, boss.")
|
||||
|
||||
try:
|
||||
stat_embed = league.stat_embed(stat_name)
|
||||
stat_embed = league.stat_embed(stat_name, season_num)
|
||||
except IndexError:
|
||||
raise CommandError("Nobody's played enough games to get meaningful stats in that category yet, chief. Try again after the next game or two.")
|
||||
except ValueError:
|
||||
raise CommandError("That season hasn't been played yet.")
|
||||
|
||||
if stat_embed is None:
|
||||
raise CommandError("We don't know what that stat is, chief.")
|
||||
|
|
Loading…
Reference in a new issue