X-Git-Url: http://gitweb.pimeys.fr/?a=blobdiff_plain;ds=sidebyside;f=quotes.py;h=0dcdabbe4411f08cf2f7ace767805b55fa6faede;hb=5a141999c786c7206cd487d988e0f81c55c6eb32;hp=e280d8da6983d41abfc322eefcd89e5000461f83;hpb=f3108f2e01a5e36d48f8d3ccd82a6a34c46d6077;p=bots%2Fparrot.git diff --git a/quotes.py b/quotes.py index e280d8d..0dcdabb 100644 --- a/quotes.py +++ b/quotes.py @@ -54,7 +54,7 @@ class Quote(object): def jsonize(self): d = {"author" : self.author, "content" : self.content, "timestamp" : self.timestamp.strftime(u"%F_%T"), - "place" : self.place, "quoter" : self.quoter} + "place" : self.proper_place, "quoter" : self.proper_quoter} return d def __get_proper_place(self): @@ -194,24 +194,31 @@ class QuoteDB(object): Si ``regexp=True``, utilise directement les termes comme des regexp. """ params = [inquote, author] - regexps = [] - for param in params: - if param is None: - param = u".*" - elif not regexp: - param = u".*%s.*" % param - regexps.append(re.compile(param, flags=re.UNICODE + re.IGNORECASE)) - l = [q for q in self.quotelist if all([reg.match(truc) for (reg, truc) in zip(regexps, [q.content, q.author])])] + if regexp: + regexps = [] + for param in params: + if param is None: + param = u".*" + regexps.append(re.compile(param, flags=re.UNICODE + re.IGNORECASE)) + l = [q for q in self.quotelist if all([reg.match(truc) for (reg, truc) in zip(regexps, [q.content, q.author, q.proper_place])])] + else: + for (i, param) in enumerate(params): + if param is None: + params[i] = u"" + l = [q for q in self.quotelist if all([param.lower() in truc.lower() for (param, truc) in zip(params, [q.content, q.author, q.proper_place])])] return l def search_authors(self, author=None, regexp=False): """Renvoie la liste des auteurs contenant ``author`` ou qui matchent la regexp.""" - if author is None: - author = u".*" - elif not regexp: - author = u".*%s.*" % author - areg = re.compile(author, flags=re.UNICODE + re.IGNORECASE) - l = list(set([q.author for q in self.quotelist if areg.match(q.author)])) + if regexp: + if author is None: + author = u".*" + areg = re.compile(author, flags=re.UNICODE + re.IGNORECASE) + l = list(set([q.author for q in self.quotelist if areg.match(q.author)])) + else: + if author is None: + author = u"" + l = list(set([q.author for q in self.quotelist if author.lower() in q.author.lower()])) return l def dump(quotedb, dump_file=None):