X-Git-Url: http://gitweb.pimeys.fr/?p=bots%2Fbasile.git;a=blobdiff_plain;f=nk.py;h=6de4691497ac52b34fa01a47940d567b82e74fa9;hp=0ecf6f7c78ff9e3431bfaeef223306ae61304c88;hb=8d3075adfb57fa76cb1841eb1aeab048cc41bd0d;hpb=a87c11b7881cce338b226c13e695300f84bd13d8 diff --git a/nk.py b/nk.py index 0ecf6f7..6de4691 100644 --- a/nk.py +++ b/nk.py @@ -107,3 +107,37 @@ def get_solde(sock, idbde, serv, canal): #log(self.serveur, "priv", auteur, " ".join(message) + "[failed]") return (False, None, None) +def consomme(sock, idbde, conso, serv, canal): + """Fais consommer une conso à l'utilisateur NK n°``idbde``""" + try: + sock.write(json.dumps(["get_boutons", ["", ""]])) + ret = full_read(sock) + retcode = ret["retcode"] + if retcode == 0: + boutons = ret["msg"] + ibouton = [b["label"].lower() for b in boutons].index(conso.lower()) + bouton = boutons[ibouton] + sock.write(json.dumps(["consos", [[bouton["id"], idbde, 1]]])) + ret = full_read(sock) + if ret["retcode"] == 0: + [[retcode, [idbouton, idbde], errmsg]] = ret["msg"] + if retcode != 0: + serv.privmsg(canal, errmsg) + else: + success, solde, pseudo = get_solde(sock, idbde, serv, canal) + if success: + serv.privmsg(canal, (u"%s consomme 1 %s (nouveau solde : %s)" % (pseudo, bouton["label"], solde)).encode("utf-8")) + else: + serv.privmsg(canal, (u"%s consommé mais impossible de récupérer le solde après transaction." % (bouton["label"])).encode("utf-8")) + return True # on a réussi à consommer la conso + else: + serv.privmsg(canal, ret["errmsg"].encode("utf-8")) + return False + else: + serv.privmsg(canal, ret["errmsg"]) + except Exception as exc: + trace = traceback.format_exc() + msg = "failed\n%s" % trace + for l in msg.split("\n"): + serv.privmsg(canal, l) +