X-Git-Url: http://gitweb.pimeys.fr/?a=blobdiff_plain;f=parrot.py;h=dd5053023f4d0bb2ccd0943077de43bd5ad78e28;hb=dfb69bcfb5c43d212e78446b09b5a4dcf222eb15;hp=26a204a46ecd702ecad93c5a667b5902cc5b699c;hpb=b14137e9cc0ed5d68bb65c2cc5ffa2b26e45ee4b;p=bots%2Fparrot.git diff --git a/parrot.py b/parrot.py index 26a204a..dd50530 100755 --- a/parrot.py +++ b/parrot.py @@ -87,6 +87,9 @@ class Parrot(ircbot.SingleServerIRCBot): self.quotedb = quotes.QuoteDB() self.reload_quotes() + + # Pour agir à la réception des whois 307 = registered nick + self.ircobj.add_global_handler("307", self.on_registered_nick) ### Utilitaires @@ -180,6 +183,9 @@ class Parrot(ircbot.SingleServerIRCBot): """Restaure les quotes à partir du dump. ``asked_where=None`` signifie en privé.""" self.quotedb = quotes.restore() self.acknowledge(asked_by, asked_where, "Quotes restaurées à partir du dump (pas de backup effectué).") + many = self.quotedb.get_clash_authors() + if many: + self.acknowledge(asked_by, asked_where, "Auteurs de casse différente : %s" % (many)) ### Surcharge des events du Bot def on_welcome(self, serv, ev): @@ -429,7 +435,9 @@ class Parrot(ircbot.SingleServerIRCBot): match = self.quote_pattern.match(message) if match: d = match.groupdict() - if self.quotedb.store(d["author"], d["content"]): + # On n'autorise pas les gens à déclarer le quoter + d["quoter"] = auteur.decode("utf-8") + if self.quotedb.store(**d): serv.privmsg(canal, (u"%s: Ce sera retenu, répété, amplifié" % (auteur,)).encode("utf-8")) self.quotedb.save() else: @@ -501,6 +509,12 @@ class Parrot(ircbot.SingleServerIRCBot): time.sleep(2) serv.join(channel) + def on_registered_nick(self, serv, ev): + """À la réception d'un résultat de whois.""" + pseudo, regis = ev.arguments() + if regis == 'is a registered nick': + print "%s est enregistré \o/" % pseudo + ### .fork trick def start_as_daemon(self, outfile): sys.stderr = Logger(outfile)