runabot/Christmas/discord.py

57 lines
1.9 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() -> 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="https://ddb20b81432c3da07a42f0da207f9cf0@o4506343770357760.ingest.sentry.io/4506343772258304",
integrations=[sentry_logging, AsyncioIntegration()]
)
print("inital sentry_sdk")