56 lines
1.6 KiB
Python
56 lines
1.6 KiB
Python
|
import os
|
||
|
import sentry_sdk
|
||
|
|
||
|
from sentry_sdk.integrations.asyncio import AsyncioIntegration
|
||
|
from sentry_sdk.integrations.pymongo import PyMongoIntegration
|
||
|
from sentry_sdk.integrations.aiohttp import AioHttpIntegration
|
||
|
from sentry_sdk.integrations.loguru import LoguruIntegration
|
||
|
|
||
|
from typing import Any, cast
|
||
|
from dotenv import load_dotenv, find_dotenv
|
||
|
from discord import AutoShardedBot
|
||
|
from discord.ext import commands, tasks
|
||
|
|
||
|
from RUNA.Modules.Logging import Logging
|
||
|
|
||
|
load_dotenv(find_dotenv())
|
||
|
|
||
|
|
||
|
class Runa(AutoShardedBot):
|
||
|
def __init__(self, *args: Any, **kwargs: Any):
|
||
|
super().__init__(*args, **kwargs)
|
||
|
# self.debug_guilds = [1090621667778244638,1015236495910649926,957142859629342790,1125370139165081612,1170310470503247993]
|
||
|
|
||
|
def run(self, *args: Any, **kwargs: Any) -> None:
|
||
|
kwargs.update({"token": os.getenv("TOKEN")})
|
||
|
super().run(*args, **kwargs)
|
||
|
|
||
|
|
||
|
def load_cogs(bot: AutoShardedBot) -> None:
|
||
|
for filename in os.listdir("RUNA/Cogs"):
|
||
|
if filename.endswith(".py"):
|
||
|
bot.load_extension(f"RUNA.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 init_sentry_sdk(dsn: str) -> None:
|
||
|
sentry_sdk.init(
|
||
|
dsn=dsn,
|
||
|
integrations=[
|
||
|
AsyncioIntegration(),
|
||
|
PyMongoIntegration(),
|
||
|
AioHttpIntegration(),
|
||
|
LoguruIntegration()
|
||
|
]
|
||
|
)
|