"""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
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)
"""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 """
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()
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()!=[]:
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:
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:
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))
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