diff options
| -rw-r--r-- | bot/exts/help_channels/_cog.py | 42 |
1 files changed, 16 insertions, 26 deletions
diff --git a/bot/exts/help_channels/_cog.py b/bot/exts/help_channels/_cog.py index 680c77f10..11e3aef59 100644 --- a/bot/exts/help_channels/_cog.py +++ b/bot/exts/help_channels/_cog.py @@ -77,9 +77,7 @@ class HelpChannels(commands.Cog): # Caching the message object for the dynamic message. self.dynamic_message_cache = async_rediscache.RedisCache(namespace="Dynamic Message") - self.how_to_get_help: t.Optional[discord.TextChannel] = None - self.dynamic_message: t.Optional[discord.Message] = None - + self.dynamic_message: t.Optional[int] = None self.available_help_channels: t.Set[discord.TextChannel] = set() # Asyncio stuff @@ -292,9 +290,8 @@ class HelpChannels(commands.Cog): # This may confuse users. So would potentially long delays for the cog to become ready. self.close_command.enabled = True - # Acquiring and modifying the channel to dynamically update the available help channels message. - log.trace("Attempting to fetch dynamic message ID along with How-to-get-help channel ID.") - self.how_to_get_help = await self.dynamic_message_cache.get("How-to-get-help Channel ID") + # Acquiring the dynamic message ID, if it exists within the cache. + log.trace("Attempting to fetch How-to-get-help dynamic message ID.") self.dynamic_message = await self.dynamic_message_cache.get("How-to-get-help Dynamic Message ID") # Getting channels that need to be included in the dynamic message. @@ -503,25 +500,18 @@ class HelpChannels(commands.Cog): available=', '.join(c.mention for c in self.available_help_channels) or None ) - if self.how_to_get_help is None: - self.how_to_get_help = await channel_utils.try_get_channel(constants.Channels.how_to_get_help) - await self.dynamic_message_cache.set("How-to-get-help Channel ID", self.how_to_get_help.id) - - if self.dynamic_message is None: - last_message = await self.how_to_get_help.history(limit=1).find(lambda m: m.author == self.bot.user) - - if not last_message: - self.dynamic_message = await self.how_to_get_help.send(available_channels) - log.trace("A dynamic message was sent for later modification because one couldn't be found.") - else: - await last_message.edit(content=available_channels) - - await self.dynamic_message_cache.set("How-to-get-help Dynamic Message ID", self.dynamic_message.id) - - else: + if self.dynamic_message is not None: try: - await self.dynamic_message.edit(content=available_channels) + await self.bot.http.edit_message( + constants.Channels.how_to_get_help, self.dynamic_message, content=available_channels + ) + log.trace("Help channels have changed, dynamic message has been edited.") except discord.NotFound: - self.dynamic_message = await self.how_to_get_help.send(available_channels) - await self.dynamic_message_cache.set("How-to-get-help Dynamic Message ID", self.dynamic_message.id) - log.trace("Dynamic has been sent again since previous was removed during process of updating message.") + pass + else: + log.trace("No How-to-get-help dynamic message could be found in the Redis cache. Setting a new one.") + new_dynamic_message = await self.bot.http.send_message( + constants.Channels.how_to_get_help, available_channels + ) + self.dynamic_message = new_dynamic_message["id"] + await self.dynamic_message_cache.set("How-to-get-help Dynamic Message ID", self.dynamic_message) |