+ def gagne(self, serv, canal, bonus=None, bonusvalue=2):
+ serv.privmsg(canal,"Bravo !")
+ 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.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]
+
+ def reveal_word(self, serv, canal):
+ realword="".join([lettre[0] for lettre in self.play_status[canal][0]])
+ serv.privmsg(canal, "C'était %s." % (realword))
+ definition = self.play_status[canal][1]
+ serv.privmsg(canal,definition)
+ return realword
+
+ def perd(self, serv, canal):
+ serv.privmsg(canal,"Pendu !")
+ self.reveal_word(serv, canal)
+ self.play_status[canal]=[None,None,None]
+
+ def reload(self, auteur=None):
+ reload(config)
+ if auteur in [None, "SIGHUP"]:
+ towrite = "Config reloaded" + " (SIGHUP received)"*(auteur == "SIGHUP")
+ for to in config.report_bugs_to:
+ self.serv.privmsg(to, towrite)
+ log(self.serveur, towrite)
+ else:
+ self.serv.privmsg(auteur,"Config reloaded")
+
+ def start_as_daemon(self, outfile):
+ sys.stderr = Logger(outfile)
+ self.start()
+
+
+class Logger(object):
+ """Pour écrire ailleurs que sur stdout"""
+ def __init__(self, filename="hung.full.log"):
+ self.filename = filename
+
+ def write(self, message):
+ f = open(self.filename, "a")
+ f.write(message)
+ f.close()
+