From e6cf2194b207df15975988b1b10e81eaabeebe51 Mon Sep 17 00:00:00 2001 From: Funky Waddle Date: Sun, 29 Jun 2025 02:20:52 -0500 Subject: [PATCH] Update Framework and Language Button libs to use current methods --- libs/FrameworkButton.py | 4 ++-- libs/LanguageButton.py | 27 +++++++++++++++------------ 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/libs/FrameworkButton.py b/libs/FrameworkButton.py index b7d829d..fe32d82 100644 --- a/libs/FrameworkButton.py +++ b/libs/FrameworkButton.py @@ -12,8 +12,8 @@ class FrameworkButton(discord.ui.Button): self.language_role = language_role async def callback(self, interaction: discord.Interaction): - role = await Roles().get_role(interaction.guild, self.label) - language_role = await Roles().get_role(interaction.guild, self.language_role) + role = await Roles().get_guild_role(interaction.guild, self.label) + language_role = await Roles().get_guild_role(interaction.guild, self.language_role) messages = [] if role in interaction.user.roles: await Roles().remove_role(interaction.guild, self.label, interaction.user) diff --git a/libs/LanguageButton.py b/libs/LanguageButton.py index 3392cc7..6d9822c 100644 --- a/libs/LanguageButton.py +++ b/libs/LanguageButton.py @@ -1,33 +1,36 @@ -import discord -import importlib -import os +from discord.ui import Button +from discord import Interaction, ButtonStyle from libs.Roles import Roles from data.models.Language import Language -class LanguageButton(discord.ui.Button): +class LanguageButton(Button): - def __init__(self, style=discord.ButtonStyle.blurple, label="Not Set"): + def __init__(self, style=ButtonStyle.blurple, label="Not Set"): super().__init__() self.style = style self.label = label self.disabled: bool = False - async def callback(self, interaction: discord.Interaction): - role = await Roles().get_role(interaction.guild, self.label) + async def callback(self, interaction: Interaction): + role = await Roles().get_guild_role(interaction.guild, self.label) - language = interaction.client.db.session.query(Language).filter(Language.label == self.label).first() - lang_frameworks = [fw.label for fw in language.frameworks] - framework_roles = await Roles().get_roles(interaction.guild, lang_frameworks) - frameworks_to_remove = list(set(framework_roles) & set(interaction.user.roles)) messages = [] if role in interaction.user.roles: await Roles().remove_role(interaction.guild, self.label, interaction.user) + lang_frameworks = await self.bot.db.language_frameworks(interaction.client.db) + framework_roles = await Roles().get_roles(interaction.guild, lang_frameworks) + frameworks_to_remove = list(set(framework_roles) & set(interaction.user.roles)) for framework in frameworks_to_remove: - await Roles().remove_role(interaction.guild, framework.name, interaction.user) + await Roles().remove_role(framework, interaction.user) messages.append(f"You are no longer associated with the {framework.name} framework group") messages.append(f"You are no longer associated with the {self.label} language group") else: await Roles().add_role(interaction.guild, self.label, interaction.user) messages.append(f"You are now associated with the {self.label} language group") await interaction.response.send_message("\n".join(messages), delete_after=5, ephemeral=True) + + async def get_language_frameworks(self, db): + language = db.session.query(Language).filter(Language.label == self.label).first() + lang_frameworks = [fw.label for fw in language.frameworks] + return lang_frameworks \ No newline at end of file