]> gitweb.pimeys.fr Git - bots/deconnaisseur.git/blobdiff - deconnaisseur.py
Ajout de quiet/noquiet
[bots/deconnaisseur.git] / deconnaisseur.py
index 5ebbbf8ed9dfc51f4e32af0b5d59539e1f6e8c7a..94e60096b5f22af08cbc313949de2c8e849b5dab 100755 (executable)
@@ -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))
@@ -189,7 +190,9 @@ class Deconnaisseur(ircbot.SingleServerIRCBot):
  JOIN       Faire rejoindre un channel (sans paramètres, donne la liste des chans actuels)
  LEAVE      Faire quitter un channel
  PLAY       Passe un channel en mode "jouer"
- NOPLAY     Passe un channel en mode "ne pas jouer" """
+ NOPLAY     Passe un channel en mode "ne pas jouer"
+ QUIET      Se taire sur un channel
+ NOQUIET    Opposé de QUIET"""
             helpmsg_overops="""
  SCORES {DEL|ADD|SUB}   Tu veux un dessin ?
  SAY        Fais envoyer un message sur un chan ou à une personne
@@ -285,6 +288,32 @@ class Deconnaisseur(ircbot.SingleServerIRCBot):
                         log("priv",auteur," ".join(message)+"[failed]")
             else:
                 notunderstood=True
+        elif cmd=="quiet":
+            if auteur in self.ops:
+                if len(message)>1:
+                    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():
@@ -404,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):
@@ -422,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: