Merge lp:~user-none/calibre/store into lp:calibre

Proposed by John Schember
Status: Merged
Merged at revision: 12591
Proposed branch: lp:~user-none/calibre/store
Merge into: lp:calibre
Diff against target: 74 lines (+17/-22)
2 files modified
src/calibre/customize/builtins.py (+1/-1)
src/calibre/gui2/store/stores/foyles_uk_plugin.py (+16/-21)
To merge this branch: bzr merge lp:~user-none/calibre/store
Reviewer Review Type Date Requested Status
Kovid Goyal Pending
Review via email: mp+113139@code.launchpad.net
To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/calibre/customize/builtins.py'
2--- src/calibre/customize/builtins.py 2012-07-02 09:01:19 +0000
3+++ src/calibre/customize/builtins.py 2012-07-03 02:04:28 +0000
4@@ -1203,7 +1203,7 @@
5 description = u'Tous les ebooks Kindle'
6 actual_plugin = 'calibre.gui2.store.stores.amazon_fr_plugin:AmazonFRKindleStore'
7
8- headquarters = 'DE'
9+ headquarters = 'FR'
10 formats = ['KINDLE']
11 affiliate = True
12
13
14=== modified file 'src/calibre/gui2/store/stores/foyles_uk_plugin.py'
15--- src/calibre/gui2/store/stores/foyles_uk_plugin.py 2012-04-29 08:39:09 +0000
16+++ src/calibre/gui2/store/stores/foyles_uk_plugin.py 2012-07-03 02:04:28 +0000
17@@ -40,32 +40,27 @@
18 d.exec_()
19
20 def search(self, query, max_results=10, timeout=60):
21- url = 'http://www.foyles.co.uk/Public/Shop/Search.aspx?fFacetId=1015&searchBy=1&quick=true&term=' + urllib2.quote(query)
22+ url = 'http://ebooks.foyles.co.uk/search_for-' + urllib2.quote(query)
23
24 br = browser()
25
26 counter = max_results
27 with closing(br.open(url, timeout=timeout)) as f:
28 doc = html.fromstring(f.read())
29- for data in doc.xpath('//table[contains(@id, "MainContent")]/tr/td/div[contains(@class, "Item")]'):
30+ for data in doc.xpath('//div[@class="doc-item"]'):
31 if counter <= 0:
32 break
33- id = ''.join(data.xpath('.//a[@class="Title"]/@href')).strip()
34- if not id:
35- continue
36-
37- # filter out the audio books
38- if not data.xpath('boolean(.//div[@class="Relative"]/ul/li[contains(text(), "ePub")])'):
39- continue
40-
41- cover_url = ''.join(data.xpath('.//a[@class="Jacket"]/img/@src'))
42- title = ''.join(data.xpath('.//a[@class="Title"]/text()'))
43- author = ', '.join(data.xpath('.//span[@class="Author"]/text()'))
44- price = ''.join(data.xpath('./ul/li[@class="Strong"]/text()'))
45- mo = re.search('£[\d\.]+', price)
46- if mo is None:
47- continue
48- price = mo.group(0)
49+ id_ = ''.join(data.xpath('.//p[@class="doc-cover"]/a/@href')).strip()
50+ if not id_:
51+ continue
52+
53+ cover_url = ''.join(data.xpath('.//p[@class="doc-cover"]/a/img/@src'))
54+ title = ''.join(data.xpath('.//span[@class="title"]/a/text()'))
55+ author = ', '.join(data.xpath('.//span[@class="author"]/span[@class="author"]/text()'))
56+ price = ''.join(data.xpath('.//span[@class="price"]/text()'))
57+ format_ = ''.join(data.xpath('.//p[@class="doc-meta-format"]/span[last()]/text()'))
58+ format_, ign, drm = format_.partition(' ')
59+ drm = SearchResult.DRM_LOCKED if 'DRM' in drm else SearchResult.DRM_UNLOCKED
60
61 counter -= 1
62
63@@ -74,8 +69,8 @@
64 s.title = title.strip()
65 s.author = author.strip()
66 s.price = price
67- s.detail_item = id
68- s.drm = SearchResult.DRM_LOCKED
69- s.formats = 'ePub'
70+ s.detail_item = id_
71+ s.drm = drm
72+ s.formats = format_
73
74 yield s

Subscribers

People subscribed via source and target branches