Merge branch 'dev' into 'main'

Dev

See merge request Omega_Kube/kuby!29
This commit is contained in:
Gameur 2026-06-05 17:42:37 +02:00
commit 4b2dd28583
4 changed files with 47 additions and 2 deletions

10
bot.py
View file

@ -166,6 +166,16 @@ class MyBot(commands.Bot):
kuby_logger.info(f"👋 {member} joined {member.guild.name}") kuby_logger.info(f"👋 {member} joined {member.guild.name}")
if hasattr(self, 'advanced_logger'): if hasattr(self, 'advanced_logger'):
self.advanced_logger.log_member_join(member) self.advanced_logger.log_member_join(member)
# Vérifier si la restauration des rôles est activée pour ce serveur
from commandes.security import load_settings
settings = load_settings(member.guild.id)
role_restore_enabled = settings.get("role_restore_enabled", True)
if not role_restore_enabled:
kuby_logger.debug(f"Restauration des rôles désactivée pour {member.guild.name}, saut...")
return
previous_roles = self.advanced_logger.check_previous_roles(member.id) previous_roles = self.advanced_logger.check_previous_roles(member.id)
if previous_roles: if previous_roles:
guild = member.guild guild = member.guild

View file

@ -249,6 +249,8 @@ class SecurityView(disnake.ui.View):
self.build_whitelist_view() self.build_whitelist_view()
elif self.category == "rules": elif self.category == "rules":
self.build_rules_view() self.build_rules_view()
elif self.category == "membres":
self.build_members_view()
def build_spam_view(self): def build_spam_view(self):
"""Construit la vue Anti-Spam""" """Construit la vue Anti-Spam"""
@ -674,6 +676,27 @@ class SecurityView(disnake.ui.View):
ephemeral=True ephemeral=True
) )
def build_members_view(self):
"""Construit la vue Paramètres Membres"""
# Toggle Restauration des rôles
role_restore = self.settings.get("role_restore_enabled", True)
btn_restore = ToggleButton(
label="Restauration des rôles",
emoji="🔄",
is_enabled=role_restore,
custom_id="role_restore_enabled"
)
self.add_item(btn_restore)
# Bouton retour
btn_back = disnake.ui.Button(
label="Retour",
style=disnake.ButtonStyle.gray,
emoji="⬅️"
)
btn_back.callback = self.back_to_main
self.add_item(btn_back)
async def back_to_main(self, interaction: disnake.Interaction): async def back_to_main(self, interaction: disnake.Interaction):
"""Retour au menu principal""" """Retour au menu principal"""
self.category = None self.category = None
@ -815,6 +838,12 @@ class MainCategorySelect(disnake.ui.Select):
emoji="👥", emoji="👥",
value="whitelist", value="whitelist",
description="Gérer les utilisateurs immunisés" description="Gérer les utilisateurs immunisés"
),
disnake.SelectOption(
label="Membres",
emoji="👤",
value="membres",
description="Paramètres liés aux membres"
) )
] ]
super().__init__( super().__init__(
@ -868,6 +897,11 @@ class MainCategorySelect(disnake.ui.Select):
"Gestion Whitelist", "Gestion Whitelist",
"Gérez les utilisateurs immunisés aux protections.\n\n" "Gérez les utilisateurs immunisés aux protections.\n\n"
"Ces utilisateurs ne seront jamais sanctionnés." "Ces utilisateurs ne seront jamais sanctionnés."
),
"membres": view.create_category_embed(
"Paramètres Membres",
"Paramètres liés à la gestion des membres.\n\n"
"• **Restauration des rôles** : Restaurer automatiquement les rôles des membres de retour"
) )
} }

View file

@ -7,6 +7,7 @@
"rules_content": "vfkj,oejfrsknezfrijugn,krvjgfinkrze,fgjin,", "rules_content": "vfkj,oejfrsknezfrijugn,krvjgfinkrze,fgjin,",
"rules_channel_id": 1369669999677145101, "rules_channel_id": 1369669999677145101,
"rules_accept_role_id": 1369769836028231730, "rules_accept_role_id": 1369769836028231730,
"rules_message_type": "embed" "rules_message_type": "embed",
"role_restore_enabled": true
} }
} }

View file

@ -82,7 +82,7 @@ def run_mep_logic(author, commit_msg, branch="main"):
send_discord_log("VALIDÉ", msg, 3066993, author, commit_msg) send_discord_log("VALIDÉ", msg, 3066993, author, commit_msg)
# 3. PM2 (Appelé après le message pour éviter que le kill du serv ne bloque l'envoi) # 3. PM2 (Appelé après le message pour éviter que le kill du serv ne bloque l'envoi)
subprocess.run(f"pm2 restart {PROCESS_NAME}", shell=True, check=True, capture_output=True) subprocess.run(f"/home/discord/.nvm/versions/node/v24.15.0/bin/pm2 {PROCESS_NAME}", shell=True, check=True, capture_output=True)
except Exception as e: except Exception as e:
error_msg = f"❌ **ERREUR de déploiement**\n```python\n{str(e)}\n```" error_msg = f"❌ **ERREUR de déploiement**\n```python\n{str(e)}\n```"