57 lines
1.8 KiB
Python
57 lines
1.8 KiB
Python
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") |