X-Git-Url: http://gitweb.pimeys.fr/?a=blobdiff_plain;f=deconnaisseur.py;h=d2da16a3e437d46d403487574c26bfd781eb1fbf;hb=f97e98371d21f660a68a0c37a47fe9354ef5d4e8;hp=047ea8108385a8b8278d04c3a4b9e58cf99818b0;hpb=92a5f4065a3a956adb19257a4749f54b7bf1ef3f;p=bots%2Fdeconnaisseur.git diff --git a/deconnaisseur.py b/deconnaisseur.py index 047ea81..d2da16a 100755 --- a/deconnaisseur.py +++ b/deconnaisseur.py @@ -79,6 +79,7 @@ class Deconnaisseur(ircbot.SingleServerIRCBot): self.stay_channels=config_stay_channels self.play_channels=config_play_channels self.play_status={i:[0] for i in self.play_channels} + self.scores={} def give_me_my_pseudo(self,serv): serv.privmsg("NickServ","RECOVER %s %s"%(config_pseudo,config_password)) @@ -181,7 +182,8 @@ class Deconnaisseur(ircbot.SingleServerIRCBot): notunderstood=False if cmd=="help": helpmsg_default="""Liste des commandes : - HELP Affiche ce message d'aide""" + HELP Affiche ce message d'aide + SCORES Affiche les scores""" helpmsg_ops=""" JOIN Faire rejoindre un channel (sans paramètres, donne la liste des chans actuels) LEAVE Faire quitter un channel @@ -296,6 +298,18 @@ class Deconnaisseur(ircbot.SingleServerIRCBot): elif cmd=="die": if auteur in self.overops: self.die() + elif cmd=="score": + serv.privmsg(auteur,"Votre score : %s"%(self.scores.get(auteur,0)) ) + elif cmd=="scores": + scores=self.scores.items() + # trie par score + scores.sort(lambda x,y:cmp(x[1].lower(),y[1].lower())) + scores.reverse() + serv.privmsg(auteur,"Scores by score : "+" ; ".join(["%s %s"%(i[0],i[1]) for i in scores])) + # trie par pseudo + scores.sort(lambda x,y:cmp(x[0],y[0])) + scores.reverse() + serv.privmsg(auteur,"Scores by pseudo : "+" ; ".join(["%s %s"%(i[0],i[1]) for i in scores])) else: notunderstood=True if notunderstood: @@ -370,10 +384,16 @@ class Deconnaisseur(ircbot.SingleServerIRCBot): if re.match(tolere(answer_regexp),unicode(message,"utf8").lower()): answer=self.play_status[canal][4] serv.privmsg(canal,"%s: bravo ! (C'était %s)"%(auteur,answer)) + self.scoreplus(auteur) token=time.time() self.play_status[canal]=[0,token] serv.execute_delayed(random.randrange(Ttrig*5,Ttrig*10),self.start_enigme,(serv,canal,token)) + def scoreplus(self,pseudo): + if self.scores.has_key(pseudo): + self.scores[pseudo]+=1 + else: + self.scores[pseudo]=1 if __name__=="__main__": import sys