Added temporary config handling.

This commit is contained in:
alwayscompiling
2022-08-04 11:06:18 -04:00
parent 4ee0593619
commit a6f98d11ab
2 changed files with 28 additions and 1 deletions
+2
View File
@@ -18,6 +18,8 @@ class GuildListener(commands.Cog, name="Guild Listener"):
async def on_guild_join(self, guild: nextcord.Guild): async def on_guild_join(self, guild: nextcord.Guild):
"""Listener for Guild Join. Creates skeleton for new guild joined and saves it.""" """Listener for Guild Join. Creates skeleton for new guild joined and saves it."""
highscores_data.add_guild(guild.id) highscores_data.add_guild(guild.id)
# This add config will be removed eventually. Config adding will have to be controlled by commands.
highscores_data.add_configuration(guild.id, "runescape")
highscores_data.save_guild_data(highscores_data.get_guild(guild.id)) highscores_data.save_guild_data(highscores_data.get_guild(guild.id))
welcome_message: str = "Hello, I keep track of Highscores for you!" welcome_message: str = "Hello, I keep track of Highscores for you!"
+26 -1
View File
@@ -4,6 +4,8 @@ import os
import json import json
from data.guild import Guild # pylint: disable=import-error from data.guild import Guild # pylint: disable=import-error
from data.table import Table # pylint: disable=import-error
from data.category import Category # pylint: disable=import-error
HIGHSCORES_BACKUP_DIR = "deleted_backups" HIGHSCORES_BACKUP_DIR = "deleted_backups"
@@ -48,6 +50,29 @@ class HighscoresData:
""" """
return self._guild_map.values() return self._guild_map.values()
def add_configuration(self, guild_id: int, config_str: str) -> None:
"""
Adds an example configuration to a Guild. Uses guild id to know which guild and
config name to open a file in example_config.
Args:
guild_id (int): Guild id to add config to
config_str (str): Config name to add
"""
config = self._open_highscores_config(config_str)
guild = self.get_guild(guild_id)
for table_name, categorys in config["tables"].items():
table_obj = Table(table_name)
table_obj.size = config["table_size"]
for category_name in categorys:
category = Category(category_name)
category.ascending = config["categories"][category]["ascending"]
category.time_record = config["categories"][category]["is_time_record"]
table_obj.add_category(category)
guild.add_table(table_obj)
def add_guild(self, guild_id: int) -> None: def add_guild(self, guild_id: int) -> None:
""" """
Creates a new Guild and adds to Guild map. Creates a new Guild and adds to Guild map.
@@ -83,7 +108,7 @@ class HighscoresData:
f"{HIGHSCORES_DATA_DIR}/{guild_id}.json", f"{HIGHSCORES_BACKUP_DIR}/{guild_id}.json" f"{HIGHSCORES_DATA_DIR}/{guild_id}.json", f"{HIGHSCORES_BACKUP_DIR}/{guild_id}.json"
) )
def open_highscores_config(self, config: str) -> dict: def _open_highscores_config(self, config: str) -> dict:
""" """
Opens the highscores config file and returns in dictionary format. Opens the highscores config file and returns in dictionary format.
Will be replaced when config class is created. Will be replaced when config class is created.