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 = ''