mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Allow using amazon_in, amazon_au, amazon_com identifiers in the Book details panel. Fixes #1649371 [Proper link ISBN for searching in Amazon au, in, ca](https://bugs.launchpad.net/calibre/+bug/1649371)
This commit is contained in:
parent
c8966e443b
commit
bcbac05d04
@ -832,19 +832,19 @@ class Amazon(Source):
|
|||||||
x.startswith('identifier:amazon')] + [ident_name]
|
x.startswith('identifier:amazon')] + [ident_name]
|
||||||
self.touched_fields = frozenset(tf)
|
self.touched_fields = frozenset(tf)
|
||||||
|
|
||||||
def get_domain_and_asin(self, identifiers):
|
def get_domain_and_asin(self, identifiers, extra_domains=()):
|
||||||
for key, val in identifiers.iteritems():
|
for key, val in identifiers.iteritems():
|
||||||
key = key.lower()
|
key = key.lower()
|
||||||
if key in ('amazon', 'asin'):
|
if key in ('amazon', 'asin'):
|
||||||
return 'com', val
|
return 'com', val
|
||||||
if key.startswith('amazon_'):
|
if key.startswith('amazon_'):
|
||||||
domain = key.split('_')[-1]
|
domain = key.partition('_')[-1]
|
||||||
if domain and domain in self.AMAZON_DOMAINS:
|
if domain and (domain in self.AMAZON_DOMAINS or domain in extra_domains):
|
||||||
return domain, val
|
return domain, val
|
||||||
return None, None
|
return None, None
|
||||||
|
|
||||||
def _get_book_url(self, identifiers): # {{{
|
def _get_book_url(self, identifiers): # {{{
|
||||||
domain, asin = self.get_domain_and_asin(identifiers)
|
domain, asin = self.get_domain_and_asin(identifiers, extra_domains=('in', 'au', 'ca'))
|
||||||
if domain and asin:
|
if domain and asin:
|
||||||
url = None
|
url = None
|
||||||
if domain == 'com':
|
if domain == 'com':
|
||||||
@ -853,6 +853,8 @@ class Amazon(Source):
|
|||||||
url = 'https://www.amazon.co.uk/dp/'+asin
|
url = 'https://www.amazon.co.uk/dp/'+asin
|
||||||
elif domain == 'br':
|
elif domain == 'br':
|
||||||
url = 'https://www.amazon.com.br/dp/'+asin
|
url = 'https://www.amazon.com.br/dp/'+asin
|
||||||
|
elif domain == 'au':
|
||||||
|
url = 'https://www.amazon.com.au/dp/' + asin
|
||||||
else:
|
else:
|
||||||
url = 'https://www.amazon.%s/dp/%s'%(domain, asin)
|
url = 'https://www.amazon.%s/dp/%s'%(domain, asin)
|
||||||
if url:
|
if url:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user