]> gitweb.pimeys.fr Git - bots/saturnin.git/blobdiff - saturnin.py
typos and misconfigurations
[bots/saturnin.git] / saturnin.py
index 7cf522235c37136fa74ba6c6e5413bea44b9700d..4903ec32892e35832c00df7351d9205f36b349e2 100755 (executable)
@@ -56,6 +56,11 @@ def is_something(chain,matches,avant=u".*(?:^| )",apres=u"(?:$|\.| |,|;).*",case
 regexp_pan = re.compile(u".*(" + "|".join(config.killwords) + u").*")
 def is_pan(chain):
     return regexp_pan.match(unicode(chain,"utf8").lower())
+def ignore_pan(serv, ev):
+    """Retourne ``True`` si il faut ignorer ce pan."""
+    for (blackmask, exceptmask) in config.ignored_pan_masks:
+        usermask = ev.source()
+        return bool(irclib.mask_matches(usermask, blackmask) and not irclib.mask_matches(usermask, exceptmask))
 
 class UnicodeBotError(Exception):
     pass
@@ -306,6 +311,11 @@ class Saturnin(ircbot.SingleServerIRCBot):
                         log(self.serveur,"priv",auteur," ".join(message)+"[failed]")
             else:
                 notunderstood=True
+        elif cmd=="status":
+            if auteur in self.ops:
+                serv.privmsg(auteur,"Status : %s" % (self.status, ))
+            else:
+                notunderstood=True
         elif cmd=="spawn":
             if auteur in self.ops:
                 if len(message)>1:
@@ -445,6 +455,8 @@ class Saturnin(ircbot.SingleServerIRCBot):
     
     def on_pubmsg(self, serv, ev):
         auteur = irclib.nm_to_n(ev.source())
+        if re.match(config.ignored_pseudos, auteur):
+            return
         channel = ev.target()
         message = ev.arguments()[0]
         try:
@@ -487,6 +499,8 @@ class Saturnin(ircbot.SingleServerIRCBot):
                 self.sendscores(auteur)
         else:
             if is_pan(message):
+                if ignore_pan(serv, ev):
+                    return
                 self.shot(channel, auteur)
     
     def on_action(self, serv, ev):
@@ -641,7 +655,8 @@ if __name__=="__main__":
     if "--quiet" in sys.argv:
         config.debug_stdout=False
     serveurs={"a♡":"acoeur.crans.org","acoeur":"acoeur.crans.org","acoeur.crans.org":"acoeur.crans.org",
-              "irc":"irc.crans.org","crans":"irc.crans.org","irc.crans.org":"irc.crans.org"}
+              "irc":"irc.crans.org","crans":"irc.crans.org","irc.crans.org":"irc.crans.org",
+              "local":"localhost"}
     try:
         serveur=serveurs[serveur]
     except KeyError: