47 lines
1.2 KiB
Python
47 lines
1.2 KiB
Python
from dataclasses import dataclass, asdict
|
|
from datetime import datetime, timedelta
|
|
from os import getenv
|
|
|
|
|
|
@dataclass
|
|
class _CONFIG:
|
|
"""
|
|
Skell for other Services Configurations
|
|
"""
|
|
|
|
def __hash__(self) -> dict:
|
|
return asdict(self)
|
|
|
|
def load_envs(self) -> object:
|
|
"""
|
|
Loads variables from environment.
|
|
:return:
|
|
"""
|
|
raise NotImplementedError
|
|
|
|
def __post_init__(self):
|
|
self = self.load_envs()
|
|
|
|
|
|
@dataclass
|
|
class DiscordConf(_CONFIG):
|
|
"""
|
|
Stores the configuration for the Discord Bot
|
|
|
|
token: str
|
|
mc_url: str : Url to post on the discord embeds / messages
|
|
prefix: str : Prefix for the commands
|
|
description: str : Bot description to have
|
|
"""
|
|
token: str = None
|
|
# mc_url: str = None
|
|
prefix: str = "!"
|
|
description: str = "Don't u dare make me fix ur twitter links."
|
|
|
|
def load_envs(self):
|
|
self.token = getenv("DISCORD_TOKEN") or self.token
|
|
# self.mc_url = getenv("DISCORD_MC_URL") or self.mc_url
|
|
self.prefix = getenv("DISCORD_PREFIX") or self.prefix
|
|
self.description = getenv("DISCORD_DESCRIPTION") or self.description
|
|
return self
|