Ensure that unicode is being passed to l2cs

This is in preparation for some enhancements
to l2cs that require it to have a decent interface
(i.e., it's going to require unicode rather than
accepting either byte strings or unicode)
This commit is contained in:
Keith Mitchell
2012-08-08 18:13:56 -07:00
parent a8c6631c40
commit 1dea92c1de
2 changed files with 10 additions and 9 deletions

View File

@@ -683,13 +683,13 @@ class FrontController(RedditController):
article.title)
query = _force_unicode(query)
query = query[:1024]
query = "|".join(query.split())
query = "title:'%s'" % query
query = u"|".join(query.split())
query = u"title:'%s'" % query
rel_range = timedelta(days=3)
start = int(time.mktime((article._date - rel_range).utctimetuple()))
end = int(time.mktime((article._date + rel_range).utctimetuple()))
nsfw = "nsfw:0" if not (article.over_18 or article._nsfw.findall(article.title)) else ""
query = "(and %s timestamp:%s..%s %s)" % (query, start, end, nsfw)
nsfw = u"nsfw:0" if not (article.over_18 or article._nsfw.findall(article.title)) else u""
query = u"(and %s timestamp:%s..%s %s)" % (query, start, end, nsfw)
q = SearchQuery(query, raw_sort="-text_relevance",
syntax="cloudsearch")
pane = self._search(q, num=num, after=after, reverse=reverse,

View File

@@ -614,7 +614,7 @@ class CloudSearchQuery(object):
syntax = self.default_syntax
elif syntax not in self.known_syntaxes:
raise ValueError("Unknown search syntax: %s" % syntax)
self.query = query.encode("utf-8") if query else ''
self.query = filters._force_unicode(query or u'')
self.converted_data = None
self.syntax = syntax
self.sr = sr
@@ -624,7 +624,7 @@ class CloudSearchQuery(object):
else:
self.sort = self.sorts[sort]
self.faceting = faceting
self.bq = ''
self.bq = u''
self.results = None
def run(self, after=None, reverse=False, num=1000, _update=False):
@@ -648,14 +648,15 @@ class CloudSearchQuery(object):
elif self.syntax == "lucene":
bq = l2cs.convert(self.query, self.lucene_parser)
self.converted_data = {"syntax": "cloudsearch",
"converted": filters._force_unicode(bq)}
"converted": bq}
self.bq = self.customize_query(bq)
elif self.syntax == "plain":
q = self.query
if g.sqlprinting:
g.log.info("%s", self)
return self._run_cached(q, self.bq, self.sort, self.faceting,
start=start, num=num, _update=_update)
return self._run_cached(q, self.bq.encode('utf-8'), self.sort,
self.faceting, start=start, num=num,
_update=_update)
def customize_query(self, bq):
return bq