kindle_manager 0.6.1 → 0.7.0

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
- 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