def get_config_logfile(serveur):
serveurs={"acoeur.crans.org":"acoeur","irc.crans.org":"crans"}
return config_logfile_template%(serveurs[serveur])
-config_overops=["[20-100]","[20-100]_"]
-config_ops=["PEB","Nit"]
+config_overops=["[20-100]","[20-100]_", "PEB"]
+config_ops=["Nit"]
config_report_bugs_to=["[20-100]"]
config_insultes=[u"conna(rd|sse)",u"pute",u"con(|ne)",u"enf(oiré|lure)",
u"Mais j'ai rien demandé moi !"]
config_bad_action_actions=[u"prend de la distance, par précaution…",u"part en courant",u"esquive"]
-config_good_action_triggers=[u"fait (des bisous|un calin) à",u"embrasse",u"caline",u"caresse"]
-config_good_ction_answers=[u"owi \o/",u"{}: c'est gentil ! ♡"]
-config_good_action_acions=[u"ronronne",u"est content"]
+config_good_action_triggers=[u"fait (:?des bisous|un c(?:â|a)lin|des c(?:â|a)lins) à",u"embrasse",u"c(?:â|a)line",u"caresse"]
+config_good_action_answers=[u"owi \o/",u"c'est gentil ! ♡"]
+config_good_action_actions=[u"ronronne",u"est content"]
config_bonjour_triggers=[u"(s|)(a|'|)lu(t|)",u"hello",u"pl(o|i)p",u"pr(ou|ü)t",u"bonjour",u"bonsoir",u"coucou"]
config_bonjour_answers=[u"Salut {}",u"Hello {} :)",u"Bonjour {}",u"Hello {}",u"{}: hello",u"{}: bonjour"]
+config_bonne_nuit_triggers=[u"bonne nuit",u"'?nite",u"'?nuit",u"'?night",u"good night",u"'?nunuit"]
+config_bonne_nuit_answers=[u"{}: sweet dreams ;)",u"Bonne nuit {} !",u"À demain {}. :)","{}: dors bien ^^"]
+
config_kick_answers=[u"Ben qu'est-ce que j'ai fait ? :(",u"Mais euh, j'ai rien fait de mal…","{} a le /kick facile :)"]
config_kick_actions=[u"se tiendra à carreaux",u"essaiera de ne plus provoquer les foudres de {}"]
return o
def is_insult(chain,debug=True):
- return is_something(chain,config_insultes,avant=".*(^| |')")
+ return is_something(chain,config_insultes,avant=".*(?:^| |')")
def is_not_insult(chain):
chain=unicode(chain,"utf8")
insult_regexp=u"("+u"|".join(config_insultes)+u")"
- middle_regexp=u"(un(|e) ((putain|enfoiré) d(e |'))*|)(| super )( (gros|petit|grand|énorme) |)"
+ middle_regexp=u"(une? (?:(?:putain|enfoiré) d(?:e |'))*|)(?:| super )(?: (?:gros|petit|grand|énorme) |)"
reg=".*pas %s%s.*"%(middle_regexp,insult_regexp)
if re.match(reg,chain):
return True
return is_something(chain,config_tamere_triggers)
def is_bad_action_trigger(chain,pseudo):
return is_something(chain,config_bad_action_triggers,avant=u"^",
- apres="( [a-z]*ment)? %s($|\.| |,|;).*"%(pseudo))
+ apres="(?: [a-z]*ment)? %s($|\.| |,|;).*"%(pseudo))
def is_good_action_trigger(chain,pseudo):
return is_something(chain,config_good_action_triggers,avant=u"^",
- apres="( [a-z]*ment)? %s($|\.| |,|;).*"%(pseudo))
+ apres="(?: [a-z]*ment)? %s($|\.| |,|;).*"%(pseudo))
+def is_bonjour(chain):
+ return is_something(chain,config_bonjour_triggers,avant=u"^")
+def is_bonne_nuit(chain):
+ return is_something(chain,config_bonne_nuit_triggers,avant=u"^")
def is_pan(chain):
return re.match(u"^(pan|bim|bang) .*$",unicode(chain,"utf8").lower().strip())
if not canal in self.quiet_channels:
serv.privmsg(canal,
"%s: Euh, tu fais de la merde avec ton encodage là, j'ai failli crasher…"%(auteur))
- return
+ return
pour_moi,message=self.pourmoi(serv,message)
if pour_moi and message.split()!=[]:
cmd=message.split()[0].lower()
for j in mess])
out=int(translate(out))
serv.privmsg(canal,"%s: %s !"%(auteur,translate(str(out+1)).encode("utf8")))
- if (not canal in self.quiet_channels
- and re.match((u"^("+"|".join(config_bonjour_triggers)+").*").lower(),message.lower()) ):
+ if is_bonjour(message) and not canal in self.quiet_channels:
answer=random.choice(config_bonjour_answers)
serv.privmsg(canal,answer.format(auteur).encode("utf8"))
+ if is_bonne_nuit(message) and not canal in self.quiet_channels:
+ answer=random.choice(config_bonne_nuit_answers)
+ serv.privmsg(canal,answer.format(auteur).encode("utf8"))
if is_pan(message) and not canal in self.quiet_channels:
serv.privmsg(canal,"%s: c'est pas sur moi qu'il faut tirer !"%(auteur))
else:
serv.action(channel,l2[i-n1].encode("utf8"))
else:
serv.privmsg(channel,"%s: %s"%(auteur,l1[i].encode("utf8")))
-
+ if is_good_action_trigger(action,mypseudo) and not channel in self.quiet_channels:
+ l1,l2=config_good_action_answers,config_good_action_actions
+ n1,n2=len(l1),len(l2)
+ i=random.randrange(n1+n2)
+ if i>=n1:
+ serv.action(channel,l2[i-n1].encode("utf8"))
+ else:
+ serv.privmsg(channel,"%s: %s"%(auteur,l1[i].encode("utf8")))
+
def on_kick(self,serv,ev):
auteur = irclib.nm_to_n(ev.source())
channel = ev.target()
log(self.serveur,"%s kické par %s (raison : %s)" %(victime,auteur,raison))
time.sleep(2)
serv.join(channel)
- l1,l2=config_kick_actions,config_kick_answers
+ l1,l2=config_kick_answers,config_kick_actions
n1,n2=len(l1),len(l2)
i=random.randrange(n1+n2)
if i>=n1:
- serv.action(channel,l2[i-n1].encode("utf8"))
+ serv.action(channel,l2[i-n1].format(auteur).encode("utf8"))
else:
- serv.privmsg(channel,"%s: %s"%(auteur,l1[i].encode("utf8")))
+ serv.privmsg(channel,"%s: %s"%(auteur,l1[i].format(auteur).encode("utf8")))
def _getnick(self):
return self.serv.get_nickname()