diff options
Diffstat (limited to 'bot/exts/utilities/logging.py')
| -rw-r--r-- | bot/exts/utilities/logging.py | 42 | 
1 files changed, 42 insertions, 0 deletions
| 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)) | 
