runabot/RUNA/discord.py

57 lines
1.6 KiB
Python
Raw Normal View History

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)
2024-05-09 04:05:22 +00:00
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()
]
2024-05-09 04:05:22 +00:00
)