]> gitweb.pimeys.fr Git - bots/parrot.git/blobdiff - parrot.py
Problème de priorité place/quoter
[bots/parrot.git] / parrot.py
index 1072896cb8f98b687d94283d0b8cf66864f670b6..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
@@ -432,7 +435,9 @@ class Parrot(ircbot.SingleServerIRCBot):
             match = self.quote_pattern.match(message)
             if match:
                 d = match.groupdict()
-                if self.quotedb.store(d["author"], d["content"]):
+                # On n'autorise pas les gens à déclarer le quoter
+                d["quoter"] = auteur.decode("utf-8")
+                if self.quotedb.store(**d):
                     serv.privmsg(canal, (u"%s: Ce sera retenu, répété, amplifié" % (auteur,)).encode("utf-8"))
                     self.quotedb.save()
                 else:
@@ -504,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)