From e263ac1e7f95cbc4b6b949258d0c09312b550c49 Mon Sep 17 00:00:00 2001 From: Chris Lovering Date: Thu, 30 Jun 2022 22:29:39 +0100 Subject: Move startup checks and logs to their own cog This is to avoid needed to use wait_until_guild_available during the setup hook. --- bot/exts/utilities/logging.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 bot/exts/utilities/logging.py (limited to 'bot/exts/utilities/logging.py') diff --git a/bot/exts/utilities/logging.py b/bot/exts/utilities/logging.py new file mode 100644 index 00000000..e1d09fdf --- /dev/null +++ b/bot/exts/utilities/logging.py @@ -0,0 +1,42 @@ +from botcore.utils.logging import get_logger +from discord.ext.commands import Cog + +from bot import constants +from bot.bot import Bot + +log = get_logger(__name__) + + +class Logging(Cog): + """Debug logging module.""" + + def __init__(self, bot: Bot): + self.bot = bot + + async def cog_load(self) -> None: + """Announce our presence to the configured dev-log channel after checking channel constants.""" + await self.check_channels() + await self.bot.log_to_dev_log( + title=self.bot.name, + details="Connected!", + ) + + async def check_channels(self) -> None: + """Verifies that all channel constants refer to channels which exist.""" + await self.bot.wait_until_guild_available() + + if constants.Client.debug: + log.info("Skipping Channels Check.") + return + + all_channels_ids = [channel.id for channel in self.bot.get_all_channels()] + for name, channel_id in vars(constants.Channels).items(): + if name.startswith("_"): + continue + if channel_id not in all_channels_ids: + log.error(f'Channel "{name}" with ID {channel_id} missing') + + +async def setup(bot: Bot) -> None: + """Load the Logging cog.""" + await bot.add_cog(Logging(bot)) -- cgit v1.2.3