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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8e21142ae49913392aca984d1fc33a6f8878298c
4
- data.tar.gz: 4ee8fd51051964cc62ac951c84739551c075abea
3
+ metadata.gz: a99868804efd9ff06b468dde7737343e670b437f
4
+ data.tar.gz: 77f17af6ee2cdb31f793b7788b11af8290c836be
5
5
  SHA512:
6
- metadata.gz: 7f6be01eceada63439d9f01ad3df52f5d274ce910a54e18f7e82bf970acee921fa11ae4b79e701ada34803a6d18478b76b789ef542c764bf588121c4d794e2d7
7
- data.tar.gz: aaa9bb3070c842e6e4f279188f2c8e0cb953b7f289acc4cfdd0003b9ebe052373c7cacb87d6e7f3cceb6590ae770888f7b915b58f3233d268bd4b1d478367048
6
+ metadata.gz: 167d779ab88d5373210151e9a3352e548aca915f9f24d98948a06974c78ebd395ac2e3971cbc8ad1ced4c9a6e6b3e6d781303b3cf4d9f965d5d40aa6af28dd4e
7
+ data.tar.gz: 23c651618b5828a74ec7304782958b66e8dca51e8cbbc7c7041d95e5f6f6fb9864e5f63bb00bb35ca34e1baf7a24e0b1525494d93fe1130893c42f7f1fd8b775
data/.gitignore CHANGED
@@ -9,6 +9,7 @@
9
9
  /tmp/
10
10
  /.env
11
11
  /.byebug_history
12
+ /.ruby-version
12
13
  /downloads/
13
14
  /spec/fixtures/files/
14
15
 
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.
@@ -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.3"
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
- store.session = session
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
- puts "Visiting kindle management page" if @debug
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
- puts "Page found '#{session.first('.navHeader_myx').text}'" if @debug
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
- puts "Clicking 'Show More'" if @debug
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
- puts "Loading books with scrolling #{@current_loop+1}" if @debug
85
+ log "Loading books with scrolling #{@current_loop+1}"
82
86
  session.execute_script "window.scrollBy(0,10000)"
83
87
  end
84
- sleep 5
88
+ sleep fetching_interval
85
89
  @current_loop += 1
86
90
  end
87
- puts "Stopped loading" if @debug
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
- if @debug
122
- puts "Saving page" + Time.current.strftime("%Y-%m-%d %H:%M:%S")
123
- puts session.first('.contentCount_myx').text if session.first('.contentCount_myx')
124
- puts
125
- end
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
@@ -1,3 +1,3 @@
1
1
  module KindleManager
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  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.3
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-12 00:00:00.000000000 Z
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.3
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.3
26
+ version: 0.1.5
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement