From 125a4b5918c253d98ced6c7accc4eb8d943ea302 Mon Sep 17 00:00:00 2001 From: Cal Corum Date: Sat, 9 Sep 2023 17:47:01 -0500 Subject: [PATCH] Add batting stats to /player --- cogs/players.py | 8 +++++--- helpers.py | 17 ++++++++++++++++- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/cogs/players.py b/cogs/players.py index 99e9bc6..a9fcb52 100644 --- a/cogs/players.py +++ b/cogs/players.py @@ -375,6 +375,8 @@ class Players(commands.Cog): if interaction.channel.name in ['paper-dynasty-chat', 'pd-news-ticker']: ephemeral = True + await interaction.response.defer(ephemeral=ephemeral) + this_player = fuzzy_search(player_name, self.player_list) if not this_player: await interaction.response.send_message(f'No clue who that is.') @@ -385,7 +387,7 @@ class Players(commands.Cog): if this_cardset: all_params = [('name', this_player), ('cardset_id', this_cardset['id'])] else: - await interaction.response.send_message(f'I couldn\'t find {cardset} cardset.') + await interaction.edit_original_response(content=f'I couldn\'t find {cardset} cardset.') return else: all_params = [('name', this_player)] @@ -396,9 +398,9 @@ class Players(commands.Cog): all_embeds = [] for x in all_cards: - all_embeds.extend(await get_card_embeds(x)) + all_embeds.extend(await get_card_embeds(x, include_stats=True)) logging.debug(f'embeds: {all_embeds}') - await interaction.response.send_message(content=None, embeds=all_embeds, ephemeral=ephemeral) + await interaction.edit_original_response(content=None, embeds=all_embeds) @app_commands.command(name='record', description='Display team record against AI teams') @app_commands.checks.has_any_role(PD_PLAYERS_ROLE_NAME) diff --git a/helpers.py b/helpers.py index f5e2cca..9dd412f 100644 --- a/helpers.py +++ b/helpers.py @@ -1518,7 +1518,7 @@ async def share_channel(channel, user, read_only=False): await channel.set_permissions(user, read_messages=True, send_messages=not read_only) -async def get_card_embeds(card) -> list: +async def get_card_embeds(card, include_stats=False) -> list: embed = discord.Embed( title=f'{card["player"]["p_name"]}', color=int(card['player']['rarity']['color'], 16) @@ -1528,6 +1528,9 @@ async def get_card_embeds(card) -> list: embed.set_author(name=card['team']['lname'], url=IMAGES['logo'], icon_url=card['team']['logo']) embed.set_footer(text=f'Paper Dynasty Season {card["team"]["season"]}', icon_url=IMAGES['logo']) + if include_stats: + b_query = await db_get('plays/batting', params=[('player_id', card['player']['player_id'])]) + # embed.add_field( # name='Cardset', # value=f'{card["player"]["cardset"]["name"]} ' @@ -1575,6 +1578,18 @@ async def get_card_embeds(card) -> list: else: embed.set_thumbnail(url=IMAGES['logo']) + if include_stats and b_query['count'] > 0: + b = b_query['stats'][0] + batting_string = f'```\n' \ + f' AVG OBP SLG\n' \ + f' {b["avg"]:.3f} {b["obp"]:.3f} {b["slg"]:.3f}\n``````\n' \ + f' OPS wOBA\n' \ + f' {b["ops"]:.3f} {b["woba"]:.3f}\n``````\n' \ + f' PA H RBI 2B 3B HR SB\n' \ + f'{b["pa"]: >3} {b["hit"]: ^3} {b["rbi"]: ^3} {b["double"]: >2} {b["triple"]: >2} ' \ + f'{b["hr"]: >2} {b["sb"]: >2}```\n' + embed.add_field(name='Batting Stats', value=batting_string, inline=False) + if not card['player']['image2']: return [embed]