43 lines
1015 B
Python
43 lines
1015 B
Python
import asyncio
|
|
import contextlib
|
|
import logging.config
|
|
from logging import Logger
|
|
from os import getpid, makedirs
|
|
from pathlib import Path
|
|
|
|
# Import required for uvicorn
|
|
from libbot.utils import config_get
|
|
|
|
from classes.pycord_bot import PycordBot
|
|
from modules.logging_utils import get_logging_config, get_logger
|
|
from modules.scheduler import scheduler
|
|
|
|
makedirs(Path("logs/"), exist_ok=True)
|
|
|
|
logging.config.dictConfig(get_logging_config())
|
|
|
|
logger: Logger = get_logger(__name__)
|
|
|
|
# Try to import the module that improves performance
|
|
# and ignore errors when module is not installed
|
|
with contextlib.suppress(ImportError):
|
|
import uvloop
|
|
|
|
uvloop.install()
|
|
|
|
|
|
async def main():
|
|
bot = PycordBot(scheduler=scheduler)
|
|
|
|
bot.load_extension("cogs")
|
|
|
|
try:
|
|
await bot.start(config_get("bot_token", "bot"))
|
|
except KeyboardInterrupt:
|
|
logger.warning("Forcefully shutting down with PID %s...", getpid())
|
|
await bot.close()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.create_task(main())
|