joplin 1.0.2 → 1.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.
data/joplin.gemspec CHANGED
@@ -3,22 +3,20 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
  require 'joplin/version'
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.name = 'joplin'
7
- spec.version = Joplin::VERSION
8
- spec.authors = ['Daniel Bretoi']
9
- spec.email = ['daniel@bretoi.com']
10
-
11
- spec.summary = 'joplin API'
12
- spec.description = 'joplin API'
13
- spec.homepage = 'http://github.com/danielb2/joplin-ruby'
14
- spec.license = 'MIT'
6
+ spec.name = 'joplin'
7
+ spec.version = Joplin::VERSION
8
+ spec.authors = ['Daniel Bretoi']
9
+ spec.email = ['daniel@bretoi.com']
10
+ spec.summary = 'joplin API'
11
+ spec.description = 'joplin API - joplin api tool, jp database tool'
12
+ spec.homepage = 'http://github.com/danielb2/joplin-ruby'
13
+ spec.license = 'MIT'
14
+ spec.required_ruby_version = '>=3.0.0'
15
15
 
16
16
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
17
17
  # to allow pushing to a single host or delete this section to allow pushing to any host.
18
18
  if spec.respond_to?(:metadata)
19
19
  spec.metadata['homepage_uri'] = spec.homepage
20
- spec.metadata['source_code_uri'] = 'http://github.com/danielb2/joplin-ruby'
21
- spec.metadata['changelog_uri'] = 'http://github.com/danielb2/joplin-ruby'
22
20
  else
23
21
  raise 'RubyGems 2.0 or newer is required to protect against ' \
24
22
  'public gem pushes.'
@@ -33,9 +31,13 @@ Gem::Specification.new do |spec|
33
31
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }.reject { |f| f =~ /(console|setup)/ }
34
32
  spec.require_paths = ['lib']
35
33
 
36
- spec.add_dependency 'http', '~> 5.1.1'
37
- spec.add_dependency 'sqlite3', '~> 1.6.3'
38
- spec.add_dependency 'thor', '~> 1.2.2'
34
+ spec.add_dependency 'http', '~> 6.0.3'
35
+ spec.add_dependency 'sqlite3', '~> 2.9.4'
36
+ spec.add_dependency 'thor', '~> 1.5.0'
37
+ spec.add_dependency 'colorize', '~> 1.1.0'
38
+ spec.add_dependency 'minitest', '~> 6.0.0'
39
+ spec.add_dependency 'amazing_print'
40
+ spec.add_dependency 'tty-markdown', '~> 0.7.2'
39
41
  spec.add_development_dependency 'bundler', '~> 2.0'
40
42
  spec.add_development_dependency 'rake', '~> 13.0'
41
43
  spec.add_development_dependency 'rspec', '~> 3.12.0'
@@ -1,3 +1,3 @@
1
1
  module Joplin
2
- VERSION = "1.0.2"
2
+ VERSION = "1.2.0"
3
3
  end
data/lib/joplin.rb CHANGED
@@ -42,7 +42,7 @@ module Joplin
42
42
 
43
43
  class Resource
44
44
  class NotFound < Joplin::Error; end
45
- attr_reader :id, :filename, :mime
45
+ attr_reader :id, :filename, :mime, :parsed
46
46
 
47
47
  def self.all
48
48
  url = "#{Joplin.uri}/resources/?token=#{Joplin.token}&fields=id,filename"
@@ -59,7 +59,7 @@ module Joplin
59
59
  raise Error, 'need id' unless id
60
60
 
61
61
  @id = id
62
- url = "#{Joplin.uri}/resources/#{id}?token=#{Joplin.token}&fields=mime,filename,id"
62
+ url = "#{Joplin.uri}/resources/#{id}?token=#{Joplin.token}&fields=mime,filename,id,created_time,file_extension,size"
63
63
  response = HTTP.get url
64
64
  raise NotFound, "No resource found with id: #{id}" if response.code == 404
65
65
 
@@ -205,10 +205,50 @@ module Joplin
205
205
  end
206
206
 
207
207
  def notes
