kindle_manager 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
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