X-Git-Url: http://gitweb.pimeys.fr/?a=blobdiff_plain;f=basile.py;h=4d330f35804e7121d5fd5a35343ddee3345ca4b7;hb=0139f431be931dbd73d6f4f922ec361b91e7149f;hp=bad7c8fe38230159137adf6d56e0802b1b20a144;hpb=0cf07b92e97aaefaaf8c5d0a5506a13bd75819b5;p=bots%2Fbasile.git diff --git a/basile.py b/basile.py index bad7c8f..4d330f3 100755 --- a/basile.py +++ b/basile.py @@ -109,12 +109,13 @@ u"Ce que fait ma mère c'est comme ce que tu fais avec ta bite, ça nous regarde u"♩ J'ai vu ta mère sur chat rouleeeeeeette ♫" u"On avait dit \"pas les mamans\""] -config_action_trigger=[u"(frappe|cogne|tape)(| sur)",u"démolit",u"vomit sur",u"slap(|s)"] +config_action_trigger=[u"(frappe|cogne|tape)(| sur)",u"(démolit|dégomme|fouette|agresse)", +u"vomit sur",u"slap(|s)"] config_action_answers=[u"Hey ! Mais qu'est-ce que j'ai fait ?", u"Pourquoi moi ?", u"Mais euh…", u"Mais j'ai rien demandé moi !"] -config_action_actions=[u"prend de la distance, par précaution…",u"part en courant"] +config_action_actions=[u"prend de la distance, par précaution…",u"part en courant",u"esquive"] config_bonjour=[u"(s|)(a|'|)lu(t|)",u"hello",u"plop",u"plip",u"pr(ou|ü)t",u"bonjour",u"bonsoir"] config_bonjour_answers=[u"Salut {}",u"Hello {} :)",u"Bonjour {}",u"Hello {}",u"{}: hello",u"{}: bonjour"] @@ -229,7 +230,8 @@ def is_merci(chain): def is_tamere(chain): return is_something(chain,config_tamere) def is_action_trigger(chain,pseudo): - return is_something(chain,config_action_trigger,avant=u"^",apres=" %s($|\.| |,|;).*"%(pseudo)) + return is_something(chain,config_action_trigger,avant=u"^", + apres="( [a-z]*ment)? %s($|\.| |,|;).*"%(pseudo)) def is_pan(chain): return re.match(u"^(pan|bim|bang)$",unicode(chain,"utf8").lower().strip()) @@ -442,7 +444,8 @@ class Basile(ircbot.SingleServerIRCBot): LOST Perdre sur un chan SOLDE Donner le solde de quelqu'un""" helpmsg_overops=""" - SAY Fais envoyer un message sur un chan ou à une personne + SAY Fait envoyer un message sur un chan ou à une personne + DO Fait faire une action sur un chan STAY Ignorera les prochains LEAVE pour un chan NOSTAY Opposé de STAY DIE Mourir""" @@ -588,6 +591,22 @@ class Basile(ircbot.SingleServerIRCBot): serv.privmsg(auteur,"Syntaxe : SAY ") else: notunderstood=True + elif cmd=="do": + if auteur in self.overops and len(message)>2: + serv.action(message[1]," ".join(message[2:])) + log(self.serveur,"priv",auteur," ".join(message)) + elif len(message)<=2: + serv.privmsg(auteur,"Syntaxe : DO ") + else: + notunderstood=True + elif cmd=="kick": + if auteur in self.overops and len(message)>2: + serv.kick(message[1],message[2]," ".join(message[3:])) + log(self.serveur,"priv",auteur," ".join(message)) + elif len(message)<=2: + serv.privmsg(auteur,"Syntaxe : KICK ") + else: + notunderstood=True elif cmd=="lost": if auteur in self.ops and len(message)>1: serv.privmsg(message[1],"J'ai perdu !") @@ -600,11 +619,12 @@ class Basile(ircbot.SingleServerIRCBot): if len(message)==1: if self.identities.has_key(auteur): try: - self.nk.write('search ["x",["pseudo"],%s]'%(json.dumps(auteur))) + self.nk.write('search ["x",["pseudo"],%s]'%(json.dumps(self.identities[auteur]))) ret=json.loads(self.nk.read()) solde=ret["msg"][0]["solde"] pseudo=ret["msg"][0]["pseudo"] except Exception as exc: + print exc serv.privmsg(auteur,"failed") log(self.serveur,"priv",auteur," ".join(message)+"[failed]") return @@ -824,13 +844,20 @@ class Basile(ircbot.SingleServerIRCBot): action = ev.arguments()[0] auteur = irclib.nm_to_n(ev.source()) channel = ev.target() + try: + test=bot_unicode(action) + except UnicodeBotError: + serv.privmsg(channel, + "%s : Euh, tu fais de la merde avec ton encodage là, j'ai failli crasher…"%(auteur)) + return mypseudo=serv.get_nickname() - if is_action_trigger(action,mypseudo): + + if is_action_trigger(action,mypseudo) and not channel in self.quiet_channels: l1,l2=config_action_answers,config_action_actions n1,n2=len(l1),len(l2) i=random.randrange(n1+n2) if i>=n1: - serv.action(channel,l2[i-n1]) + serv.action(channel,l2[i-n1].encode("utf8")) else: serv.privmsg(channel,"%s: %s"%(auteur,l1[i].encode("utf8")))