From: Vincent Le Gallic Date: Sun, 23 Nov 2014 01:34:31 +0000 (+0100) Subject: get_infos et affichage du compte sous lequel Basile connait quelqu'un X-Git-Url: http://gitweb.pimeys.fr/?a=commitdiff_plain;h=176b7d51c6c719694dd92cba28ab7b0775232e05;p=bots%2Fbasile.git get_infos et affichage du compte sous lequel Basile connait quelqu'un --- diff --git a/basile.py b/basile.py index 6567a3c..c549707 100755 --- a/basile.py +++ b/basile.py @@ -270,8 +270,9 @@ class Basile(ircbot.SingleServerIRCBot): elif cmd == u"identify": if len(message) == 1: if self.users.has(auteur): - serv.privmsg(auteur, "Je vous connais sous le pseudo note %s." % ( - self.users[auteur].pseudonote.encode("utf8"))) + infos = self.users[auteur].get_infos(self.nk, serv, auteur) + serv.privmsg(auteur, (u"Vous avez le compte note n°%(idbde)s, pseudo : %(pseudo)s." % infos + ).encode("utf8")) else: serv.privmsg(auteur, "Je ne connais pas votre note.") elif len(message) >= 3: diff --git a/nk.py b/nk.py index 7cec40a..0aafbc1 100644 --- a/nk.py +++ b/nk.py @@ -92,25 +92,29 @@ def login(username, password, typ="bdd"): raise NKRefused(str(exc)) return out, sock -def get_solde(sock, idbde, serv, canal): - """Récupère le (success, solde, pseudo) de l'utilisateur NK n°``idbde``""" +def get_infos(sock, idbde, serv, canal): + """Récupère les données de l'utilisateur NK n°``idbde``""" try: sock.write(json.dumps(["compte", idbde])) ret = full_read(sock) retcode = ret["retcode"] if retcode == 0: - solde = ret["msg"]["solde"] - pseudo = ret["msg"]["pseudo"] - return (True, solde, pseudo) + return ret["msg"] else: serv.privmsg(canal, ret["errmsg"].encode("utf-8")) - return (False, None, None) except Exception as exc: trace = traceback.format_exc() msg = "failed\n%s" % trace for l in msg.split("\n"): serv.privmsg(canal, l) #log(self.serveur, "priv", auteur, " ".join(message) + "[failed]") + +def get_solde(sock, idbde, serv, canal): + """Récupère le (success, solde, pseudo) de l'utilisateur NK n°``idbde``""" + infos = get_infos(sock, idbde, serv, canal) + if infos: + return (True, infos["solde"], infos["pseudo"]) + else: return (False, None, None) def consomme(sock, idbde, conso, serv, canal): diff --git a/users.py b/users.py index 49ddf41..368f978 100644 --- a/users.py +++ b/users.py @@ -5,6 +5,7 @@ import json import config +import nk class User(object): """ Un utilisateur. Peut avoir plusieurs pseudos IRC, un seul idbde. """ @@ -32,6 +33,10 @@ class User(object): else: hisset = [otheruser.lower()] return myset.intersection(hisset) != set() + + def get_infos(self, sock, serv, canal): + """ Récupère sur le serveur les infos sur le compte. """ + return nk.get_infos(sock, self.idbde, serv, canal) def load_file(filename): """ Récupère les utilisateurs depuis le fichier """