aboutsummaryrefslogtreecommitdiffstats
path: root/bot/exts/utilities
diff options
context:
space:
mode:
authorGravatar Chris Lovering <[email protected]>2022-06-30 22:29:39 +0100
committerGravatar Chris Lovering <[email protected]>2022-09-21 23:02:55 +0100
commite263ac1e7f95cbc4b6b949258d0c09312b550c49 (patch)
treeab546c7473d588600051004bf4926e2951b80793 /bot/exts/utilities
parentRemove reference to no longer used EmptyEmbed var (diff)
Move startup checks and logs to their own cog
This is to avoid needed to use wait_until_guild_available during the setup hook.
Diffstat (limited to 'bot/exts/utilities')
-rw-r--r--bot/exts/utilities/logging.py42
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))