From f468a028d00c6a5bc3a9ef40eee52a637e3075ab Mon Sep 17 00:00:00 2001 From: alwayscompiling Date: Thu, 8 Dec 2022 13:01:57 -0500 Subject: [PATCH] Changed send_highscore_message to take guild rather than channel. --- cogs/commands/delete.py | 6 +++--- cogs/commands/refresh.py | 13 ++---------- cogs/commands/views/update_username_verify.py | 2 +- utilities/utils.py | 20 ++++++------------- 4 files changed, 12 insertions(+), 29 deletions(-) diff --git a/cogs/commands/delete.py b/cogs/commands/delete.py index 0634180..44d3622 100644 --- a/cogs/commands/delete.py +++ b/cogs/commands/delete.py @@ -120,7 +120,7 @@ class DeleteCog(commands.Cog, name="Table Management"): stmt = select(CategoryGroup).where(CategoryGroup.GroupId.in_(group_ids)) for group in session.scalars(stmt): - await send_highscore_message(session, interaction.guild.get_channel(group.ChannelId), group) + await send_highscore_message(session, interaction.guild, group) await interaction.send(f'User "{user_name}" was removed from all tables.', ephemeral=True) @@ -163,7 +163,7 @@ class DeleteCog(commands.Cog, name="Table Management"): session.delete(session.scalar(stmt)) session.commit() - await send_highscore_message(session, interaction.guild.get_channel(group.ChannelId), group) + await send_highscore_message(session, interaction.guild, group) await interaction.response.send_message( f'User "{user_name}" removed from "{category_name}".', ephemeral=True ) @@ -194,7 +194,7 @@ class DeleteCog(commands.Cog, name="Table Management"): session.delete(score) session.commit() - await send_highscore_message(session, interaction.guild.get_channel(group.ChannelId), group) + await send_highscore_message(session, interaction.guild, group) await interaction.response.send_message( f'User "{user_name}" removed from all categories in {group.GroupName}.', ephemeral=True ) diff --git a/cogs/commands/refresh.py b/cogs/commands/refresh.py index c0ddb12..aae54a6 100644 --- a/cogs/commands/refresh.py +++ b/cogs/commands/refresh.py @@ -55,9 +55,7 @@ class RefreshCog(commands.Cog, name="Refresh Cog"): ) group = session.scalar(stmt) - channel = interaction.guild.get_channel(group.ChannelId) - - message: nextcord.Message = await send_highscore_message(session, channel, group) + message: nextcord.Message = await send_highscore_message(session, interaction.guild, group) await message.edit(view=SubmissionCreateButton(self._bot)) await interaction.response.send_message(f"Updated table {group.GroupName}!", ephemeral=True) @@ -88,14 +86,7 @@ class RefreshCog(commands.Cog, name="Refresh Cog"): await interaction.response.defer(ephemeral=True) for group in session.scalars(stmt): - channel = interaction.guild.get_channel(group.ChannelId) - - # Error checking for registered highscore channel - error_response = "Registered Highscores channel does not exist or was never registered. " - error_response += 'Use "/register" to register channels.' - assert channel is not None, await interaction.response(error_response, ephemeral=True) - - message: nextcord.Message = await send_highscore_message(session, channel, group) + message: nextcord.Message = await send_highscore_message(session, interaction.guild, group) await message.edit(view=SubmissionCreateButton(self._bot)) await interaction.send(f"Posted all groups in {interaction.guild.name}'s highscores.", ephemeral=True) diff --git a/cogs/commands/views/update_username_verify.py b/cogs/commands/views/update_username_verify.py index 8ff4ca4..84b2fcf 100644 --- a/cogs/commands/views/update_username_verify.py +++ b/cogs/commands/views/update_username_verify.py @@ -63,7 +63,7 @@ class UpdateUsernameVerifyView(nextcord.ui.View): stmt = select(CategoryGroup).where(CategoryGroup.GroupId.in_(group_ids)) for group in session.scalars(stmt): - await send_highscore_message(session, interaction.guild.get_channel(group.ChannelId), group) + await send_highscore_message(session, interaction.guild, group) content = interaction.message.content content += f"\nApproved by <@{interaction.user.id}>." diff --git a/utilities/utils.py b/utilities/utils.py index 0a9fd31..dc82ef4 100644 --- a/utilities/utils.py +++ b/utilities/utils.py @@ -298,23 +298,22 @@ def get_time_str(time_in: float) -> str: return time.strftime(f"%-M:%S.{milliseconds}", time.gmtime(time_in)) -async def send_highscore_message( - session: Session, channel: nextcord.TextChannel, group: CategoryGroup -) -> nextcord.Message: +async def send_highscore_message(session: Session, guild: nextcord.Guild, group: CategoryGroup) -> nextcord.Message: """ Function takes care of checking if a message exists for a group. Creates and sends/edits the message. Args: session (Session): The sqlalchemy session being used for this function call. - channel (nextcord.TextChannel): Discord channel object where message is sent - group (CategoryGroup): group to post to the message + guild (nextcord.Guild): the nextcord.Guild object requesting this message. + group (CategoryGroup): group to post to the message. Returns: - nextcord.Message: Message object that was posted with group contents + nextcord.Message: Message object that was posted with group contents. """ highscore_string = format_highscore_message(session, group) + channel = guild.get_channel(group.ChannelId) try: message: nextcord.Message = await channel.fetch_message(group.MessageId) @@ -367,14 +366,7 @@ async def submit_score( stmt = select(CategoryGroup).where(CategoryGroup.GroupId == group_id) group = session.scalar(stmt) - # edit message - channel = interaction.guild.get_channel(group.ChannelId) - - error_response = "Registered Highscores channel does not exist or was never registered." - error_response += 'Register with "/register" command.' - assert channel is not None, await interaction.send(error_response, ephemeral=True) - - await send_highscore_message(session, channel, group) + await send_highscore_message(session, interaction.guild, group) def add_preset_configuration(guild_id: int, config_str: str) -> None: