]> gitweb.pimeys.fr Git - bots/basile.git/blobdiff - basile.py
self.serv point vers le serveur (histoire qu'on puisse tout le temps y accéder)
[bots/basile.git] / basile.py
index e386655b628656a292d61611934bb088db8cfc70..941b3353658d6d25530d736668662dba90a6ce03 100755 (executable)
--- a/basile.py
+++ b/basile.py
@@ -106,7 +106,7 @@ config_tamere_answers=[u"Laisse ma mère en dehors de ça !",
 u"Tu veux qu'on parle de ta soœur ?",
 u"Et la tienne ?",
 u"Ce que fait ma mère c'est comme ce que tu fais avec ta bite, ça nous regarde pas…",
-u"♩ J'ai vu ta mère sur chat rouleeeeeeette ♫"
+u"♩ J'ai vu ta mère sur chat rouleeeeeeette ♫",
 u"On avait dit \"pas les mamans\""]
 
 config_action_trigger=[u"(frappe|cogne|tape)(| sur)",u"(démolit|dégomme|fouette|agresse)",
@@ -299,6 +299,7 @@ class Basile(ircbot.SingleServerIRCBot):
         serv.nick(config_irc_pseudo)
     
     def on_welcome(self, serv, ev):
+        self.serv=serv # ça serv ira :)
         self.give_me_my_pseudo(serv)
         serv.privmsg("NickServ","identify %s"%(config_irc_password))
         log(self.serveur,"Connected")
@@ -383,8 +384,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 +678,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 +758,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 +826,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 +852,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 +863,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 self.serv.get_nickname()
+    nick=property(_getnick)
+
+
 if __name__=="__main__":
     import sys
     if len(sys.argv)==1: