Ajout de la gestion des jeux gratuits et des invitations Discord. Création des modèles FreeGame et DiscordInvite, mise à jour de la base de données et des fichiers de configuration. Intégration de nouvelles fonctionnalités pour synchroniser et révoquer les invitations, ainsi que l'ajout d'un flux RSS pour les jeux gratuits. Amélioration de l'interface d'administration avec des statistiques et des options de gestion des serveurs.
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
import discord
|
||||
import logging
|
||||
from database.helpers import ConfigurationHelper
|
||||
from discord import Member
|
||||
|
||||
async def assignAutoRole(bot: discord.Client, member: Member):
|
||||
"""Attribue automatiquement un rôle aux nouveaux membres"""
|
||||
config = ConfigurationHelper()
|
||||
|
||||
if not config.getValue('autorole_enable'):
|
||||
return
|
||||
|
||||
role_id = config.getIntValue('autorole_role_id')
|
||||
if not role_id:
|
||||
logging.warning('Auto-role activé mais aucun rôle configuré')
|
||||
return
|
||||
|
||||
# Chercher le rôle dans le serveur du membre
|
||||
role = member.guild.get_role(role_id)
|
||||
if not role:
|
||||
logging.error(f'Rôle auto-role {role_id} introuvable dans le serveur {member.guild.name}')
|
||||
return
|
||||
|
||||
try:
|
||||
await member.add_roles(role, reason='Auto-role: Attribution automatique à l\'arrivée')
|
||||
logging.info(f'Auto-role: Rôle "{role.name}" attribué à {member.name} sur {member.guild.name}')
|
||||
except discord.Forbidden:
|
||||
logging.error(f'Auto-role: Permission refusée pour attribuer le rôle "{role.name}" à {member.name}')
|
||||
except discord.HTTPException as e:
|
||||
logging.error(f'Auto-role: Erreur HTTP lors de l\'attribution du rôle : {e}')
|
||||
except Exception as e:
|
||||
logging.error(f'Auto-role: Erreur inattendue : {e}')
|
||||
|
||||
Reference in New Issue
Block a user