208
- url = "#{Joplin.uri}/folders/#{@id}/notes?token=#{Joplin.token}"
209
- res = HTTP.get url
210
- notes = JSON.parse res.body
211
- notes.map! { |n| Joplin::Note.new n['id'] }
208
+ notes = []
209
+ page = 1
210
+
211
+ loop do
212
+ url = "#{Joplin.uri}/folders/#{@id}/notes?token=#{Joplin.token}&page=#{page}"
213
+ response = HTTP.get(url)
214
+
215
+ raise Error, "Failed to fetch notes: #{response}" if response.status != 200
216
+
217
+ data = JSON.parse(response.body)
218
+
219
+ items = data['items']
220
+ items.each { |note_data| notes << Joplin::Note.new(id: note_data['id']) }
221
+
222
+ break unless data['has_more']
223
+
224
+ page += 1
225
+ end
226
+
227
+ notes
228
+ end
229
+
230
+ def self.all
231
+ notebooks = []
232
+ page = 1
233
+
234
+ loop do
235
+ url = "#{Joplin.uri}/folders?token=#{Joplin.token}&page=#{page}"
236
+ response = HTTP.get(url)
237
+
238
+ raise Error, "Failed to fetch notebooks: #{response}" if response.status != 200
239
+
240
+ data = JSON.parse(response.body)
241
+ items = data['items']
242
+
243
+ break if items.empty?
244
+
245
+ # Collect Notebook instances
246
+ items.each { |notebook_data| notebooks << Notebook.new(notebook_data['id']) }
247
+
248
+ page += 1
249
+ end
250
+
251
+ notebooks
212
252
  end
213
253
  end
214
254
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: joplin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Bretoi
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2023-07-03 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: http
@@ -16,42 +15,98 @@ dependencies:
16
15
  requirements:
17
16
  - - "~>"
18
17
  - !ruby/object:Gem::Version
19
- version: 5.1.1
18
+ version: 6.0.3
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - "~>"
25
24
  - !ruby/object:Gem::Version
26
- version: 5.1.1
25
+ version: 6.0.3
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: sqlite3
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - "~>"
32
31
  - !ruby/object:Gem::Version
33
- version: 1.6.3
32
+ version: 2.9.4
34
33
  type: :runtime
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - "~>"
39
38
  - !ruby/object:Gem::Version
40
- version: 1.6.3
39
+ version: 2.9.4
41
40
  - !ruby/object:Gem::Dependency
42
41
  name: thor
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - "~>"
46
45
  - !ruby/object:Gem::Version
47
- version: 1.2.2
46
+ version: 1.5.0
48
47
  type: :runtime
49
48
  prerelease: false
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
51
  - - "~>"
53
52
  - !ruby/object:Gem::Version
54
- version: 1.2.2
53
+ version: 1.5.0
54
+ - !ruby/object:Gem::Dependency
55
+ name: colorize
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: 1.1.0
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: 1.1.0
68
+ - !ruby/object:Gem::Dependency
69
+ name: minitest
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: 6.0.0
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: 6.0.0
82
+ - !ruby/object:Gem::Dependency
83
+ name: amazing_print
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ - !ruby/object:Gem::Dependency
97
+ name: tty-markdown
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: 0.7.2
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: 0.7.2
55
110
  - !ruby/object:Gem::Dependency
56
111
  name: bundler
57
112
  requirement: !ruby/object:Gem::Requirement
@@ -94,11 +149,12 @@ dependencies:
94
149
  - - "~>"
95
150
  - !ruby/object:Gem::Version
96
151
  version: 3.12.0
97
- description: joplin API
152
+ description: joplin API - joplin api tool, jp database tool
98
153
  email:
99
154
  - daniel@bretoi.com
100
155
  executables:
101
156
  - joplin
157
+ - jp
102
158
  extensions: []
103
159
  extra_rdoc_files: []
104
160
  files:
@@ -112,6 +168,7 @@ files:
112
168
  - Rakefile
113
169
  - bin/console
114
170
  - bin/joplin
171
+ - bin/jp
115
172
  - bin/setup
116
173
  - joplin.gemspec
117
174
  - lib/joplin.rb
@@ -122,9 +179,6 @@ licenses:
122
179
  - MIT
123
180
  metadata:
124
181
  homepage_uri: http://github.com/danielb2/joplin-ruby
125
- source_code_uri: http://github.com/danielb2/joplin-ruby
126
- changelog_uri: http://github.com/danielb2/joplin-ruby
127
- post_install_message:
128
182
  rdoc_options: []
129
183
  require_paths:
130
184
  - lib
@@ -132,15 +186,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
132
186
  requirements:
133
187
  - - ">="
134
188
  - !ruby/object:Gem::Version
135
- version: '0'
189
+ version: 3.0.0
136
190
  required_rubygems_version: !ruby/object:Gem::Requirement
137
191
  requirements:
138
192
  - - ">="
139
193
  - !ruby/object:Gem::Version
140
194
  version: '0'
141
195
  requirements: []
142
- rubygems_version: 3.4.10
143
- signing_key:
196
+ rubygems_version: 4.0.10
144
197
  specification_version: 4
145
198
  summary: joplin API
146
199
  test_files: []