1
Fork 0
mirror of https://github.com/wlinator/luminara.git synced 2024-10-02 18:03:12 +00:00
Lumi/main.py

46 lines
1.1 KiB
Python
Raw Normal View History

import asyncio
2024-08-29 08:48:14 +00:00
import sys
import discord
from discord.ext import commands
from loguru import logger
2024-08-29 08:48:14 +00:00
2024-08-28 14:47:30 +00:00
from lib.client import Luminara
2024-08-29 08:48:14 +00:00
from lib.const import CONST
from services.config_service import GuildConfig
logger.remove()
logger.add(sys.stdout, format=CONST.LOG_FORMAT, colorize=True, level=CONST.LOG_LEVEL)
async def get_prefix(bot: Luminara, message: discord.Message) -> list[str]:
extras = GuildConfig.get_prefix(message)
return commands.when_mentioned_or(*extras)(bot, message)
async def main() -> None:
if not CONST.TOKEN:
logger.error("No token provided")
return
lumi: Luminara = Luminara(
owner_ids=CONST.OWNER_IDS,
intents=discord.Intents.all(),
command_prefix=get_prefix,
allowed_mentions=discord.AllowedMentions(everyone=False),
)
try:
await lumi.start(CONST.TOKEN, reconnect=True)
except KeyboardInterrupt:
logger.info("Keyboard interrupt detected. Shutting down...")
finally:
logger.info("Closing resources...")
await lumi.shutdown()
if __name__ == "__main__":
asyncio.run(main())