diff --git a/asmodee.py b/asmodee.py index 959916b..d342314 100755 --- a/asmodee.py +++ b/asmodee.py @@ -433,6 +433,8 @@ def help_center(room,event,name,private): # Aide sur les commandes disponibles msg(salon,"- !biere : Fournit une boisson du salon au hasard\n- !biere : Fournit une boisson spécifique du salon\n- !biere give [:Nom du Breuvage] : Offre une boisson (spécifique en option) à la personne spécifiée\n- !biere add : : Enregistre une phrase pour ce breuvage\n- !biere list [Nom de Breuvage] : Affiche les phrases des breuvages du salon ou celles d'un breuvage spécifique du salon en message privé\n- !biere list all : Affiche toutes les citations de tous breuvages de tous les salons en message privé\n- !biere del : Supprime la phrase avec l'id spécifié") elif (re.search("accueil", args[0])): msg(salon,"- !accueil : Modifie le message d'accueil avec message. Il sera affiché à tout nouvel arrivant précédé de la mention 'Bienvenue sur le salon XXX, YYY.'") + elif (re.search("kick", args[0])): + msg(salon,"- !kick <@mxid> [@mxid] ... : kick les users listés") elif (re.search("modo", args[0])): msg(salon,"- !modo : Affiche la liste des modérateurs (ils peuvent gérer le message d'accueil, supprimer des citations ou des boissons, ajouter/retirer des modules, ajouter/retirer des modérateurs)\n- !modo add : Ajoute une personne comme modérateur du salon\n- !modo del : Retire une personne des modérateurs.") elif (re.search("module", args[0])): @@ -463,6 +465,8 @@ def help_center(room,event,name,private): # Aide sur les commandes disponibles message += "\n- !cristal : Posez une question à la boule de cristal" if (cle[0] == rid and cle[1] == "welcome" and valeur): message += "\n- !accueil : Modifie le message d'accueil" + if (cle[0] == rid and cle[1] == "kick" and valeur): + message += "\n- !kick <@mxid> [@mxid] ... : kick les users listés" if (cle[0] == rid and cle[1] == "roll" and valeur): message += "\n- :roll \n- :sw \n- :dom \n- :wod \n- :owod \n- :ars \n- :des \n- :star " message += "\n- !modo : Gère les modérateurs du salon\n- !module : Gère les modules actifs sur le salon\n\n- Pour plus de details, tapez !" + name + " \n\nRetrouvez Asmodee sur https://git.ombreport.info/nemesis/asmodee_matrix" @@ -1873,6 +1877,28 @@ def invitations(room_id, state): # Reponse aux invitations save_obj() main() +def kick(room, event): # kick une liste de membres + global modules + try: + rmod = modules[room.room_id, 'biere'] + except: + modules[room.room_id, 'biere'] = False + if (modules[room.room_id, 'biere']): + lmod = [] + try: + lmod = modos[room.room_id] + except: + lmod = [] + if (event['sender'] in admins or event['sender'] in lmod or event['sender'] == bot.client.user_id): + args = event['content']['body'].split() + args.pop(0) + while (len(args) > 0): + bot.client.api.kick_user(room.room_id, args[0], reason="") + args.pop(0) + else: + msg(room,"Vous n'êtes pas autorisés à kicker des membres de ce salon.") + + def main(): global USERNAME config = configparser.ConfigParser() @@ -1880,7 +1906,7 @@ def main(): USERNAME = "" # Bot's username PASSWORD = "" # Bot's password SERVER = "" # Matrix server URL - mods = ["roll", "quote", "biere", "stats", "liste", "horloge", "carte", "card", "cristal", "welcome", "salut", "jdr", "gens", "va", "salon"] + mods = ["roll", "quote", "biere", "stats", "liste", "horloge", "carte", "card", "cristal", "welcome", "salut", "jdr", "gens", "va", "salon", "kick"] global admins if ('AUTH' in config): USERNAME = config['AUTH']['username'] # Bot's username @@ -2000,6 +2026,11 @@ def main(): bot.add_handler(welcome_handler) bot.client.add_listener(bienvenue, event_type="m.room.member") + # Kick + if ('kick' in liste_mod): + kick_handler = MCommandHandler("kick", kick) + bot.add_handler(kick_handler) + # Definition des moderateurs modos_read() modos_handler = MCommandHandler("modo", modo)