From 4fadda89b5866f77fd1a0ec41218af044903248f Mon Sep 17 00:00:00 2001 From: nemesis Date: Thu, 25 Aug 2022 23:16:58 +0200 Subject: [PATCH] actif --- asmodee.py | 68 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 62 insertions(+), 6 deletions(-) diff --git a/asmodee.py b/asmodee.py index e6e121d..effa745 100755 --- a/asmodee.py +++ b/asmodee.py @@ -1531,6 +1531,56 @@ def statistiques(room,message): # Enregistrement des statistiques # insertion des objets stats[room.room_id,user] = usrstats +async def actif(room,message): # Stats d'activité d'une personne + global modules + try: + rmod = modules[room.room_id, 'stats'] + except: + modules[room.room_id, 'stats'] = False + if (modules[room.room_id, 'stats']): + global stats + args = getMessage(message).split() + sender = getUser(message) + args.pop(0) + if (len(args) > 0 and args[0] == "list"): + salon = await verifPMRoom(room,message) + room_act = [] + for cle,valeur in stats.items(): + if (cle[0] == room.room_id): + room_act.append(valeur) + room_act.sort(key=lambda us: us.mess, reverse=True) + reponse="Voici le tableau des plus gros posteurs!\n" + for us in room_act: + reponse = reponse + us.nick + " : " + str(us.mess) + "\n" + await msg(salon,reponse,sender) + else: + pers = "" + usrstats = None + if (len(args) == 0): + pers = getUser(message) + else: + pers=" ".join(args) + print(pers) + try: + usrstats = stats[room.room_id,pers] + except: + for cle,valeur in room.users.items(): + if (valeur.display_name == pers): + try: + usrstats = stats[room.room_id, cle] + except: + usrstats = None + if (usrstats is not None): + break + if(usrstats): + try: + moy = "{:10.2f}".format(usrstats.char / usrstats.mess) + await msg(room,usrstats.nick + " a posté " + str(usrstats.mess) + " messages avec une moyenne de " + moy + " caractères par message",sender) + except: + print("erreur usrstats") + else: + await msg(room,pers + " : Personne non reconnue\n",sender) + async def help(room, message): # Aide en message privé await help_center(room,message,"help",True) @@ -1626,18 +1676,18 @@ async def help_center(room,message,name,private): # Aide sur les commandes dispo 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" await msg(salon,message,sender, False) +@bot.listener.on_message_event +async def callActif(room, message): + match = botlib.MessageMatch(room, message, bot, PREFIX) + if match.is_not_from_this_bot() and match.prefix() and match.command("actif"): + await actif(room, message) + @bot.listener.on_message_event async def callLast(room, message): match = botlib.MessageMatch(room, message, bot, PREFIX) if match.is_not_from_this_bot() and match.prefix() and match.command("last"): await last(room, message) -@bot.listener.on_message_event -async def callStats(room, message): - match = botlib.MessageMatch(room, message, bot) - if match.is_not_from_this_bot(): - statistiques(room, message) - @bot.listener.on_message_event async def callSave(room, message): match = botlib.MessageMatch(room, message, bot, PREFIX) @@ -1754,6 +1804,12 @@ async def echo(room, message): await bot.api.send_text_message( room.room_id, " ".join(arg for arg in match.args()) ) +@bot.listener.on_message_event +async def callStats(room, message): + match = botlib.MessageMatch(room, message, bot) + if match.is_not_from_this_bot(): + statistiques(room, message) + def main(): config = configparser.ConfigParser() config.read('asmodee.ini')