]> gitweb.pimeys.fr Git - bots/basile.git/blobdiff - basile.py
Amélioration de l'erreur de Crash. (Ça fait quand même pas ce que je veux)
[bots/basile.git] / basile.py
index 560382943319429f96bec6f2782b9555de83ef80..58d8250dc69674626b5407cf4c0c45bf5fe0def4 100755 (executable)
--- a/basile.py
+++ b/basile.py
@@ -92,9 +92,9 @@ def connect_NK():
 def login_NK(username,password,typ="bdd"):
     sock=connect_NK()
     if typ=="special": # ça c'est pour Basile lui-même
-        masque='["note"]'
+        masque='[]'
     elif typ=="bdd":
-        masque='[["all"],["all"],false]'
+        masque='[[], [], true]'
     try:
         # Basile a un compte special user
         commande='login [%s,%s,"%s",%s]'%(json.dumps(username),json.dumps(password),typ,masque)
@@ -169,7 +169,8 @@ class UnicodeBotError(Exception):
 
 class CrashError(Exception):
     """Pour pouvoir faire crasher Basile, parce que ça a l'air drôle"""
-    pass
+    def __init__(self, msg=u""):
+        Exception.__init__(self, msg)
 
 def bot_unicode(chain):
     try:
@@ -237,8 +238,6 @@ class Basile(ircbot.SingleServerIRCBot):
         log(self.serveur,"Connected")
         if self.debug:
             self.chanlist=["#bot"]
-        else:
-            serv.privmsg("ChanServ", "INVITE #note-dev")
         for c in self.chanlist:
             log(self.serveur,"JOIN %s"%(c))
             serv.join(c)
@@ -449,7 +448,7 @@ class Basile(ircbot.SingleServerIRCBot):
         elif cmd=="crash":
             if auteur in self.overops:
                 log(self.serveur,"priv",auteur," ".join(message)+"[successful]")
-                self.crash()
+                self.crash("priv", auteur)
             else:
                 notunderstood=True
         elif cmd=="reload":
@@ -607,7 +606,7 @@ class Basile(ircbot.SingleServerIRCBot):
                     self.reload(canal)
             elif cmd == "crash":
                 if auteur in self.overops:
-                    self.crash()
+                    self.crash(auteur, message)
             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):
@@ -864,8 +863,9 @@ class Basile(ircbot.SingleServerIRCBot):
         else:
             self.serv.privmsg(auteur,"Config reloaded")
     
-    def crash(self):
-        raise CrashError
+    def crash(self, chan="nowhere", who="nobody"):
+        where = u"en privé" if chan == "priv" else u"sur le chan %s" % chan
+        raise CrashError(u"Crash demandé par %s %s" % (who, where))
     
     def start_as_daemon(self, outfile):
         sys.stderr = Logger(outfile)