Update Framework and Language Button libs to use current methods
This commit is contained in:
parent
e018090af6
commit
e6cf2194b2
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
Loading…
Reference in a new issue