Update Framework and Language Button libs to use current methods

This commit is contained in:
Funky Waddle 2025-06-29 02:20:52 -05:00
parent e018090af6
commit e6cf2194b2
2 changed files with 17 additions and 14 deletions

View file

@ -12,8 +12,8 @@ class FrameworkButton(discord.ui.Button):
self.language_role = language_role self.language_role = language_role
async def callback(self, interaction: discord.Interaction): async def callback(self, interaction: discord.Interaction):
role = await Roles().get_role(interaction.guild, self.label) role = await Roles().get_guild_role(interaction.guild, self.label)
language_role = await Roles().get_role(interaction.guild, self.language_role) language_role = await Roles().get_guild_role(interaction.guild, self.language_role)
messages = [] messages = []
if role in interaction.user.roles: if role in interaction.user.roles:
await Roles().remove_role(interaction.guild, self.label, interaction.user) await Roles().remove_role(interaction.guild, self.label, interaction.user)

View file

@ -1,33 +1,36 @@
import discord from discord.ui import Button
import importlib from discord import Interaction, ButtonStyle
import os
from libs.Roles import Roles from libs.Roles import Roles
from data.models.Language import Language 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__() super().__init__()
self.style = style self.style = style
self.label = label self.label = label
self.disabled: bool = False self.disabled: bool = False
async def callback(self, interaction: discord.Interaction): async def callback(self, interaction: Interaction):
role = await Roles().get_role(interaction.guild, self.label) 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 = [] messages = []
if role in interaction.user.roles: if role in interaction.user.roles:
await Roles().remove_role(interaction.guild, self.label, interaction.user) 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: 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 {framework.name} framework group")
messages.append(f"You are no longer associated with the {self.label} language group") messages.append(f"You are no longer associated with the {self.label} language group")
else: else:
await Roles().add_role(interaction.guild, self.label, interaction.user) await Roles().add_role(interaction.guild, self.label, interaction.user)
messages.append(f"You are now associated with the {self.label} language group") 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) 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