readwise 0.1.0 → 0.2.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
2
  SHA256:
3
- metadata.gz: 60dff970e4d8c8989265de5ff247010545019f0ca9f9f93f027726de8dda5755
4
- data.tar.gz: 5c4ad097f466e5adf35424dc07f51d45865ea325d3fa455f17c8d0d2290fa6e7
3
+ metadata.gz: 77088f2664c1f2d285ed893bd5ef67d313971e75bfafcd5eaebb6f2e05177e62
4
+ data.tar.gz: 472f2d70b184549e9be6232399f821e5b7f99a24f964d716fcec913ec7cae5bb
5
5
  SHA512:
6
- metadata.gz: 63f00184411add2fb4403ebf67cf1fcc89a677ec84826524a92be7fce52d46bf53d2a654db17d9f04e1a89eb15ac938e7ff6ebb861e0c2931ca1d65c1803f247
7
- data.tar.gz: 301c9c0f4bf4a810bf62a2f1a2f116f56969535c71c7b4811192be20db1c9bdba71d74962252930f6d2e85b77bcffb1e29610f311fbffd03f07f6913fcb54514
6
+ metadata.gz: 1fd02d43c7ee4d4e5a47582abc46eecd25c1df344bc848df2b56bac9f6290a5a6e814432443d8f6884a6066b04713f166a3db1b022122edbf9fc0e68fdfd413b
7
+ data.tar.gz: 0e261d0744c012b2b0b9d80b77f1ee5b8e22f5e908681b41d8b0aef587771abc3d66244d4eb869ba1336dad4bf0ac3dd638c1d782f37ed18b9bcf82d1f2b6710
@@ -0,0 +1,3 @@
1
+ # These are supported funding model platforms
2
+
3
+ github: andjosh
data/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.2.0] - 2023-02-20
6
+
7
+ - Add support for `Book.note` ([#4](https://github.com/andjosh/readwise-ruby/pull/4))
8
+
5
9
  ## [0.1.0] - 2023-01-16
6
10
 
7
11
  - Initial release
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- readwise (0.1.0)
4
+ readwise (0.2.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -17,6 +17,8 @@ GEM
17
17
  rspec-expectations (3.12.2)
18
18
  diff-lcs (>= 1.2.0, < 2.0)
19
19
  rspec-support (~> 3.12.0)
20
+ rspec-file_fixtures (0.1.6)
21
+ rspec (~> 3.0)
20
22
  rspec-mocks (3.12.2)
21
23
  diff-lcs (>= 1.2.0, < 2.0)
22
24
  rspec-support (~> 3.12.0)
@@ -26,10 +28,11 @@ PLATFORMS
26
28
  ruby
27
29
 
28
30
  DEPENDENCIES
29
- bundler (~> 1.17)
31
+ bundler (~> 2.4.4)
30
32
  rake (~> 10.0)
31
33
  readwise!
32
34
  rspec (~> 3.0)
35
+ rspec-file_fixtures (~> 0.1.6)
33
36
 
34
37
  BUNDLED WITH
35
- 1.17.2
38
+ 2.4.4
data/README.md CHANGED
@@ -28,7 +28,7 @@ First, obtain an API access token from https://readwise.io/access_token.
28
28
  client = Readwise::Client.new(token: token)
29
29
 
30
30
  books = client.export # export all highlights
31
- books = client.export(updated_after: '2023-01-01') # export recent highlights
31
+ books = client.export(updated_after: '2023-01-17T22:02:48Z') # export recent highlights
32
32
  books = client.export(book_ids: ['123']) # export specific highlights
33
33
 
34
34
  puts books.first.title # books are Readwise::Book structs
data/lib/readwise/book.rb CHANGED
@@ -9,6 +9,7 @@ module Readwise
9
9
  :category,
10
10
  :cover_image_url,
11
11
  :highlights,
12
+ :note,
12
13
  :readable_title,
13
14
  :readwise_url,
14
15
  :source,
@@ -35,20 +35,7 @@ module Readwise
35
35
  private
36
36
 
37
37
  def export_page(page_cursor: nil, updated_after: nil, book_ids: [])
38
- params = {}
39
- params['updatedAfter'] = updated_after if updated_after
40
- params['ids'] = book_ids if book_ids.any?
41
- params['pageCursor'] = page_cursor if page_cursor
42
- url = 'https://readwise.io/api/v2/export/?' + URI.encode_www_form(params)
43
- export_uri = URI.parse(url)
44
- export_req = Net::HTTP::Get.new(export_uri)
45
- export_req['Authorization'] = "Token #{@token}"
46
- export_res = Net::HTTP.start(export_uri.hostname, export_uri.port, use_ssl: true) do |http|
47
- http.request(export_req)
48
- end
49
- raise Error, 'Export request failed' unless export_res.is_a?(Net::HTTPSuccess)
50
-
51
- parsed_body = JSON.parse(export_res.body)
38
+ parsed_body = get_export_page(page_cursor: page_cursor, updated_after: updated_after, book_ids: book_ids)
52
39
  results = parsed_body.dig('results').map do |item|
53
40
  Book.new(
54
41
  asin: item['asin'],
@@ -56,6 +43,7 @@ module Readwise
56
43
  book_id: item['user_book_id'].to_s,
57
44
  category: item['category'],
58
45
  cover_image_url: item['cover_image_url'],
46
+ note: item['document_note'],
59
47
  readable_title: item['readable_title'],
60
48
  readwise_url: item['readwise_url'],
61
49
  source: item['source'],
@@ -91,5 +79,22 @@ module Readwise
91
79
  next_page_cursor: parsed_body.dig('nextPageCursor')
92
80
  }
93
81
  end
82
+
83
+ def get_export_page(page_cursor: nil, updated_after: nil, book_ids: [])
84
+ params = {}
85
+ params['updatedAfter'] = updated_after if updated_after
86
+ params['ids'] = book_ids if book_ids.any?
87
+ params['pageCursor'] = page_cursor if page_cursor
88
+ url = 'https://readwise.io/api/v2/export/?' + URI.encode_www_form(params)
89
+ export_uri = URI.parse(url)
90
+ export_req = Net::HTTP::Get.new(export_uri)
91
+ export_req['Authorization'] = "Token #{@token}"
92
+ export_res = Net::HTTP.start(export_uri.hostname, export_uri.port, use_ssl: true) do |http|
93
+ http.request(export_req)
94
+ end
95
+ raise Error, 'Export request failed' unless export_res.is_a?(Net::HTTPSuccess)
96
+
97
+ JSON.parse(export_res.body)
98
+ end
94
99
  end
95
100
  end
@@ -1,3 +1,3 @@
1
1
  module Readwise
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
data/readwise.gemspec CHANGED
@@ -36,7 +36,8 @@ Gem::Specification.new do |spec|
36
36
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
37
37
  spec.require_paths = ["lib"]
38
38
 
39
- spec.add_development_dependency "bundler", "~> 1.17"
39
+ spec.add_development_dependency "bundler", "~> 2.4.4"
40
40
  spec.add_development_dependency "rake", "~> 10.0"
41
41
  spec.add_development_dependency "rspec", "~> 3.0"
42
+ spec.add_development_dependency "rspec-file_fixtures", "~> 0.1.6"
42
43
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: readwise
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Beckman
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-16 00:00:00.000000000 Z
11
+ date: 2023-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.17'
19
+ version: 2.4.4
20
20
  type: :development
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: '1.17'
26
+ version: 2.4.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec-file_fixtures
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.1.6
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.1.6
55
69
  description: Minimal Readwise API client and highlight parsing library
56
70
  email:
57
71
  - josh@joshbeckman.org
@@ -59,6 +73,7 @@ executables: []
59
73
  extensions: []
60
74
  extra_rdoc_files: []
61
75
  files:
76
+ - ".github/FUNDING.yml"
62
77
  - ".gitignore"
63
78
  - CHANGELOG.md
64
79
  - CODE_OF_CONDUCT.md
@@ -83,7 +98,7 @@ metadata:
83
98
  homepage_uri: https://github.com/andjosh/readwise-ruby
84
99
  source_code_uri: https://github.com/andjosh/readwise-ruby
85
100
  changelog_uri: https://github.com/andjosh/readwise-ruby/blob/main/CHANGELOG.md
86
- post_install_message:
101
+ post_install_message:
87
102
  rdoc_options: []
88
103
  require_paths:
89
104
  - lib
@@ -98,8 +113,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
113
  - !ruby/object:Gem::Version
99
114
  version: '0'
100
115
  requirements: []
101
- rubygems_version: 3.0.3.1
102
- signing_key:
116
+ rubygems_version: 3.4.2
117
+ signing_key:
103
118
  specification_version: 4
104
119
  summary: Readwise API client
105
120
  test_files: []