def log(serveur,channel,auteur=None,message=None):
f=open(get_config_logfile(serveur),"a")
- if auteur==message==None:
+ if auteur == message == None:
# alors c'est que c'est pas un channel mais juste une ligne de log
chain="%s %s"%(time.strftime("%F %T"),channel)
else:
print chain
f.close()
+def ignore_event(serv, ev):
+ """Retourne ``True`` si il faut ignorer cet évènement."""
+ for (blackmask, exceptmask) in config.blacklisted_masks:
+ usermask = ev.source()
+ if exceptmask is None:
+ exceptit = False
+ else:
+ exceptit = bool(irclib.mask_matches(usermask, exceptmask))
+ blackit = bool(irclib.mask_matches(usermask, blackmask))
+ if blackit and not exceptit:
+ return True
class UnicodeBotError(Exception):
pass
return (False,message)
def on_privmsg(self, serv, ev):
+ if ignore_event(serv, ev):
+ return
message=ev.arguments()[0]
auteur = irclib.nm_to_n(ev.source())
try:
self.affiche_mot(serv, canal, begin="Devinez")
def on_pubmsg(self, serv, ev):
+ if ignore_event(serv, ev):
+ return
auteur = irclib.nm_to_n(ev.source())
canal = ev.target()
message = ev.arguments()[0]
def on_action(self, serv, ev):
+ if ignore_event(serv, ev):
+ return
action = ev.arguments()[0]
auteur = irclib.nm_to_n(ev.source())
channel = ev.target()
realword = self.reveal_word(serv, canal)
nlettre=float(len([l for l in realword if not l in config.non_guess_chars]))
contribs=["%s:%s%%%s"%(pseudo,str(int(100*contrib/nlettre)),("+bonus(%s)"%(bonusvalue))*(bonus==pseudo)) for pseudo,contrib in self.play_status[canal][2].items()]
- contribs_score={pseudo:int(10*contrib/nlettre) for pseudo,contrib in self.play_status[canal][2].items()}
+ contribs_score={pseudo:int(10.0*contrib/nlettre)+(bonusvalue*(bonus==pseudo)) for pseudo,contrib in self.play_status[canal][2].items()}
self.add_score(contribs_score)
serv.privmsg(canal,"Contributions : %s"%(" ".join(contribs)) )
self.play_status[canal]=[None,None,None]