dj-embe/__main__.py

66 lines
1.6 KiB
Python
Raw Normal View History

2023-05-06 01:16:26 +00:00
from os import mkdir, path
2023-04-23 15:38:19 +00:00
from discord import Bot, Intents
2023-05-06 01:16:26 +00:00
from toml import TomlDecodeError
2023-04-23 15:38:19 +00:00
2023-05-06 01:16:26 +00:00
from cog import Greetings, Music
2023-04-23 15:38:19 +00:00
from config import Config
2023-05-16 23:04:16 +00:00
from framework import DiscordPlayer, Downloader, Redis, Spotify, Youtube
2023-04-23 22:48:31 +00:00
from logger import Logger
2023-05-16 23:04:16 +00:00
from service import FileManager, PlaybackManager, QueueManager
2023-04-27 23:19:18 +00:00
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)
2023-05-06 01:16:26 +00:00
if not path.isdir(config.downloadDirectory):
mkdir(config.downloadDirectory)
2023-04-23 15:38:19 +00:00
# Set Logger
2023-04-23 22:48:31 +00:00
logger = Logger(config.logging)()
# Redis Client
2023-05-06 01:16:26 +00:00
redis = Redis(logger, config.redis, config.appName)
2023-04-27 23:19:18 +00:00
2023-05-16 23:04:16 +00:00
# Discord Player
discordPlayer = DiscordPlayer()
# Playback Manager
playbackManager = PlaybackManager(discordPlayer)
2023-04-27 23:19:18 +00:00
# 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
2023-05-06 01:16:26 +00:00
youtube = Youtube(bot.loop, config.youtube, config.downloadDirectory)
# Spotify Client
spotify = Spotify(bot.loop, config.spotify)
# Downloader
downloader = Downloader(bot.loop)
# File Manager
fileManager = FileManager(youtube, downloader, config.downloadDirectory)
2023-04-27 23:19:18 +00:00
# Sources
2023-05-06 01:16:26 +00:00
sources = Sources(fileManager, youtube, spotify)
2023-04-27 23:19:18 +00:00
# Add Cogs
2023-04-23 22:48:31 +00:00
bot.add_cog(Greetings(bot, logger, redis))
2023-05-16 23:04:16 +00:00
bot.add_cog(Music(bot, logger, queueManager, playbackManager, sources))
2023-04-27 23:19:18 +00:00
# Run
2023-04-23 15:38:19 +00:00
bot.run(config.discord.token)