Store: Remove control modifier sooner when cleaning a query.

This commit is contained in:
John Schember 2011-04-19 18:42:23 -04:00
parent 094d09c61a
commit 0b64888105
4 changed files with 15 additions and 9 deletions

View File

@ -79,5 +79,6 @@ class GutenbergStore(BasicStoreConfig, StorePlugin):
s.author = author.strip()
s.price = price.strip()
s.detail_item = '/ebooks/' + id.strip()
s.drm = False
yield s

View File

@ -130,8 +130,6 @@ class BookRef(SearchResult):
def __init__(self):
SearchResult.__init__(self)
self.format = ''
class MobeReadStoreDialog(QDialog, Ui_Dialog):

View File

@ -38,6 +38,7 @@ def comparable_price(text):
text += '00'
text = re.sub(r'\D', '', text)
text = text.rjust(6, '0')
return text
class SearchDialog(QDialog, Ui_Dialog):
@ -314,6 +315,13 @@ class SearchThread(Thread):
def _clean_query(self, query):
query = query.lower()
# Remove control modifiers.
query = query.replace('\\', '')
query = query.replace('!', '')
query = query.replace('=', '')
query = query.replace('~', '')
query = query.replace('>', '')
query = query.replace('<', '')
# Remove the prefix.
for loc in ( 'all', 'author', 'authors', 'title'):
query = re.sub(r'%s:"?(?P<a>[^\s"]+)"?' % loc, '\g<a>', query)
@ -321,14 +329,8 @@ class SearchThread(Thread):
for loc in ('cover', 'drm', 'format', 'formats', 'price', 'store'):
query = re.sub(r'%s:"[^"]"' % loc, '', query)
query = re.sub(r'%s:[^\s]*' % loc, '', query)
# Remove control modifiers.
# Remove logic.
query = re.sub(r'(^|\s)(and|not|or)(\s|$)', ' ', query)
query = query.replace('\\', '')
query = query.replace('!', '')
query = query.replace('=', '')
query = query.replace('~', '')
query = query.replace('>', '')
query = query.replace('<', '')
# Remove excess whitespace.
query = re.sub(r'\s{2,}', ' ', query)
return query

View File

@ -16,3 +16,8 @@ class SearchResult(object):
self.author = ''
self.price = ''
self.detail_item = ''
# None = Unknown.
# True = Has DRM.
# False = Does not have DRM.
self.drm = None
self.formats = ''