]> gitweb.pimeys.fr Git - bots/parrot.git/commitdiff
On n'affiche pas "None" pour un contexte d'une quote
authorVincent Le Gallic <legallic@crans.org>
Sat, 12 Mar 2016 12:46:19 +0000 (13:46 +0100)
committerVincent Le Gallic <legallic@crans.org>
Sat, 12 Mar 2016 12:46:19 +0000 (13:46 +0100)
Ça vient du fait que les contextes sont proprifés au restore.
Une quote qui n'est enregistrée qu'en JSON ou en python a None
comme place.
Ce commite implémente des properties place_proper et quoter_proper
pour faire tout ça proprement.

quotes.py

index f68b34387596c77692f31648c31853c89d8c9b7a..e8e40610b0b67e7e013b445463acd465e6d29a0f 100644 (file)
--- a/quotes.py
+++ b/quotes.py
@@ -57,6 +57,22 @@ class Quote(object):
              "place" : self.place, "quoter" : self.quoter}
         return d
     
+    def __get_proper_place(self):
+        """
+        property function pour récupérer ``self.place``
+        mais en virant None ou des chaînes ne contenant que des whitespace.
+        """
+        return self.place if self.place and self.place.strip() != u"" else u""
+    proper_place = property(__get_proper_place)
+    
+    def __get_proper_quoter(self):
+        """
+        property function pour récupérer ``self.place``
+        mais en virant None ou des chaînes ne contenant que des whitespace.
+        """
+        return self.quoter if self.quoter and self.quoter.strip() != u"" else u""
+    proper_quoter = property(__get_proper_quoter)
+    
     def __unicode__(self):
         """ Retourne la quote affichable """
         return config.quote_template % self.__dict__
@@ -70,16 +86,18 @@ class Quote(object):
         """
         s = config.quote_template % self.__dict__
         if show_context:
-            s = u"%s | %s" % (s, self.place)
+            s = u"%s | %s" % (s, self.proper_place)
         return s.encode("utf-8")
-
+    
     def full_str(self):
         """ Retourne une chaîne représentant la totalité des infos de la quote,
             tout en étant parsable et human-readable. """
-        place = self.place if self.place and self.place.strip() != u"" else u""
-        quoter = self.quoter if self.quoter and self.quoter.strip() != u"" else u""
-        return (u"%s %s | %s | %s" % (self.timestamp.strftime("%F_%T"), config.quote_template % self.__dict__
-                  , place, quoter)).encode("utf-8")
+        s = u"%s %s | %s | %s" % (
+            self.timestamp.strftime("%F_%T"),
+            config.quote_template % self.__dict__,
+            self.proper_place,
+            self.proper_quoter)
+        return s.encode("utf-8")
     
     def __eq__(self, otherquote):
         """ Vérifie si cette phrase n'a pas déjà été dite par la même personne.