import toml class DiscordConfig: def __init__(self, discordConfig) -> None: self.token: str = discordConfig["token"] self.timeout: int = discordConfig["timeout"] class YoutubeConfig: def __init__(self, youtubeConfig) -> None: self.language: str = youtubeConfig["language"] self.region: str = youtubeConfig["region"] class SpotifyConfig: def __init__(self, spotifyConfig) -> None: self.clientId: str = spotifyConfig["clientId"] self.clientSecret: str = spotifyConfig["clientSecret"] self.region: str = spotifyConfig["region"] class LoggingConfig: def __init__(self, loggingConfig) -> None: self.level: str = loggingConfig["level"] class RedisConfig: def __init__(self, redisConfig) -> None: self.host: str = redisConfig["host"] self.port: int = redisConfig["port"] self.password: str = redisConfig["password"] class Config: def __init__(self, configPath: str) -> None: self.config = toml.load(configPath) self.appName: str = self.config["appName"] self.downloadDirectory: str = self.config["downloadDirectory"] self.discord = DiscordConfig(self.config["discord"]) self.youtube = YoutubeConfig(self.config["youtube"]) self.spotify = SpotifyConfig(self.config["spotify"]) self.logging = LoggingConfig(self.config["logging"]) self.redis = RedisConfig(self.config["redis"]) def __str__(self) -> str: return str(self.config)