From bf356ce2f8cbe8da9fc3bddfcf2ac50d8d4d527a Mon Sep 17 00:00:00 2001 From: Howard Tseng Date: Tue, 14 Jan 2025 20:34:48 -0500 Subject: [PATCH] config module changes --- bot.py | 6 +++--- modules/config.py | 34 +++++++++++++++++++++++++++++++--- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/bot.py b/bot.py index dc2ce91..fafdd97 100644 --- a/bot.py +++ b/bot.py @@ -2,7 +2,7 @@ import discord from activities import activity from discord.ext import tasks -from modules.config import fetch_config +from modules.config import fetch_configs CHANGE_STATUS_INTERVAL_HOURS = 1 @@ -15,7 +15,7 @@ def __init__(self, is_prod: bool, *args, **kwargs) -> None: movie_activity = activity.get_random_activity_as_discordpy_activity() # config self.is_prod = is_prod - self.guilds_dict = fetch_config(is_prod) + self.guilds_dict = fetch_configs(is_prod) super().__init__(intents=intents, activity=movie_activity, *args, **kwargs) @tasks.loop(hours=CHANGE_STATUS_INTERVAL_HOURS) @@ -32,7 +32,7 @@ async def setup_hook(self) -> None: self.set_activity.start() def fetch_config(self): - self.guilds_dict = fetch_config(self.is_prod) + self.guilds_dict = fetch_configs(self.is_prod) def get_bot(is_prod: bool): diff --git a/modules/config.py b/modules/config.py index c57b01e..41d6c63 100644 --- a/modules/config.py +++ b/modules/config.py @@ -1,7 +1,7 @@ from modules.supabase import supabaseClient -def fetch_config(is_prod: bool): +def fetch_configs(is_prod: bool): supabase_data = supabaseClient.table("server_config").select("*").eq('prod_config', is_prod).execute().data transformed_dict = { item['guild_id']: {key: value for key, value in item.items() if key != 'guild_id'} for item in supabase_data @@ -9,7 +9,35 @@ def fetch_config(is_prod: bool): return transformed_dict -def set_config(guild_id: int, key: str, value: str, is_prod: bool): - supabaseClient.table("server_config").update({key: value}).eq("guild_id", guild_id).eq( +def fetch_guild_config(guild_id: int, is_prod: bool): + response = supabaseClient.table("server_config").select("*").eq("guild_id", guild_id).eq( "prod_config", is_prod ).execute() + # if there is no data, return an empty dict + if len(response.data) == 0: + return {} + return response.data[0] + +def create_new_config(guild_id: int, server_name: str, is_prod: bool): + response = supabaseClient.table("server_config").insert( + { + "guild_id": guild_id, + "server_name": server_name, + "prod_config": is_prod, + } + ).execute() + return response.data + + +def set_config(guild_id: int, key: str, value: str, is_prod: bool) -> list: + response = supabaseClient.table("server_config").update({key: value}).eq("guild_id", guild_id).eq( + "prod_config", is_prod + ).execute() + return response.data + +def remove_config(guild_id: int, is_prod: bool) -> list: + response = supabaseClient.table("server_config").delete().eq("guild_id", guild_id).eq( + "prod_config", is_prod + ).execute() + return response.data +