import os import sentry_sdk import asyncio import logging from sentry_sdk.integrations.asyncio import AsyncioIntegration from sentry_sdk.integrations.logging import LoggingIntegration from types import SimpleNamespace from typing import Any, cast from discord import AutoShardedBot from discord.ext import commands, tasks from Christmas.config import ChristmasConfig class Christmas(AutoShardedBot): def __init__(self, *args: Any, **kwargs: Any): super().__init__(*args, **kwargs) self.config = ChristmasConfig() #self.debug_guilds = [1090621667778244638,1015236495910649926,957142859629342790,1125370139165081612,1170310470503247993] def run(self, *args: Any, **kwargs: Any) -> None: kwargs.update({"token": self.config.TOKEN}) super().run(*args, **kwargs) def load_cogs(bot: AutoShardedBot) -> None: for filename in os.listdir("Christmas/Cogs"): if filename.endswith(".py"): bot.load_extension(f"Christmas.Cogs.{filename[:-3]}") def apply_uvloop() -> None: try: import uvloop import asyncio except ImportError: pass else: uvloop.install() asyncio.set_event_loop_policy(uvloop.EventLoopPolicy()) def inital_sentry_sdk(dsn: str) -> None: logger = logging.getLogger('discord') logger.setLevel(logging.DEBUG) handler = logging.FileHandler(filename='discord.log', encoding='utf-8', mode='w') handler.setFormatter(logging.Formatter('%(asctime)s:%(levelname)s:%(name)s: %(message)s')) logger.addHandler(handler) sentry_logging = LoggingIntegration( level=logging.WARNING, event_level=logging.ERROR ) sentry_sdk.init( dsn=dsn, integrations=[sentry_logging, AsyncioIntegration()] ) print("inital sentry_sdk")