X-Git-Url: http://gitweb.pimeys.fr/?a=blobdiff_plain;f=basile.py;h=bccea286b3ede55f0c7b5f7866d0626823a6104a;hb=11c36ab211f872b01785b39f6c944d8b25821bd4;hp=fd53a89a962246ea0b13d86b48d9245071fd07eb;hpb=eddae0f7039042db210b5650288c0882f03e5d7d;p=bots%2Fbasile.git diff --git a/basile.py b/basile.py index fd53a89..bccea28 100755 --- a/basile.py +++ b/basile.py @@ -75,7 +75,7 @@ def connect_NK(): # On passe en SSL sock=ssl.wrap_socket(sock,ca_certs='../keys/ca_.crt') # On fait un hello - sock.write('hello "Basile"') + sock.write('["hello", "Basile"]') # On récupère la réponse du hello out=sock.read() out=json.loads(out) @@ -92,12 +92,12 @@ 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) + commande='["login", [%s,%s,"%s",%s]]'%(json.dumps(username),json.dumps(password),typ,masque) sock.write(commande) out=sock.read() except Exception as exc: @@ -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: @@ -447,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": @@ -536,7 +537,7 @@ class Basile(ircbot.SingleServerIRCBot): if len(message)==1: if self.identities.has_key(auteur): try: - self.nk.write('search ["x",["pseudo"],%s]'%(json.dumps(self.identities[auteur]))) + self.nk.write('["search", ["x",["pseudo"],%s]]'%(json.dumps(self.identities[auteur]))) ret=json.loads(self.nk.read()) solde=ret["msg"][0]["solde"] pseudo=ret["msg"][0]["pseudo"] @@ -551,7 +552,7 @@ class Basile(ircbot.SingleServerIRCBot): serv.privmsg(canal,"Je ne connais pas ton pseudo note.") elif auteur in self.ops: try: - self.nk.write('search ["x",["pseudo"],%s]'%(json.dumps(message[1]))) + self.nk.write('["search", ["x",["pseudo"],%s]]'%(json.dumps(message[1]))) ret=json.loads(self.nk.read()) solde=ret["msg"][0]["solde"] pseudo=ret["msg"][0]["pseudo"] @@ -605,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): @@ -652,7 +653,7 @@ class Basile(ircbot.SingleServerIRCBot): if self.identities.has_key(auteur): pseudo=self.identities[auteur] try: - self.nk.write('search ["x",["pseudo"],%s]'%(json.dumps(pseudo))) + self.nk.write('["search", ["x",["pseudo"],%s]]'%(json.dumps(pseudo))) ret=json.loads(self.nk.read()) solde=ret["msg"][0]["solde"] pseudo=ret["msg"][0]["pseudo"] @@ -862,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)