From 0f05751ce8ecbabecd6b4a1b43153f8326ce16c8 Mon Sep 17 00:00:00 2001 From: imcompiling Date: Sat, 17 Jun 2023 16:25:45 -0400 Subject: [PATCH] Add hydra configs. --- .gitignore | 3 ++- config.py | 28 ++++++++++++++++++++++++++++ dakiny_bot.py | 14 +++++++++++--- requirements.txt | 3 ++- 4 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 config.py diff --git a/.gitignore b/.gitignore index 822647e..13fbe3e 100644 --- a/.gitignore +++ b/.gitignore @@ -137,4 +137,5 @@ deleted_backups/ highscores_data/ TODO.txt sql_tester.py -config.yml +conf +outputs diff --git a/config.py b/config.py new file mode 100644 index 0000000..282c2d9 --- /dev/null +++ b/config.py @@ -0,0 +1,28 @@ +from dataclasses import dataclass +from datetime import datetime + + +@dataclass +class Params: + voting_emote_id: int + annoucement_channel_id: int + archive_channel_group_id: int + clan_council_role_id: int + clan_council_elect_role_id: int + discord_token: str + + +@dataclass +class ElectionCycle: + election_start: datetime + voting_start: datetime + voting_end: datetime + term_start: datetime + term_end: datetime + name: str + + +@dataclass +class DakinyConfig: + params: Params + cycles: list[ElectionCycle] diff --git a/dakiny_bot.py b/dakiny_bot.py index 91d5ec3..6b68528 100644 --- a/dakiny_bot.py +++ b/dakiny_bot.py @@ -1,12 +1,19 @@ import os +import sys +import hydra import nextcord +from hydra.core.config_store import ConfigStore from nextcord.ext import commands -import config +from config import DakinyConfig + +cs = ConfigStore.instance() +cs.store(name="dakiny_config", node=DakinyConfig) -def main(): +@hydra.main(config_path="conf", config_name="config") +def main(cfg: DakinyConfig): # Allows privledged intents for monitoring members joining, roles editing, and role assignments # These need to be enabled in the developer portal as well intents = nextcord.Intents.default() @@ -33,8 +40,9 @@ def main(): print(f"{bot.user.name} has connected to Discord!") # Run Discord bot - bot.run(config.DISCORD_TOKEN) + bot.run(cfg.params.discord_token) if __name__ == "__main__": + sys.argv.append("hydra.job.chdir=False") main() diff --git a/requirements.txt b/requirements.txt index 97a0b72..2f6f7c1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ nextcord==2.4.2 python-dotenv==1.0.0 -pytz==2022.7.1 \ No newline at end of file +pytz==2022.7.1 +hydra-core==1.3.2 \ No newline at end of file