2023-04-23 15:38:19 +00:00
|
|
|
from toml import TomlDecodeError
|
|
|
|
from discord import Bot, Intents
|
|
|
|
|
|
|
|
from config import Config
|
2023-04-23 22:48:31 +00:00
|
|
|
from logger import Logger
|
2023-04-27 23:19:18 +00:00
|
|
|
from framework import Redis, Youtube
|
|
|
|
from cog import Greetings, Music
|
|
|
|
from service import QueueManager
|
|
|
|
from usecase import Sources
|
2023-04-23 15:38:19 +00:00
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
# Read Config
|
|
|
|
try:
|
|
|
|
config = Config("config.toml")
|
|
|
|
except TomlDecodeError as error:
|
|
|
|
print("Config/DecodeError : %s" % error)
|
2023-04-23 22:48:31 +00:00
|
|
|
exit(1)
|
|
|
|
except KeyError as error:
|
|
|
|
print("Config/KeyError : %s" % error)
|
2023-04-23 15:38:19 +00:00
|
|
|
exit(2)
|
|
|
|
|
|
|
|
# Set Logger
|
2023-04-23 22:48:31 +00:00
|
|
|
logger = Logger(config.logging)()
|
|
|
|
|
|
|
|
# Redis Client
|
2023-04-27 23:19:18 +00:00
|
|
|
redis = Redis(logger, config.redis)
|
|
|
|
|
|
|
|
# Queue Manager
|
|
|
|
queueManager = QueueManager(redis)
|
|
|
|
|
|
|
|
# Bot Init
|
|
|
|
bot = Bot(intents=Intents.default())
|
2023-04-23 15:38:19 +00:00
|
|
|
|
2023-04-27 23:19:18 +00:00
|
|
|
# Youtube Client
|
|
|
|
youtube = Youtube(bot.loop, config.youtube)
|
|
|
|
|
|
|
|
# Sources
|
|
|
|
sources = Sources(youtube)
|
|
|
|
|
|
|
|
# Add Cogs
|
2023-04-23 22:48:31 +00:00
|
|
|
bot.add_cog(Greetings(bot, logger, redis))
|
2023-04-27 23:19:18 +00:00
|
|
|
bot.add_cog(Music(bot, logger, queueManager, sources))
|
|
|
|
|
|
|
|
# Run
|
2023-04-23 15:38:19 +00:00
|
|
|
bot.run(config.discord.token)
|