]> gitweb.pimeys.fr Git - bots/parrot.git/commitdiff
caffouillage de regex : on pouvait pas quoter une place sans mettre le quoter
authorVincent Le Gallic <legallic@crans.org>
Fri, 18 Apr 2014 13:04:01 +0000 (15:04 +0200)
committerVincent Le Gallic <legallic@crans.org>
Fri, 18 Apr 2014 13:04:01 +0000 (15:04 +0200)
config.py
parrot.py

index fce38cb31da8801128e4ad8248133429538472ee..036a46508c59b73ba2be9430824ee74ffb856eab 100644 (file)
--- a/config.py
+++ b/config.py
@@ -126,10 +126,10 @@ helpmsg_overops = u" SAY DO STAY NOSTAY OPS OVEROPS KICK DIE CRASH RESTORE"
 blacklisted_masks = [("Flo!*@*", [])]
 
 #: Regexp pour le lieu et le quoter
-quote_optionnal_fields = ur"\|\s*(?P<place>[^|]+?)?\s*\|\s*(?P<quoter>[^|]+?)?\s*"
+quote_optionnal_fields = ur"(?:(?:\|\s*(?P<place>[^|]+?)\s*)?\|\s*(?P<quoter>[^|]+?)?\s*)?"
 
 #: Regexp utilisée pour parser des quotes
-quote_regexp = ur"""\s*(?:"|«|')\s*(?P<content>.+?)\s*(?:"|»|')\s*~\s*(?P<author>[^|]+?)\s*(?:%s)?(?:$|\n)""" % (quote_optionnal_fields,)
+quote_regexp = ur"""\s*(?:"|«|')\s*(?P<content>.+?)\s*(?:"|»|')\s*~\s*(?P<author>[^|]+?)\s*%s(?:$|\n)""" % (quote_optionnal_fields,)
 
 #: Regexp utlisée pour parser une quote avec timestamp
 quote_regexp_with_timestamp = ur"(?P<timestamp>.{19}) " + quote_regexp
index 0cd5be9771eb644ee7ef2332b9330f1b8550d525..dd5053023f4d0bb2ccd0943077de43bd5ad78e28 100755 (executable)
--- a/parrot.py
+++ b/parrot.py
@@ -87,6 +87,9 @@ class Parrot(ircbot.SingleServerIRCBot):
         
         self.quotedb = quotes.QuoteDB()
         self.reload_quotes()
+        
+        # Pour agir à la réception des whois 307 = registered nick
+        self.ircobj.add_global_handler("307", self.on_registered_nick)
 
     
     ### Utilitaires
@@ -506,6 +509,12 @@ class Parrot(ircbot.SingleServerIRCBot):
             time.sleep(2)
             serv.join(channel)
     
+    def on_registered_nick(self, serv, ev):
+        """À la réception d'un résultat de whois."""
+        pseudo, regis = ev.arguments()
+        if regis == 'is a registered nick':
+            print "%s est enregistré \o/" % pseudo
+     
     ### .fork trick
     def start_as_daemon(self, outfile):
         sys.stderr = Logger(outfile)