kindle_manager 0.6.1 → 0.7.0

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
- SHA1:
3
- metadata.gz: 711ab8f97ab4c5f962b36a9e94226f386462617c
4
- data.tar.gz: 9d467ac8a2ca5a70f729dd31784a86c841b7f1b2
2
+ SHA256:
3
+ metadata.gz: 38b4108ec337ceae8173babf86fb0adac4550f06f68aab4913228b411ff9ae85
4
+ data.tar.gz: d517f89c420a47a9403d2caafa476f83b6c9f7056dd0963a7ee096f5e3893507
5
5
  SHA512:
6
- metadata.gz: a6eb6f0d16cdd822d6b53d5ac9e466b2c173b982cb67619c37f5eb74e9579851ce994ec94cbc5ae7a1711954ca399493aa369ab14ec4fff36211a43589719fcc
7
- data.tar.gz: ba0e81a8d5738625c64a2d293b3b7643e5c0f680def61a26dc45c50d7f269c4c56c2f3fdbdbe3d37ce7992d0fcf462fe85740f0aaadb367ae3e174c24dfe66b5
6
+ metadata.gz: 55a646ff5b8d6c7487a83ae6468763b783e5787a91a4b12be622c90b603ebbe66a0ac39e4c18c9ad3038a5d4f7a54855ef53123e5db760f49678af37c29925ed
7
+ data.tar.gz: 69ae1b4a50c7708625f74b2aa027aee315e81103f06f14f24e4f0b216fdd81ca53d49fe9c1beea177e14b8d740b3df493dd0c5af440dee8b04d5bbddca79d38e
@@ -0,0 +1,21 @@
1
+ version: 2.1
2
+
3
+ jobs:
4
+ test:
5
+ parameters:
6
+ ruby-version:
7
+ type: string
8
+ docker:
9
+ - image: cimg/ruby:<< parameters.ruby-version >>-browsers
10
+ steps:
11
+ - checkout
12
+ - run: bundle install
13
+ - run: bundle exec rspec
14
+
15
+ workflows:
16
+ all-tests:
17
+ jobs:
18
+ - test:
19
+ matrix:
20
+ parameters:
21
+ ruby-version: ["2.7.5", "3.0.3"]
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # KindleManager
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/kindle_manager.svg)](https://badge.fury.io/rb/kindle_manager)
4
- [![Build Status](https://travis-ci.org/kyamaguchi/kindle_manager.svg?branch=master)](https://travis-ci.org/kyamaguchi/kindle_manager)
4
+ [![CircleCI](https://circleci.com/gh/kyamaguchi/kindle_manager.svg?style=svg)](https://circleci.com/gh/kyamaguchi/kindle_manager)
5
5
 
6
6
  Scrape information of kindle books & highlights from amazon site
7
7
 
@@ -34,7 +34,7 @@ Or install it yourself as:
34
34
 
35
35
  ### Setup
36
36
 
37
- [chromedriver](https://sites.google.com/a/chromium.org/chromedriver/downloads) is required. Please [download chromedriver](http://chromedriver.storage.googleapis.com/index.html) and update chromedriver regularly.
37
+ [chromedriver](https://sites.google.com/chromium.org/driver/) is required. Please [download chromedriver](https://chromedriver.storage.googleapis.com/index.html) and update chromedriver regularly.
38
38
 
39
39
  Create _.env_ following the instructions of https://github.com/kyamaguchi/amazon_auth
40
40
 
@@ -142,6 +142,11 @@ Login and password: `login: 'xxx', password: 'yyy'`
142
142
 
143
143
  Output debug log: `debug: true`
144
144
 
145
+ ## Issues
146
+
147
+ There may be problems with capybara 3.
148
+ Use older version with `gem 'capybara', '~> 2.18.0'` in that case.
149
+
145
150
  ## TODO
146
151
 
147
152
  - Limit the number of fetching books by date
@@ -21,9 +21,9 @@ 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.4.0"
25
- spec.add_development_dependency "bundler", "~> 1.14"
26
- spec.add_development_dependency "rake", "~> 10.0"
27
- spec.add_development_dependency "rspec", "~> 3.0"
24
+ spec.add_runtime_dependency "amazon_auth", "~> 0.6.0"
25
+ spec.add_development_dependency "bundler"
26
+ spec.add_development_dependency "rake"
27
+ spec.add_development_dependency "rspec"
28
28
  spec.add_development_dependency "byebug"
29
29
  end
@@ -1,5 +1,7 @@
1
1
  module KindleManager
2
2
  class BooksAdapter < BaseAdapter
3
+ URL_FOR_KINDLE_CONTENTS = 'https://www.amazon.co.jp/gp/digital/fiona/manage?ie=UTF8&ref_=nav_youraccount_myk'
4
+
3
5
  def fetch
4
6
  go_to_kindle_management_page
5
7
  begin
@@ -14,13 +16,11 @@ module KindleManager
14
16
 
15
17
  def go_to_kindle_management_page
16
18
  log "Visiting kindle management page"
17
- wait_for_selector('#shopAllLinks', wait_time: 5)
18
19
  3.times do
19
- link = links_for('#navFooter a').find{|link| link =~ %r{/gp/digital/fiona/manage/} }
20
- session.visit link
21
- wait_for_selector('.navHeader_myx')
22
- if session.first('.navHeader_myx')
23
- log "Page found '#{session.first('.navHeader_myx').text}'"
20
+ session.visit URL_FOR_KINDLE_CONTENTS
21
+ wait_for_selector('.navHeader_title_myx')
22
+ if session.has_css?('.navHeader_title_myx')
23
+ log "Page found '#{session.first('.navHeader_title_myx').text}'"
24
24
  break
25
25
  else
26
26
  submit_signin_form
@@ -41,8 +41,7 @@ module KindleManager
41
41
  log "Clicking 'Show More'"
42
42
  session.execute_script "window.scrollBy(0,-800)"
43
43
  show_more_button.click
44
- sleep 1
45
- raise('Clicking of more button may have failed') if has_more_button?
44
+ sleep fetching_interval
46
45
  else
47
46
  log "Loading books with scrolling #{current_loop+1}"
48
47
  session.execute_script "window.scrollBy(0,10000)"
@@ -79,7 +78,7 @@ module KindleManager
79
78
  end
80
79
 
81
80
  def show_more_button
82
- session.all('#contentTable_showMore_myx').find{|e| e['outerHTML'].match(/showmore_button/) }
81
+ session.all('.contentTableShowMore_myx').find{|e| e['outerHTML'].match(/cnt_shw_more/) }
83
82
  end
84
83
 
85
84
  def number_of_fetched_books
@@ -40,13 +40,18 @@ module KindleManager
40
40
  @_highlights_and_notes ||= begin
41
41
  # Excluding the first element which has book info
42
42
  @node.css('.a-spacing-base')[1..-1].map do |node|
43
- location = node.css('#kp-annotation-location').first['value'].to_i
44
- highlight_node = node.css('.kp-notebook-highlight').first
45
- highlight = highlight_node && highlight_node.css('#highlight').first.text
46
- color = highlight_node && highlight_node['class'].split.find{|v| v =~ /kp-notebook-highlight-/ }.split('-').last
47
- note = node.css('#note').first.text
48
- {'location' => location, 'highlight' => highlight, 'color' => color, 'note' => note}
49
- end
43
+ begin
44
+ location = node.css('#kp-annotation-location').first['value'].to_i
45
+ highlight_node = node.css('.kp-notebook-highlight').first
46
+ highlight = highlight_node && highlight_node.css('#highlight').first.text
47
+ color = highlight_node && highlight_node['class'].split.find{|v| v =~ /kp-notebook-highlight-/ }.split('-').last
48
+ note = node.css('#note').first.text
49
+ {'location' => location, 'highlight' => highlight, 'color' => color, 'note' => note}
50
+ rescue => e
51
+ puts "[DEBUG] #{e.class}: #{e.message}\n#{node.to_html}\n"
52
+ next
53
+ end
54
+ end.compact
50
55
  end
51
56
  end
52
57
 
@@ -1,3 +1,3 @@
1
1
  module KindleManager
2
- VERSION = "0.6.1"
2
+ VERSION = "0.7.0"
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.6.1
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuho Yamaguchi
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-08-09 00:00:00.000000000 Z
11
+ date: 2021-12-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: amazon_auth
@@ -16,56 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.4.0
19
+ version: 0.6.0
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.4.0
26
+ version: 0.6.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '1.14'
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '1.14'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '10.0'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '10.0'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '3.0'
61
+ version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '3.0'
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: byebug
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -87,9 +87,9 @@ executables: []
87
87
  extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
+ - ".circleci/config.yml"
90
91
  - ".gitignore"
91
92
  - ".rspec"
92
- - ".travis.yml"
93
93
  - Gemfile
94
94
  - LICENSE.txt
95
95
  - README.md
@@ -112,7 +112,7 @@ homepage: https://github.com/kyamaguchi/kindle_manager
112
112
  licenses:
113
113
  - MIT
114
114
  metadata: {}
115
- post_install_message:
115
+ post_install_message:
116
116
  rdoc_options: []
117
117
  require_paths:
118
118
  - lib
@@ -127,9 +127,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
127
127
  - !ruby/object:Gem::Version
128
128
  version: '0'
129
129
  requirements: []
130
- rubyforge_project:
131
- rubygems_version: 2.6.11
132
- signing_key:
130
+ rubygems_version: 3.1.6
131
+ signing_key:
133
132
  specification_version: 4
134
133
  summary: Scrape information of kindle books from amazon site
135
134
  test_files: []
data/.travis.yml DELETED
@@ -1,7 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.2.7
5
- - 2.3.4
6
- - 2.4.1
7
- before_install: gem install bundler -v 1.14.6