diff options
Diffstat (limited to 'bot/exts')
-rw-r--r-- | bot/exts/events/advent_of_code/_cog.py | 2 | ||||
-rw-r--r-- | bot/exts/utilities/logging.py | 42 |
2 files changed, 43 insertions, 1 deletions
diff --git a/bot/exts/events/advent_of_code/_cog.py b/bot/exts/events/advent_of_code/_cog.py index 518841d4..1d8b0ca7 100644 --- a/bot/exts/events/advent_of_code/_cog.py +++ b/bot/exts/events/advent_of_code/_cog.py @@ -87,7 +87,7 @@ class AdventOfCode(commands.Cog): try: leaderboard = await _helpers.fetch_leaderboard() except _helpers.FetchingLeaderboardFailedError: - await self.bot.send_log("Unable to fetch AoC leaderboard during role sync.") + await self.bot.log_to_dev_log("Unable to fetch AoC leaderboard during role sync.") return placement_leaderboard = json.loads(leaderboard["placement_leaderboard"]) 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)) |