diff --git a/src/calibre/gui2/store/search_result.py b/src/calibre/gui2/store/search_result.py index 5cf71f011e..08404a5ebd 100644 --- a/src/calibre/gui2/store/search_result.py +++ b/src/calibre/gui2/store/search_result.py @@ -29,4 +29,4 @@ class SearchResult(object): self.plugin_author = '' def __eq__(self, other): - return self.title == other.title and self.author == other.author and self.store_name == other.store_name + return self.title == other.title and self.author == other.author and self.store_name == other.store_name and self.formats == other.formats diff --git a/src/calibre/gui2/store/stores/woblink_plugin.py b/src/calibre/gui2/store/stores/woblink_plugin.py index e9696b39a6..d74fb00fef 100644 --- a/src/calibre/gui2/store/stores/woblink_plugin.py +++ b/src/calibre/gui2/store/stores/woblink_plugin.py @@ -43,9 +43,9 @@ class WoblinkStore(BasicStoreConfig, StorePlugin): url = 'http://woblink.com/publication?query=' + urllib.quote_plus(query.encode('utf-8')) if max_results > 10: if max_results > 20: - url += '&limit=' + str(30) + url += '&limit=30' else: - url += '&limit=' + str(20) + url += '&limit=20' br = browser() @@ -74,15 +74,40 @@ class WoblinkStore(BasicStoreConfig, StorePlugin): if 'pdf' in formats: formats[formats.index('pdf')] = 'PDF' - counter -= 1 - s = SearchResult() s.cover_url = 'http://woblink.com' + cover_url s.title = title.strip() s.author = author.strip() s.price = price + ' zł' s.detail_item = id.strip() - s.drm = SearchResult.DRM_UNKNOWN if 'MOBI' in formats else SearchResult.DRM_LOCKED - s.formats = ', '.join(formats) - - yield s + + # MOBI should be send first, + if 'MOBI' in formats: + s = SearchResult() + s.cover_url = 'http://woblink.com' + cover_url + s.title = title.strip() + s.author = author.strip() + s.price = price + ' zł' + s.detail_item = id.strip() + + s.drm = SearchResult.DRM_UNLOCKED + s.formats = 'MOBI' + formats.remove('MOBI') + + counter -= 1 + yield s + + # and the remaining formats (if any) next + if formats: + s = SearchResult() + s.cover_url = 'http://woblink.com' + cover_url + s.title = title.strip() + s.author = author.strip() + s.price = price + ' zł' + s.detail_item = id.strip() + + s.drm = SearchResult.DRM_LOCKED + s.formats = ', '.join(formats) + + counter -= 1 + yield s