diff --git a/src/calibre/gui2/store/gutenberg_plugin.py b/src/calibre/gui2/store/gutenberg_plugin.py index 8d04b6236d..8166185ff5 100644 --- a/src/calibre/gui2/store/gutenberg_plugin.py +++ b/src/calibre/gui2/store/gutenberg_plugin.py @@ -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 diff --git a/src/calibre/gui2/store/mobileread_plugin.py b/src/calibre/gui2/store/mobileread_plugin.py index 49c265d7fe..d520b42fae 100644 --- a/src/calibre/gui2/store/mobileread_plugin.py +++ b/src/calibre/gui2/store/mobileread_plugin.py @@ -129,8 +129,6 @@ class BookRef(SearchResult): def __init__(self): SearchResult.__init__(self) - - self.format = '' class MobeReadStoreDialog(QDialog, Ui_Dialog): diff --git a/src/calibre/gui2/store/search.py b/src/calibre/gui2/store/search.py index ce8296ba7e..c94c43537f 100644 --- a/src/calibre/gui2/store/search.py +++ b/src/calibre/gui2/store/search.py @@ -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[^\s"]+)"?' % loc, '\g', 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 diff --git a/src/calibre/gui2/store/search_result.py b/src/calibre/gui2/store/search_result.py index 6e0ed0b572..25ff32d0ec 100644 --- a/src/calibre/gui2/store/search_result.py +++ b/src/calibre/gui2/store/search_result.py @@ -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 = ''