]> gitweb.pimeys.fr Git - bots/deconnaisseur.git/blobdiff - deconnaisseur.py
Allez, fonce, baudet ! (avec la bonne pontuation)
[bots/deconnaisseur.git] / deconnaisseur.py
index 02310f7cdcec8b237cb064ea1bb795219e16da1e..25176490a5262b50d850f8498489719990d5a093 100755 (executable)
@@ -42,8 +42,8 @@ u"Héhé, try again",
 u"Non, j'ai pas envie",
 u"Peut-être quand toi tu la fermeras, et encore…"]
 
-config_level2=["Petite-Peste"]
-config_level3=["[20-100]"]
+config_level2=[]
+config_level3=["[20-100]","Petite-Peste","PEB"]
 
 class UnicodeBotError(Exception):
     pass
@@ -71,7 +71,8 @@ def reussi(message,answer,answer_regexp,auteur):
     if auteur in config_level2:
         return remplace_accents(answer) in message
     else:
-        return re.match(answer_regexp.lower(),remplace_accents(message).lower())
+        if re.match(remplace_accents(answer_regexp).lower(),remplace_accents(message).lower()):
+            return True
 
 def is_something(chain,matches,avant=u".*(?:^| )",apres=u"(?:$|\.| |,|;).*",case_sensitive=False,debug=False):
     if case_sensitive:
@@ -346,7 +347,7 @@ class Deconnaisseur(ircbot.SingleServerIRCBot):
         elif cmd in ["states","status"]:
             if auteur in self.overops:
                 for k in self.play_status.keys():
-                    serv.privmsg(auteur,(u"%s : %s"%(k,"; ".join([str(i) for i in self.play_status[k]]))).encode("utf8") )
+                    serv.privmsg(auteur,(u"%s : %s"%(k,"; ".join([unicode(i) for i in self.play_status[k]]))).encode("utf8") )
         elif cmd=="say":
             if auteur in self.overops and len(message)>2:
                 serv.privmsg(message[1]," ".join(message[2:]))
@@ -479,7 +480,6 @@ class Deconnaisseur(ircbot.SingleServerIRCBot):
                     become=args
                     serv.nick(become)
                     log(canal,auteur,message+"[successful]")
-    
             if cmd in ["coucou"] and not canal in self.quiet_channels:
                 serv.privmsg(canal,"%s: coucou"%(auteur))
             if cmd in ["ping"] and not canal in self.quiet_channels:
@@ -492,9 +492,20 @@ class Deconnaisseur(ircbot.SingleServerIRCBot):
                         except RefuseError:
                             serv.privmsg(canal,"%s: Je peux souffler une minute ?"%(auteur))
                     else:
-                        serv.privmsg(canal,"%s: Rappel : %s"%(auteur,self.play_status[canal][1]))
+                        serv.privmsg(canal,("%s: Rappel : %s"%(auteur,self.play_status[canal][1])).encode("utf8") )
                 else:
                     serv.privmsg(canal,"%s: pas ici…"%(auteur))
+            if cmd in ["score","!score"]:
+                serv.privmsg(auteur,"Votre score : %s"%(self.get_scores().get(auteur,0)) )
+            if cmd in ["scores","!scores"]:
+                scores=self.get_scores().items()
+                # trie par score
+                scores.sort(lambda x,y:cmp(x[1],y[1]))
+                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].lower(),y[0].lower()))
+                serv.privmsg(auteur,"Scores by pseudo : "+" ; ".join(["%s %s"%(i[0],i[1]) for i in scores]))
             if cmd=="indice" and canal in self.play_channels:
                 self.give_indice(serv,canal,None)
             if is_tag(message) and not canal in self.quiet_channels: