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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a99868804efd9ff06b468dde7737343e670b437f
4
- data.tar.gz: 77f17af6ee2cdb31f793b7788b11af8290c836be
3
+ metadata.gz: 5b8fb2373d35f8a086b376ea31e32d0013f41d05
4
+ data.tar.gz: 64c87940ce9533498f7f2bb29064021ce2923a86
5
5
  SHA512:
6
- metadata.gz: 167d779ab88d5373210151e9a3352e548aca915f9f24d98948a06974c78ebd395ac2e3971cbc8ad1ced4c9a6e6b3e6d781303b3cf4d9f965d5d40aa6af28dd4e
7
- data.tar.gz: 23c651618b5828a74ec7304782958b66e8dca51e8cbbc7c7041d95e5f6f6fb9864e5f63bb00bb35ca34e1baf7a24e0b1525494d93fe1130893c42f7f1fd8b775
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
+ ![kindle_manager_fetch](https://cloud.githubusercontent.com/assets/275284/25068993/e3792780-22ae-11e7-9040-3a91d6b3dd08.gif)
11
+
12
+ ##### Load books information
13
+
14
+ ![kindle_manager_load_books](https://cloud.githubusercontent.com/assets/275284/25068999/139b3994-22af-11e7-9e57-3cd217fa82eb.gif)
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)`
@@ -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.5"
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
- begin
10
- @client = AmazonAuth::Client.new(@options)
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
- session.all('a').find{|e| e['href'] =~ %r{/gp/digital/fiona/manage/} }.click
61
- wait_for_selector('.navHeader_myx', 5)
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 <= 12 # max attempts
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
@@ -1,3 +1,3 @@
1
1
  module KindleManager
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
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.4
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-04-16 00:00:00.000000000 Z
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.5
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.5
26
+ version: 0.2.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement