]> gitweb.pimeys.fr Git - bots/basile.git/blobdiff - basile.py
Merge branch 'master' of ssh://cerebro.crans.org/git/Basile
[bots/basile.git] / basile.py
index 75ede3ed5703353cbab7f1889c51e43d9a71f496..9b50b1a9593a196d4477bf4cc0d23ba60fe58b0c 100755 (executable)
--- a/basile.py
+++ b/basile.py
@@ -383,8 +383,7 @@ class Basile(ircbot.SingleServerIRCBot):
                                                (auteur,fille,verbe)).encode("utf8"))
     def pourmoi(self, serv, message):
         """renvoie (False,lemessage) ou (True, le message amputé de "pseudo: ")"""
-        pseudo=serv.get_nickname()
-        size=len(pseudo)
+        size=len(self.nick)
         if message[:size]==pseudo and len(message)>size and message[size]==":":
             return (True,message[size+1:].lstrip(" "))
         else:
@@ -678,6 +677,8 @@ class Basile(ircbot.SingleServerIRCBot):
                                            or auteur in self.overops):
                     serv.part(canal,message="Éjecté par %s"%(auteur))
                     log(self.serveur,canal,auteur,message+"[successful]")
+                    if canal in self.chanlist:
+                        self.chanlist.remove(canal)
                 else:
                     serv.privmsg(canal,"%s: Non, je reste !"%(auteur))
                     log(self.serveur,canal,auteur,message+"[failed]")
@@ -756,7 +757,7 @@ class Basile(ircbot.SingleServerIRCBot):
                 n1,n2=len(l1),len(l2)
                 i=random.randrange(n1+n2)
                 if i>=n1:
-                    serv.action(canal,l2[i-n1])
+                    serv.action(canal,l2[i-n1].encode("utf8"))
                 else:
                     serv.privmsg(canal,"%s: %s"%(auteur,l1[i].encode("utf8")))
             if is_tamere(message) and not canal in self.quiet_channels:
@@ -824,7 +825,7 @@ class Basile(ircbot.SingleServerIRCBot):
                 serv.privmsg(canal,"%s: %s"%(auteur,answer))
             if not canal in self.quiet_channels:
                 self.try_tamere(serv,canal,auteur,message)
-                mypseudo=serv.get_nickname()
+                mypseudo=self.nick
                 if re.match((u"^("+u"|".join(config_bonjour)
                                   +u")( {}| all| tout le monde|(|à) tous)(\.|( |)!|)$"
                              ).format(mypseudo).lower(), message.strip().lower()):
@@ -850,7 +851,7 @@ class Basile(ircbot.SingleServerIRCBot):
             serv.privmsg(channel,
               "%s : Euh, tu fais de la merde avec ton encodage là, j'ai failli crasher…"%(auteur))
             return
-        mypseudo=serv.get_nickname()
+        mypseudo=self.nick
         
         if is_action_trigger(action,mypseudo) and not channel in self.quiet_channels:
             l1,l2=config_action_answers,config_action_actions
@@ -861,6 +862,20 @@ class Basile(ircbot.SingleServerIRCBot):
             else:
                 serv.privmsg(channel,"%s: %s"%(auteur,l1[i].encode("utf8")))
 
+    def on_kick(self,serv,ev):
+        auteur = irclib.nm_to_n(ev.source())
+        canal = ev.target()
+        victime = ev.arguments()[0]
+        raison = ev.arguments()[1]
+        if victime==self.nick:
+            time.sleep(1)
+            serv.join(canal)
+            print("%s kické par %s pour %s" %(victime,auteur,raison))
+    def _getnick(self):
+        return serv.get_nickname()
+    nick=property(_getnick)
+
+
 if __name__=="__main__":
     import sys
     if len(sys.argv)==1: