kindle_manager 0.1.3 → 0.1.4
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/.gitignore +1 -0
- data/README.md +10 -0
- data/kindle_manager.gemspec +1 -1
- data/lib/kindle_manager/client.rb +24 -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: a99868804efd9ff06b468dde7737343e670b437f
|
4
|
+
data.tar.gz: 77f17af6ee2cdb31f793b7788b11af8290c836be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 167d779ab88d5373210151e9a3352e548aca915f9f24d98948a06974c78ebd395ac2e3971cbc8ad1ced4c9a6e6b3e6d781303b3cf4d9f965d5d40aa6af28dd4e
|
7
|
+
data.tar.gz: 23c651618b5828a74ec7304782958b66e8dca51e8cbbc7c7041d95e5f6f6fb9864e5f63bb00bb35ca34e1baf7a24e0b1525494d93fe1130893c42f7f1fd8b775
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -57,6 +57,16 @@ Debug print: `client = KindleManager::Client.new(debug: true)`
|
|
57
57
|
|
58
58
|
Limit fetching with number of fetched books: `client = KindleManager::Client.new(limit: 100)`
|
59
59
|
|
60
|
+
Change sleep duration on scrolling (default 3 seconds): `client = KindleManager::Client.new(fetching_interval: 5)`
|
61
|
+
|
62
|
+
##### Options of amazon_auth gem
|
63
|
+
|
64
|
+
Chrome driver: `driver: :chrome`
|
65
|
+
|
66
|
+
Renew the directory for downloading: `create: true`
|
67
|
+
|
68
|
+
Login and password: `login: 'xxx', password: 'yyy'`
|
69
|
+
|
60
70
|
## Development
|
61
71
|
|
62
72
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
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.1.5"
|
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"
|
@@ -7,10 +7,9 @@ module KindleManager
|
|
7
7
|
@limit = options.fetch(:limit, nil)
|
8
8
|
@options = options
|
9
9
|
begin
|
10
|
-
@client = AmazonAuth::Client.new
|
10
|
+
@client = AmazonAuth::Client.new(@options)
|
11
11
|
rescue => e
|
12
12
|
puts "Please setup credentials of amazon_auth gem with folloing its instruction."
|
13
|
-
puts
|
14
13
|
raise e
|
15
14
|
end
|
16
15
|
end
|
@@ -23,9 +22,14 @@ module KindleManager
|
|
23
22
|
@store ||= KindleManager::FileStore.new(@options)
|
24
23
|
end
|
25
24
|
|
25
|
+
def setup_file_store
|
26
|
+
store.session = session
|
27
|
+
log "Directory for downloaded pages is #{store.base_dir}"
|
28
|
+
end
|
29
|
+
|
26
30
|
def fetch_kindle_list
|
27
31
|
sign_in
|
28
|
-
|
32
|
+
setup_file_store
|
29
33
|
go_to_kindle_management_page
|
30
34
|
begin
|
31
35
|
load_next_kindle_list
|
@@ -50,13 +54,13 @@ module KindleManager
|
|
50
54
|
end
|
51
55
|
|
52
56
|
def go_to_kindle_management_page
|
53
|
-
|
57
|
+
log "Visiting kindle management page"
|
54
58
|
wait_for_selector('#shopAllLinks', 5)
|
55
59
|
3.times do
|
56
60
|
session.all('a').find{|e| e['href'] =~ %r{/gp/digital/fiona/manage/} }.click
|
57
61
|
wait_for_selector('.navHeader_myx', 5)
|
58
62
|
if session.first('.navHeader_myx')
|
59
|
-
|
63
|
+
log "Page found '#{session.first('.navHeader_myx').text}'"
|
60
64
|
break
|
61
65
|
end
|
62
66
|
end
|
@@ -72,19 +76,19 @@ module KindleManager
|
|
72
76
|
snapshot_page
|
73
77
|
@current_loop = 0
|
74
78
|
|
75
|
-
|
79
|
+
log "Clicking 'Show More'"
|
76
80
|
session.execute_script "window.scrollBy(0,-800)"
|
77
81
|
show_more_button.click
|
78
82
|
sleep 1
|
79
83
|
raise('Clicking of more button may have failed') if has_more_button?
|
80
84
|
else
|
81
|
-
|
85
|
+
log "Loading books with scrolling #{@current_loop+1}"
|
82
86
|
session.execute_script "window.scrollBy(0,10000)"
|
83
87
|
end
|
84
|
-
sleep
|
88
|
+
sleep fetching_interval
|
85
89
|
@current_loop += 1
|
86
90
|
end
|
87
|
-
|
91
|
+
log "Stopped loading"
|
88
92
|
snapshot_page
|
89
93
|
end
|
90
94
|
|
@@ -117,12 +121,18 @@ module KindleManager
|
|
117
121
|
end
|
118
122
|
|
119
123
|
def snapshot_page
|
124
|
+
log "Current page [#{session.first('.contentCount_myx').text}]" if session.first('.contentCount_myx')
|
120
125
|
store.record_page
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
+
log "Saving page"
|
127
|
+
end
|
128
|
+
|
129
|
+
def fetching_interval
|
130
|
+
@options.fetch(:fetching_interval, 3)
|
131
|
+
end
|
132
|
+
|
133
|
+
def log(message)
|
134
|
+
return unless @debug
|
135
|
+
puts "[#{Time.current.strftime('%Y-%m-%d %H:%M:%S')}] #{message}"
|
126
136
|
end
|
127
137
|
end
|
128
138
|
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.4
|
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-04-
|
11
|
+
date: 2017-04-16 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.1.5
|
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.1.5
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|