X-Git-Url: http://gitweb.pimeys.fr/?p=bots%2Fparrot.git;a=blobdiff_plain;f=parrot.py;h=5b766d09a108659dff26dbc2aaa1727a69c25f77;hp=8ce0673d5d315ae5a62b476be3b6b7cd714346e1;hb=HEAD;hpb=96f8fe13b9dbcab83f3123b37bc620c562a1e214 diff --git a/parrot.py b/parrot.py index 8ce0673..5b766d0 100755 --- a/parrot.py +++ b/parrot.py @@ -64,7 +64,7 @@ def bot_unicode(chain): """Essaye de décoder ``chain`` en UTF-8. Lève une py:class:`errors.UnicodeBotError` en cas d'échec.""" try: - return chain.decode("utf8") + return chain.decode("utf-8") except UnicodeDecodeError as exc: raise errors.UnicodeBotError @@ -97,8 +97,7 @@ class Parrot(ircbot.SingleServerIRCBot): def give_me_my_pseudo(self, serv): """Récupère le pseudo auprès de NickServ.""" - serv.privmsg("NickServ", "GHOST %s %s" % (config.irc_pseudo, config.irc_password)) - serv.privmsg("NickServ", "RELEASE %s %s" % (config.irc_pseudo, config.irc_password)) + serv.privmsg("NickServ", "RECOVER %s %s" % (config.irc_pseudo, config.irc_password)) time.sleep(0.3) serv.nick(config.irc_pseudo) @@ -117,12 +116,12 @@ class Parrot(ircbot.SingleServerIRCBot): """Quitter un channel avec un message customisable.""" if leave_message == None: leave_message = random.choice(config.leave_messages) - self.serv.part(chan, message=leave_message.encode("utf8")) + self.serv.part(chan, message=leave_message.encode("utf-8")) def mourir(self): """Se déconnecter du serveur IRC avec un message customisable.""" quit_message = random.choice(config.quit_messages) - self.die(msg=quit_message.encode("utf8")) + self.die(msg=quit_message.encode("utf-8")) def reload_quotes(self): """ Recharge la base de données des quotes et recompile la regexp de quote """ @@ -207,7 +206,7 @@ class Parrot(ircbot.SingleServerIRCBot): message = bot_unicode(message) except errors.UnicodeBotError: if config.utf8_trigger: - serv.privmsg(auteur, random.choice(config.utf8_fail_answers).encode("utf8")) + serv.privmsg(auteur, random.choice(config.utf8_fail_answers).encode("utf-8")) return message = message.split() cmd = message[0].lower() @@ -386,7 +385,7 @@ class Parrot(ircbot.SingleServerIRCBot): message = bot_unicode(message) except errors.UnicodeBotError: if config.utf8_trigger and not canal in self.quiet_channels: - serv.privmsg(canal, (u"%s: %s"% ( auteur, random.choice(config.utf8_fail_answers))).encode("utf8")) + serv.privmsg(canal, (u"%s: %s"% ( auteur, random.choice(config.utf8_fail_answers))).encode("utf-8")) return pour_moi, message = self.pourmoi(serv, message) if pour_moi and message.split()!=[]: @@ -400,7 +399,7 @@ class Parrot(ircbot.SingleServerIRCBot): log(self.serveur, canal, auteur, message + "[successful]") self.mourir() else: - serv.privmsg(canal,(u"%s: %s"%(auteur, random.choice(config.quit_fail_messages))).encode("utf8")) + serv.privmsg(canal,(u"%s: %s"%(auteur, random.choice(config.quit_fail_messages))).encode("utf-8")) log(self.serveur, canal, auteur, message + "[failed]") elif cmd == u"reload": if auteur in self.ops: @@ -416,7 +415,7 @@ class Parrot(ircbot.SingleServerIRCBot): if canal in self.chanlist: self.chanlist.remove(canal) else: - serv.privmsg(canal,(u"%s: %s" % (auteur, random.choice(config.leave_fail_messages))).encode("utf8")) + serv.privmsg(canal,(u"%s: %s" % (auteur, random.choice(config.leave_fail_messages))).encode("utf-8")) log(self.serveur, canal, auteur, message + "[failed]") elif cmd in [u"ping"] and not canal in self.quiet_channels: @@ -481,6 +480,11 @@ class Parrot(ircbot.SingleServerIRCBot): regexp = cmd in ["search" + suffix for suffix in config.regex_suffixes] search = u" ".join(words[1:]) quotes = self.quotedb.search(inquote=search, regexp=regexp) + # On recherche également sur le contexte si on est en !context-search + if show_context: + quotes += self.quotedb.search(place=search, regexp=regexp) + # Pour pas biaiser le choix aléatoire, on enlève les doublons + quotes = list(set(quotes)) if quotes: q = random.choice(quotes) serv.privmsg(canal, q.display(show_context)) @@ -498,7 +502,7 @@ class Parrot(ircbot.SingleServerIRCBot): action = bot_unicode(action) except errors.UnicodeBotError: if config.utf8_trigger and not channel in self.quiet_channels: - serv.privmsg(channel, (u"%s: %s"%(auteur,random.choice(config.utf8_fail_answers))).encode("utf8")) + serv.privmsg(channel, (u"%s: %s"%(auteur,random.choice(config.utf8_fail_answers))).encode("utf-8")) return mypseudo = self.nick