]> gitweb.pimeys.fr Git - bots/basile.git/blobdiff - basile.py
Un peu plus de buffer fails
[bots/basile.git] / basile.py
index a8ee82fbb98b8d53508212a71634aa38225f5d60..71a647500ca5b06f46542ddbcc266374685eb9ef 100755 (executable)
--- a/basile.py
+++ b/basile.py
@@ -38,6 +38,8 @@ config_report_bugs_to=["[20-100]"]
 
 # config "ce bot a été codé par 20-100, tu te rappelles ?"
 config_manzana = ["[20-100]", "Petite-Peste"] 
+# config "mais PEB aussi est passé par là"
+config_manzana_bis = ["PEB"]
 
 # config "tu m'traites ?"
 config_insultes=[u"conna(rd|sse)",u"pute",u"con(|ne)",u"enf(oiré|lure)",
@@ -63,7 +65,6 @@ u"Votre indélicatesse vous sied à ravir.",
 u"Parfois, je me demande pourquoi je fais encore ce métier…",
 u"Le saviez-vous : l'invective ne déshonore que son auteur.",
 u"Le saviez-vous : vous perdez plus de temps à m'insulter qu'à vous taire.",
-u"Suis-je contraint à tolérer une telle outrecuidance ?",
 u"Mais je ne vous permets pas ! Enfin, pas comme ça…"]
 
 # config "à peine quelques kilos octets"
@@ -176,9 +177,9 @@ config_bonne_nuit_answers=[u"{}: thanks, make sweet dreams tonight ! ;)",u"Bonne
 config_kick_answers=[u"Suis-je de trop ici ?",u"{}: je m'excuse pour ce bruit indu qui a stimulé votre colère",u"{} a le /kick facile, sans doute la fatigue.",u"{}: j'ai l'impression que vous n'allez pas bien aujourd'hui, vous vous en prenez à un robot !"]
 config_kick_actions=[u"sera désormais exemplaire",u"prépare une lettre d'excuses à {}",u"essaiera de ne plus s'attirer les foudres de {}",u"croyait avoir tout bien fait… cruelle déception."]
 
-# config on m'a demandé de mourir
+# config on m'a demandé de mourir/partir
 config_quit_messages=[u"Bien que cela me désole, je me vois dans l'obligation de vous abandonner."]
-
+config_leave_messages=config_quit_messages
 
 class NKError(Exception):
     def __init__(self,msg):
@@ -526,7 +527,7 @@ class Basile(ircbot.SingleServerIRCBot):
             if auteur in self.ops and len(message)>1:
                 if message[1] in self.chanlist:
                     if not (message[1] in self.stay_channels) or auteur in self.overops:
-                        serv.part(message[1])
+                        self.quitter(message[1]," ".join(message[2:]))
                         self.chanlist.remove(message[1])
                         log(self.serveur,"priv",auteur," ".join(message)+"[successful]")
                     else:
@@ -566,8 +567,7 @@ class Basile(ircbot.SingleServerIRCBot):
         elif cmd=="die":
             if auteur in self.overops:
                 log(self.serveur,"priv",auteur," ".join(message)+"[successful]")
-                quit_message=random.choice(config_quit_messages)
-                self.die(message=quit_message)
+                self.mourir()
             else:
                 notunderstood=True
         elif cmd=="quiet":
@@ -681,7 +681,7 @@ class Basile(ircbot.SingleServerIRCBot):
             if cmd in ["meurs","die","crève"]:
                 if auteur in self.overops:
                     log(self.serveur,canal,auteur,message+"[successful]")
-                    self.die()
+                    self.mourir()
                 else:
                     serv.privmsg(canal,"%s: mourrez vous-même !"%(auteur))
                     log(self.serveur,canal,auteur,message+"[failed]")
@@ -689,7 +689,7 @@ class Basile(ircbot.SingleServerIRCBot):
             elif cmd in ["part","leave","dégage","va-t-en","tut'tiresailleurs,c'estmesgalets"]:
                 if auteur in self.ops and (not (canal in self.stay_channels)
                                            or auteur in self.overops):
-                    serv.part(canal,message="Éjecté par %s"%(auteur))
+                    self.quitter(canal)
                     log(self.serveur,canal,auteur,message+"[successful]")
                     if canal in self.chanlist:
                         self.chanlist.remove(canal)
@@ -751,6 +751,8 @@ class Basile(ircbot.SingleServerIRCBot):
             elif re.match("!?manzana",message.lower()) and not canal in self.quiet_channels:
                 if auteur in config_manzana:
                     serv.action(canal,"sert une bouteille de manzana à %s"%(auteur))
+                elif auteur in config_manzana_bis:
+                    serv.action(canal,"sert un grand verre de jus de pomme à %s : tout le monde sait qu'il ne boit pas."%(auteur))
                 else:
                     serv.action(canal,"sert un verre de manzana à %s"%(auteur))
             if is_insult(message) and not canal in self.quiet_channels:
@@ -846,9 +848,11 @@ class Basile(ircbot.SingleServerIRCBot):
             if message in ["!manzana"] and not canal in self.quiet_channels:
                 if auteur in config_manzana:
                     serv.action(canal,"sert une bouteille de manzana à %s"%(auteur))
+                elif auteur in config_manzana_bis:
+                    serv.action(canal,"sert un grand verre de jus de pomme à %s : tout le monde sait qu'il ne boit pas."%(auteur))
                 else:
                     serv.action(canal,"sert un verre de manzana à %s"%(auteur))
-            if re.match('^(.|§|:|)(w|b) [0-9]+$',message) and not canal in self.quiet_channels:
+            if re.match(u'^ *(.|§|!|/|/|:|)(w|b) [0-9]+$',message.decode("utf8")) and not canal in self.quiet_channels:
                 failanswers=config_buffer_fail_answers
                 answer=random.choice(failanswers)
                 serv.privmsg(canal,("%s: %s"%(auteur,answer)).encode("utf8"))
@@ -914,7 +918,16 @@ class Basile(ircbot.SingleServerIRCBot):
                 serv.action(channel,l2[i-n1].format(auteur).encode("utf8"))
             else:
                 serv.privmsg(channel,l1[i].format(auteur).encode("utf8"))
-
+    
+    def quitter(self,chan,leave_message=None):
+        if leave_message==None:
+            leave_message=random.choice(config_leave_messages)
+        self.serv.part(chan,message=leave_message.encode("utf8"))
+    
+    def mourir(self):
+        quit_message=random.choice(config_quit_messages)
+        self.die(msg=quit_message.encode("utf8"))
+    
     def _getnick(self):
         return self.serv.get_nickname()
     nick=property(_getnick)