kindle_manager 0.1.4 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +19 -4
- data/kindle_manager.gemspec +1 -1
- data/lib/kindle_manager/client.rb +7 -14
- data/lib/kindle_manager/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b8fb2373d35f8a086b376ea31e32d0013f41d05
|
4
|
+
data.tar.gz: 64c87940ce9533498f7f2bb29064021ce2923a86
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: adeb1fe0f40a31dc3b12f2e8c1e8d7c4b5f6b047845bae7c7712491316bbcdb2036768d94312343248c4c52134b65f2eb1a0731657e739344322d5ced98c9046
|
7
|
+
data.tar.gz: a20f209e9e32f99ab630056d859fb4e447c9d2fecd1c25b595cced7b44aac83407e1212426171919875c4fd73e5b7c561a84bda17930f94c82d51e6c0d588156
|
data/README.md
CHANGED
@@ -5,6 +5,15 @@
|
|
5
5
|
|
6
6
|
Scrape information of kindle books from amazon site
|
7
7
|
|
8
|
+
##### Fetch Kindle Books information
|
9
|
+
|
10
|
+

|
11
|
+
|
12
|
+
##### Load books information
|
13
|
+
|
14
|
+

|
15
|
+
Recorded with [Recordit](http://recordit.co/)
|
16
|
+
|
8
17
|
## Installation
|
9
18
|
|
10
19
|
Add this line to your application's Gemfile:
|
@@ -37,20 +46,26 @@ And `Dotenv.load` or `gem 'dotenv-rails'` may be required when you use this in y
|
|
37
46
|
|
38
47
|
### Run
|
39
48
|
|
40
|
-
```
|
41
|
-
bin/console
|
42
|
-
```
|
43
|
-
|
44
49
|
In console
|
45
50
|
|
46
51
|
```
|
52
|
+
require 'kindle_manager'
|
47
53
|
client = KindleManager::Client.new(debug: true)
|
48
54
|
client.fetch_kindle_list
|
55
|
+
|
49
56
|
books = client.load_kindle_books
|
50
57
|
|
51
58
|
client.quit
|
52
59
|
```
|
53
60
|
|
61
|
+
Once `fetch_kindle_list` succeeds, you can load books information of downloaded pages anytime.
|
62
|
+
(You don't need to fetch pages with launching browser every time.)
|
63
|
+
|
64
|
+
```
|
65
|
+
client = KindleManager::Client.new
|
66
|
+
books = client.load_kindle_books
|
67
|
+
```
|
68
|
+
|
54
69
|
#### Options
|
55
70
|
|
56
71
|
Debug print: `client = KindleManager::Client.new(debug: true)`
|
data/kindle_manager.gemspec
CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
22
|
spec.require_paths = ["lib"]
|
23
23
|
|
24
|
-
spec.add_runtime_dependency "amazon_auth", "~> 0.1
|
24
|
+
spec.add_runtime_dependency "amazon_auth", "~> 0.2.1"
|
25
25
|
spec.add_development_dependency "bundler", "~> 1.14"
|
26
26
|
spec.add_development_dependency "rake", "~> 10.0"
|
27
27
|
spec.add_development_dependency "rspec", "~> 3.0"
|
@@ -6,12 +6,8 @@ module KindleManager
|
|
6
6
|
@debug = options.fetch(:debug, false)
|
7
7
|
@limit = options.fetch(:limit, nil)
|
8
8
|
@options = options
|
9
|
-
|
10
|
-
|
11
|
-
rescue => e
|
12
|
-
puts "Please setup credentials of amazon_auth gem with folloing its instruction."
|
13
|
-
raise e
|
14
|
-
end
|
9
|
+
@client = AmazonAuth::Client.new(@options)
|
10
|
+
extend(AmazonAuth::SessionExtension)
|
15
11
|
end
|
16
12
|
|
17
13
|
def session
|
@@ -55,10 +51,11 @@ module KindleManager
|
|
55
51
|
|
56
52
|
def go_to_kindle_management_page
|
57
53
|
log "Visiting kindle management page"
|
58
|
-
wait_for_selector('#shopAllLinks', 5)
|
54
|
+
wait_for_selector('#shopAllLinks', wait_time: 5)
|
59
55
|
3.times do
|
60
|
-
|
61
|
-
|
56
|
+
link = links_for('#navFooter a').find{|link| link =~ %r{/gp/digital/fiona/manage/} }
|
57
|
+
session.visit link
|
58
|
+
wait_for_selector('.navHeader_myx')
|
62
59
|
if session.first('.navHeader_myx')
|
63
60
|
log "Page found '#{session.first('.navHeader_myx').text}'"
|
64
61
|
break
|
@@ -69,7 +66,7 @@ module KindleManager
|
|
69
66
|
def load_next_kindle_list
|
70
67
|
wait_for_selector('.contentCount_myx')
|
71
68
|
@current_loop = 0
|
72
|
-
while @current_loop <=
|
69
|
+
while @current_loop <= 16 # max attempts
|
73
70
|
if @limit && @limit < number_of_fetched_books
|
74
71
|
break
|
75
72
|
elsif has_more_button?
|
@@ -96,10 +93,6 @@ module KindleManager
|
|
96
93
|
session.driver.quit
|
97
94
|
end
|
98
95
|
|
99
|
-
def wait_for_selector(selector, seconds = 3)
|
100
|
-
seconds.times { sleep(1) unless session.first(selector) }
|
101
|
-
end
|
102
|
-
|
103
96
|
def has_more_button?
|
104
97
|
!!show_more_button
|
105
98
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kindle_manager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kazuho Yamaguchi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: amazon_auth
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.1
|
19
|
+
version: 0.2.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.1
|
26
|
+
version: 0.2.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|