mirror of
git://github.com/kovidgoyal/calibre.git
synced 2026-05-09 01:33:30 +02:00
...
This commit is contained in:
commit
f2e6c11538
3 changed files with 17 additions and 9 deletions
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
import random
|
||||
import re
|
||||
import urllib2
|
||||
import urllib
|
||||
from contextlib import closing
|
||||
|
||||
from lxml import html
|
||||
|
|
@ -48,7 +48,7 @@ def open(self, parent=None, detail_item=None, external=False):
|
|||
|
||||
def search(self, query, max_results=10, timeout=60):
|
||||
url = 'http://productsearch.barnesandnoble.com/search/results.aspx?STORE=EBOOK&SZE=%s&WRD=' % max_results
|
||||
url += urllib2.quote(query)
|
||||
url += urllib.quote_plus(query)
|
||||
|
||||
br = browser()
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
from Queue import Queue
|
||||
|
||||
from calibre import browser
|
||||
from calibre.constants import DEBUG
|
||||
from calibre.utils.magick.draw import thumbnail
|
||||
|
||||
class GenericDownloadThreadPool(object):
|
||||
|
|
@ -119,7 +120,8 @@ def run(self):
|
|||
self.results.put((res, store_plugin))
|
||||
self.tasks.task_done()
|
||||
except:
|
||||
traceback.print_exc()
|
||||
if DEBUG:
|
||||
traceback.print_exc()
|
||||
|
||||
|
||||
class CoverThreadPool(GenericDownloadThreadPool):
|
||||
|
|
@ -157,7 +159,8 @@ def run(self):
|
|||
callback()
|
||||
self.tasks.task_done()
|
||||
except:
|
||||
continue
|
||||
if DEBUG:
|
||||
traceback.print_exc()
|
||||
|
||||
|
||||
class DetailsThreadPool(GenericDownloadThreadPool):
|
||||
|
|
@ -191,7 +194,8 @@ def run(self):
|
|||
callback(result)
|
||||
self.tasks.task_done()
|
||||
except:
|
||||
continue
|
||||
if DEBUG:
|
||||
traceback.print_exc()
|
||||
|
||||
|
||||
class CacheUpdateThreadPool(GenericDownloadThreadPool):
|
||||
|
|
@ -221,4 +225,5 @@ def run(self):
|
|||
store_plugin, timeout = self.tasks.get()
|
||||
store_plugin.update_cache(timeout=timeout, suppress_progress=True)
|
||||
except:
|
||||
traceback.print_exc()
|
||||
if DEBUG:
|
||||
traceback.print_exc()
|
||||
|
|
|
|||
|
|
@ -139,14 +139,17 @@ def clean_query(self, query):
|
|||
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)
|
||||
for loc in ('all', 'author', 'authors', 'title'):
|
||||
query = re.sub(r'%s:"(?P<a>[^\s"]+)"' % loc, '\g<a>', query)
|
||||
query = query.replace('%s:' % loc, '')
|
||||
# Remove the prefix and search text.
|
||||
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 logic.
|
||||
query = re.sub(r'(^|\s)(and|not|or)(\s|$)', ' ', query)
|
||||
query = re.sub(r'(^|\s)(and|not|or|a|the|is|of)(\s|$)', ' ', query)
|
||||
# Remove "
|
||||
query = query.replace('"', '')
|
||||
# Remove excess whitespace.
|
||||
query = re.sub(r'\s{2,}', ' ', query)
|
||||
query = query.strip()
|
||||
|
|
|
|||
Loading…
Reference in a new issue