X-Git-Url: http://gitweb.pimeys.fr/?a=blobdiff_plain;f=deconnaisseur.py;h=94e60096b5f22af08cbc313949de2c8e849b5dab;hb=a0229ed8479525e20c3e80c642105f3514d3fa87;hp=f2e405c50e7669604b297f03b5e56895bc843268;hpb=6a778527b32b182c8b8d8984fd71dce45e914296;p=bots%2Fdeconnaisseur.git diff --git a/deconnaisseur.py b/deconnaisseur.py index f2e405c..94e6009 100755 --- a/deconnaisseur.py +++ b/deconnaisseur.py @@ -27,7 +27,7 @@ def get_config_source_file(serveur): return config_source_file_template%(serveurs[serveur]) ttrig=120 #time trigger (normalement 120, mais diminué pour les tests) Ttrig=600 #between two enigms -config_time_incompressible=60 #on peut pas retrigger en dessous de ce temps (60) +config_time_incompressible=15 #on peut pas retrigger en dessous de ce temps (60) config_time_incompressible_clue=60 #on peut pas forcer la demande d'indice en dessous config_score_file="scores.pickle" @@ -80,6 +80,7 @@ class Deconnaisseur(ircbot.SingleServerIRCBot): self.stay_channels=config_stay_channels self.play_channels=config_play_channels self.play_status={i:[0] for i in self.play_channels} + self.quiet_channels={} def give_me_my_pseudo(self,serv): serv.privmsg("NickServ","RECOVER %s %s"%(config_pseudo,config_password)) @@ -125,7 +126,7 @@ class Deconnaisseur(ircbot.SingleServerIRCBot): if self.play_status[channel][0]==1: if token==None: # c'est donc que l'indice a été demandé - if self.play_status[channe][-1]+config_time_incompressible_clue1: + if message[1] in self.quiet_channels: + serv.privmsg(auteur,"Je me la ferme déjà sur %s"%(message[1])) + log(self.serveur,"priv",auteur," ".join(message)+"[failed]") + else: + self.quiet_channels.append(message[1]) + serv.privmsg(auteur,"Quiet channels : "+" ".join(self.quiet_channels)) + log(self.serveur,"priv",auteur," ".join(message)+"[successful]") + else: + serv.privmsg(auteur,"Quiet channels : "+" ".join(self.quiet_channels)) + else: + notunderstood=True + elif cmd=="noquiet": + if auteur in self.ops: + if len(message)>1: + if message[1] in self.quiet_channels: + self.quiet_channels.remove(message[1]) + serv.privmsg(auteur,"Quiet channels : "+" ".join(self.quiet_channels)) + log(self.serveur,"priv",auteur," ".join(message)+"[successful]") + else: + serv.privmsg(auteur,"Je ne me la ferme pas sur %s."%(message[1])) + log(self.serveur,"priv",auteur," ".join(message)+"[failed]") + else: + notunderstood=True elif cmd in ["states","status"]: if auteur in self.overops: for k in self.play_status.keys(): @@ -340,7 +369,6 @@ class Deconnaisseur(ircbot.SingleServerIRCBot): serv.privmsg(auteur,"Scores by score : "+" ; ".join(["%s %s"%(i[0],i[1]) for i in scores])) # trie par pseudo scores.sort(lambda x,y:cmp(x[0].lower(),y[0].lower())) - scores.reverse() serv.privmsg(auteur,"Scores by pseudo : "+" ; ".join(["%s %s"%(i[0],i[1]) for i in scores])) elif auteur in self.overops: souscmd=message[1].lower() @@ -405,8 +433,8 @@ class Deconnaisseur(ircbot.SingleServerIRCBot): else: serv.privmsg(canal,"%s: crève !"%(auteur)) log(canal,auteur,message+"[failed]") - if cmd in ["meur", "meurt","meurre","meurres"]: - serv.privmsg(canal,'%s: Mourir, impératif, 2ème personne du pluriel : "meurs" (de rien)'%(auteur)) + if cmd in ["meur", "meurt","meurre","meurres"] and not canal in self.quiet_channels: + serv.privmsg(canal,'%s: Mourir, impératif, 2ème personne du singulier : "meurs" (de rien)'%(auteur)) if cmd in ["part","leave","dégage"]: if auteur in self.ops and (not (canal in self.stay_channels) or auteur in self.overops): @@ -423,9 +451,9 @@ class Deconnaisseur(ircbot.SingleServerIRCBot): serv.nick(become) log(canal,auteur,message+"[successful]") - if cmd in ["coucou"]: + if cmd in ["coucou"] and not canal in self.quiet_channels: serv.privmsg(canal,"%s: coucou"%(auteur)) - if cmd in ["ping"]: + if cmd in ["ping"] and not canal in self.quiet_channels: serv.privmsg(canal,"%s: pong"%(auteur)) if cmd in ["déconnaissance","deconnaissance","énigme","enigme","encore"]: if canal in self.play_channels: @@ -438,6 +466,8 @@ class Deconnaisseur(ircbot.SingleServerIRCBot): serv.privmsg(canal,"%s: Rappel : %s"%(auteur,self.play_status[canal][1])) else: serv.privmsg(canal,"%s: pas ici…"%(auteur)) + if cmd=="indice" and canal in self.play_channels: + self.give_indice(serv,canal,None) else: tryother=True else: