From: Vincent Le Gallic Date: Sat, 12 Mar 2016 12:46:19 +0000 (+0100) Subject: On n'affiche pas "None" pour un contexte d'une quote X-Git-Url: http://gitweb.pimeys.fr/?p=bots%2Fparrot.git;a=commitdiff_plain;h=70275f465c6410061ecbed37f2eed791decaa446 On n'affiche pas "None" pour un contexte d'une quote Ç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. --- diff --git a/quotes.py b/quotes.py index f68b343..e8e4061 100644 --- 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.