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
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

View file

@ -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:

View file

@ -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.")