added -s flag to league leaders

This commit is contained in:
Sakimori 2022-06-28 11:40:10 -04:00
parent 548f37fa9e
commit a5a1f4ce04
3 changed files with 32 additions and 9 deletions

View file

@ -79,10 +79,12 @@ def create_season_connection(league_name, season_num):
#create connection, create db if doesn't exist #create connection, create db if doesn't exist
conn = None conn = None
try: 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)) 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 # enable write-ahead log for performance and resilience
conn.execute('pragma journal_mode=wal') conn.execute('pragma journal_mode=wal')
@ -197,8 +199,11 @@ def add_stats(league_name, player_game_stats_list):
conn.commit() conn.commit()
conn.close() conn.close()
def get_stats(league_name, stat, is_batter=True, day = 10): def get_stats(league_name, stat, is_batter=True, day = 10, season = None):
conn = create_connection(league_name) if season is None:
conn = create_connection(league_name)
else:
conn = create_season_connection(league_name, season)
stats = None stats = None
if conn is not None: if conn is not None:
conn.row_factory = sql.Row conn.row_factory = sql.Row

View file

@ -455,9 +455,15 @@ class league_structure(object):
return tournaments return tournaments
def stat_embed(self, stat_name): def stat_embed(self, stat_name, season_num):
this_embed = Embed(color=Color.purple(), title=f"{self.name} Season {self.season} {stat_name} Leaders") if season_num is None:
stats = league_db.get_stats(self.name, stat_name.lower(), day = self.day) 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: if stats is None:
return None return None
else: else:

View file

@ -1070,10 +1070,22 @@ class LeagueLeadersCommand(Command):
if league_exists(command.split("\n")[0].strip()): if league_exists(command.split("\n")[0].strip()):
league = leagues.load_league_file(command.split("\n")[0].strip()) league = leagues.load_league_file(command.split("\n")[0].strip())
stat_name = command.split("\n")[1].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: try:
stat_embed = league.stat_embed(stat_name) stat_embed = league.stat_embed(stat_name, season_num)
except IndexError: 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.") 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: if stat_embed is None:
raise CommandError("We don't know what that stat is, chief.") raise CommandError("We don't know what that stat is, chief.")