From e9b866ef870858f577bd537dd54c8cf42ded615a Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Tue, 11 Nov 2014 12:04:36 +0100 Subject: [PATCH] Update Amazon EU stores for website changes --- .../gui2/store/stores/amazon_de_plugin.py | 22 ++++++++----------- .../gui2/store/stores/amazon_es_plugin.py | 22 ++++++++----------- .../gui2/store/stores/amazon_fr_plugin.py | 22 ++++++++----------- .../gui2/store/stores/amazon_it_plugin.py | 22 ++++++++----------- .../gui2/store/stores/amazon_uk_plugin.py | 21 ++++++++---------- 5 files changed, 45 insertions(+), 64 deletions(-) diff --git a/src/calibre/gui2/store/stores/amazon_de_plugin.py b/src/calibre/gui2/store/stores/amazon_de_plugin.py index cecb9176ee..898746dfd2 100644 --- a/src/calibre/gui2/store/stores/amazon_de_plugin.py +++ b/src/calibre/gui2/store/stores/amazon_de_plugin.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from __future__ import (unicode_literals, division, absolute_import, print_function) -store_version = 5 # Needed for dynamic plugin loading +store_version = 6 # Needed for dynamic plugin loading __license__ = 'GPL 3' __copyright__ = '2011, John Schember ' @@ -52,7 +52,6 @@ class AmazonDEKindleStore(StorePlugin): def search(self, query, max_results=10, timeout=60): url = self.search_url + query.encode('ascii', 'backslashreplace').replace('%', '%25').replace('\\x', '%').replace(' ', '+') - #print(url) br = browser() counter = max_results @@ -89,17 +88,15 @@ class AmazonDEKindleStore(StorePlugin): '//span[contains(@class, "lrg") and contains(@class, "bld")]/text()') elif doc.xpath('//div[@id = "atfResults" and contains(@class, "list")]'): #print('list form') - data_xpath = '//div[contains(@class, "prod")]' + data_xpath = '//li[@class="s-result-item"]' format_xpath = ( - './/ul[contains(@class, "rsltL")]' - '//span[contains(@class, "lrg") and not(contains(@class, "bld"))]/text()') - asin_xpath = '@name' - cover_xpath = './/img[contains(@class, "productImage")]/@src' - title_xpath = './/h3[@class="newaps"]/a//text()' - author_xpath = './/h3[@class="newaps"]//span[contains(@class, "reg")]//text()' - price_xpath = ( - './/ul[contains(@class, "rsltL")]' - '//span[contains(@class, "lrg") and contains(@class, "bld")]/text()') + './/h3[contains(@class, "s-inline")]/text()') + asin_xpath = '@data-asin' + cover_xpath = './/img[contains(@class, "cfMarker")]/@src' + title_xpath = './/h2[contains(@class, "s-access-title")]/text()' + author_xpath = ('.//div[contains(@class, "a-fixed-left-grid-col")]' + '/div/div/span//text()') + price_xpath = ('.//span[contains(@class, "s-price")]/text()') else: # URK -- whats this? print('unknown result table form for Amazon EU search') @@ -156,4 +153,3 @@ class AmazonDEKindleStore(StorePlugin): def get_details(self, search_result, timeout): pass - diff --git a/src/calibre/gui2/store/stores/amazon_es_plugin.py b/src/calibre/gui2/store/stores/amazon_es_plugin.py index f4b170cbe3..f094b34f48 100644 --- a/src/calibre/gui2/store/stores/amazon_es_plugin.py +++ b/src/calibre/gui2/store/stores/amazon_es_plugin.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from __future__ import (unicode_literals, division, absolute_import, print_function) -store_version = 5 # Needed for dynamic plugin loading +store_version = 6 # Needed for dynamic plugin loading __license__ = 'GPL 3' __copyright__ = '2011, John Schember ' @@ -51,7 +51,6 @@ class AmazonESKindleStore(StorePlugin): def search(self, query, max_results=10, timeout=60): url = self.search_url + query.encode('ascii', 'backslashreplace').replace('%', '%25').replace('\\x', '%').replace(' ', '+') - #print(url) br = browser() counter = max_results @@ -88,17 +87,15 @@ class AmazonESKindleStore(StorePlugin): '//span[contains(@class, "lrg") and contains(@class, "bld")]/text()') elif doc.xpath('//div[@id = "atfResults" and contains(@class, "list")]'): #print('list form') - data_xpath = '//div[contains(@class, "prod")]' + data_xpath = '//li[@class="s-result-item"]' format_xpath = ( - './/ul[contains(@class, "rsltL")]' - '//span[contains(@class, "lrg") and not(contains(@class, "bld"))]/text()') - asin_xpath = '@name' - cover_xpath = './/img[contains(@class, "productImage")]/@src' - title_xpath = './/h3[@class="newaps"]/a//text()' - author_xpath = './/h3[@class="newaps"]//span[contains(@class, "reg")]//text()' - price_xpath = ( - './/ul[contains(@class, "rsltL")]' - '//span[contains(@class, "lrg") and contains(@class, "bld")]/text()') + './/h3[contains(@class, "s-inline")]/text()') + asin_xpath = '@data-asin' + cover_xpath = './/img[contains(@class, "cfMarker")]/@src' + title_xpath = './/h2[contains(@class, "s-access-title")]/text()' + author_xpath = ('.//div[contains(@class, "a-fixed-left-grid-col")]' + '/div/div/span//text()') + price_xpath = ('.//span[contains(@class, "s-price")]/text()') else: # URK -- whats this? print('unknown result table form for Amazon EU search') @@ -155,4 +152,3 @@ class AmazonESKindleStore(StorePlugin): def get_details(self, search_result, timeout): pass - diff --git a/src/calibre/gui2/store/stores/amazon_fr_plugin.py b/src/calibre/gui2/store/stores/amazon_fr_plugin.py index 81c95b03c9..f953ab4802 100644 --- a/src/calibre/gui2/store/stores/amazon_fr_plugin.py +++ b/src/calibre/gui2/store/stores/amazon_fr_plugin.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from __future__ import (unicode_literals, division, absolute_import, print_function) -store_version = 5 # Needed for dynamic plugin loading +store_version = 6 # Needed for dynamic plugin loading __license__ = 'GPL 3' __copyright__ = '2011, John Schember ' @@ -48,7 +48,6 @@ class AmazonFRKindleStore(StorePlugin): def search(self, query, max_results=10, timeout=60): url = self.search_url + query.encode('ascii', 'backslashreplace').replace('%', '%25').replace('\\x', '%').replace(' ', '+') - #print(url) br = browser() counter = max_results @@ -85,17 +84,15 @@ class AmazonFRKindleStore(StorePlugin): '//span[contains(@class, "lrg") and contains(@class, "bld")]/text()') elif doc.xpath('//div[@id = "atfResults" and contains(@class, "list")]'): #print('list form') - data_xpath = '//div[contains(@class, "prod")]' + data_xpath = '//li[@class="s-result-item"]' format_xpath = ( - './/ul[contains(@class, "rsltL")]' - '//span[contains(@class, "lrg") and not(contains(@class, "bld"))]/text()') - asin_xpath = '@name' - cover_xpath = './/img[contains(@class, "productImage")]/@src' - title_xpath = './/h3[@class="newaps"]/a//text()' - author_xpath = './/h3[@class="newaps"]//span[contains(@class, "reg")]//text()' - price_xpath = ( - './/ul[contains(@class, "rsltL")]' - '//span[contains(@class, "lrg") and contains(@class, "bld")]/text()') + './/h3[contains(@class, "s-inline")]/text()') + asin_xpath = '@data-asin' + cover_xpath = './/img[contains(@class, "cfMarker")]/@src' + title_xpath = './/h2[contains(@class, "s-access-title")]/text()' + author_xpath = ('.//div[contains(@class, "a-fixed-left-grid-col")]' + '/div/div/span//text()') + price_xpath = ('.//span[contains(@class, "s-price")]/text()') else: # URK -- whats this? print('unknown result table form for Amazon EU search') @@ -152,4 +149,3 @@ class AmazonFRKindleStore(StorePlugin): def get_details(self, search_result, timeout): pass - diff --git a/src/calibre/gui2/store/stores/amazon_it_plugin.py b/src/calibre/gui2/store/stores/amazon_it_plugin.py index 99c738b40d..bcbbd4c384 100644 --- a/src/calibre/gui2/store/stores/amazon_it_plugin.py +++ b/src/calibre/gui2/store/stores/amazon_it_plugin.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from __future__ import (unicode_literals, division, absolute_import, print_function) -store_version = 5 # Needed for dynamic plugin loading +store_version = 6 # Needed for dynamic plugin loading __license__ = 'GPL 3' __copyright__ = '2011, John Schember ' @@ -51,7 +51,6 @@ class AmazonITKindleStore(StorePlugin): def search(self, query, max_results=10, timeout=60): url = self.search_url + query.encode('ascii', 'backslashreplace').replace('%', '%25').replace('\\x', '%').replace(' ', '+') - #print(url) br = browser() counter = max_results @@ -88,17 +87,15 @@ class AmazonITKindleStore(StorePlugin): '//span[contains(@class, "lrg") and contains(@class, "bld")]/text()') elif doc.xpath('//div[@id = "atfResults" and contains(@class, "list")]'): #print('list form') - data_xpath = '//div[contains(@class, "prod")]' + data_xpath = '//li[@class="s-result-item"]' format_xpath = ( - './/ul[contains(@class, "rsltL")]' - '//span[contains(@class, "lrg") and not(contains(@class, "bld"))]/text()') - asin_xpath = '@name' - cover_xpath = './/img[contains(@class, "productImage")]/@src' - title_xpath = './/h3[@class="newaps"]/a//text()' - author_xpath = './/h3[@class="newaps"]//span[contains(@class, "reg")]//text()' - price_xpath = ( - './/ul[contains(@class, "rsltL")]' - '//span[contains(@class, "lrg") and contains(@class, "bld")]/text()') + './/h3[contains(@class, "s-inline")]/text()') + asin_xpath = '@data-asin' + cover_xpath = './/img[contains(@class, "cfMarker")]/@src' + title_xpath = './/h2[contains(@class, "s-access-title")]/text()' + author_xpath = ('.//div[contains(@class, "a-fixed-left-grid-col")]' + '/div/div/span//text()') + price_xpath = ('.//span[contains(@class, "s-price")]/text()') else: # URK -- whats this? print('unknown result table form for Amazon EU search') @@ -155,4 +152,3 @@ class AmazonITKindleStore(StorePlugin): def get_details(self, search_result, timeout): pass - diff --git a/src/calibre/gui2/store/stores/amazon_uk_plugin.py b/src/calibre/gui2/store/stores/amazon_uk_plugin.py index 6908df6dd9..460c8973c1 100644 --- a/src/calibre/gui2/store/stores/amazon_uk_plugin.py +++ b/src/calibre/gui2/store/stores/amazon_uk_plugin.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from __future__ import (unicode_literals, division, absolute_import, print_function) -store_version = 5 # Needed for dynamic plugin loading +store_version = 6 # Needed for dynamic plugin loading __license__ = 'GPL 3' __copyright__ = '2011, John Schember ' @@ -55,7 +55,6 @@ class AmazonUKKindleStore(StorePlugin): def search(self, query, max_results=10, timeout=60): url = self.search_url + query.encode('ascii', 'backslashreplace').replace('%', '%25').replace('\\x', '%').replace(' ', '+') - #print(url) br = browser() counter = max_results @@ -92,17 +91,15 @@ class AmazonUKKindleStore(StorePlugin): '//span[contains(@class, "lrg") and contains(@class, "bld")]/text()') elif doc.xpath('//div[@id = "atfResults" and contains(@class, "list")]'): #print('list form') - data_xpath = '//div[contains(@class, "prod")]' + data_xpath = '//li[@class="s-result-item"]' format_xpath = ( - './/ul[contains(@class, "rsltL")]' - '//span[contains(@class, "lrg") and not(contains(@class, "bld"))]/text()') - asin_xpath = '@name' - cover_xpath = './/img[contains(@class, "productImage")]/@src' - title_xpath = './/h3[@class="newaps"]/a//text()' - author_xpath = './/h3[@class="newaps"]//span[contains(@class, "reg")]//text()' - price_xpath = ( - './/ul[contains(@class, "rsltL")]' - '//span[contains(@class, "lrg") and contains(@class, "bld")]/text()') + './/h3[contains(@class, "s-inline")]/text()') + asin_xpath = '@data-asin' + cover_xpath = './/img[contains(@class, "cfMarker")]/@src' + title_xpath = './/h2[contains(@class, "s-access-title")]/text()' + author_xpath = ('.//div[contains(@class, "a-fixed-left-grid-col")]' + '/div/div/span//text()') + price_xpath = ('.//span[contains(@class, "s-price")]/text()') else: # URK -- whats this? print('unknown result table form for Amazon EU search')