runabot/Christmas/discord.py

57 lines
1.8 KiB
Python
Raw Normal View History

2023-11-25 17:28:48 +00:00
import os
import sentry_sdk
import asyncio
import logging
from sentry_sdk.integrations.asyncio import AsyncioIntegration
from sentry_sdk.integrations.logging import LoggingIntegration
2023-11-25 17:28:48 +00:00
2023-11-25 15:47:09 +00:00
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()
2023-12-05 14:35:48 +00:00
#self.debug_guilds = [1090621667778244638,1015236495910649926,957142859629342790,1125370139165081612,1170310470503247993]
2023-12-02 06:03:50 +00:00
2023-11-25 15:47:09 +00:00
def run(self, *args: Any, **kwargs: Any) -> None:
2023-11-26 04:27:34 +00:00
kwargs.update({"token": self.config.TOKEN})
2023-11-25 15:47:09 +00:00
super().run(*args, **kwargs)
2023-11-25 17:28:48 +00:00
2023-12-05 14:35:48 +00:00
def load_cogs(bot: AutoShardedBot) -> None:
2023-11-25 17:28:48 +00:00
for filename in os.listdir("Christmas/Cogs"):
if filename.endswith(".py"):
2023-11-26 04:27:34 +00:00
bot.load_extension(f"Christmas.Cogs.{filename[:-3]}")
2023-11-25 17:28:48 +00:00
def apply_uvloop() -> None:
try:
import uvloop
import asyncio
except ImportError:
pass
else:
uvloop.install()
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
2023-12-06 10:49:31 +00:00
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(
2023-12-06 10:49:31 +00:00
dsn=dsn,
integrations=[sentry_logging, AsyncioIntegration()]
)
print("inital sentry_sdk")