synclenote 0.0.0 → 0.1.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 +4 -4
- data/.github/dependabot.yml +11 -0
- data/.gitignore +1 -0
- data/lib/synclenote/command.rb +38 -9
- data/lib/synclenote/version.rb +1 -1
- data/lib/synclenote.rb +1 -0
- data/synclenote.gemspec +12 -6
- metadata +23 -9
- data/Gemfile.lock +0 -30
- /data/{bin → exe}/synclenote +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1c352d27660c56aff8d5d3b774d1638375ebb74a422e3ed7406357b4e5a3581e
|
4
|
+
data.tar.gz: '09925a4b803b45996af5b343aee9d6d851dae75369a8d035dc3a4c3e4707ec4c'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 10752a91ecb12fa3357153e636cb00085c9249d32dc20a3634d4742cce7d464879d0db21c45543e6aef52880fa6afcf0ef2366379edc6cdfdfc8b4a6c440a8fd
|
7
|
+
data.tar.gz: bbcd3faa70e11247052fdc3d56b35d0adf448ebff62977afdca80a2256be1fe6bbf132952dca7bdc6abe353955b7ec8a6f35c35c6752a370489a2e5ffec2b91d
|
data/.gitignore
CHANGED
data/lib/synclenote/command.rb
CHANGED
@@ -6,9 +6,12 @@ require "logger"
|
|
6
6
|
require "tempfile"
|
7
7
|
|
8
8
|
require "thor"
|
9
|
-
require "evernote_oauth"
|
10
9
|
require "redcarpet"
|
11
10
|
|
11
|
+
require "evernote_oauth"
|
12
|
+
# workaround https://github.com/Evernote/evernote-sdk-ruby/pull/23
|
13
|
+
Fixnum = Integer if !defined?(Fixnum)
|
14
|
+
|
12
15
|
class Synclenote::Command < Thor
|
13
16
|
attr_accessor :logger
|
14
17
|
|
@@ -86,7 +89,7 @@ EOS
|
|
86
89
|
logger.debug("loaded note_store.")
|
87
90
|
|
88
91
|
local_top_path = Pathname(c.local.directory).expand_path
|
89
|
-
last_sync_status =
|
92
|
+
last_sync_status = load_yaml_path(last_sync_path)
|
90
93
|
last_sync_datetime = last_sync_status[:last_sync_datetime]
|
91
94
|
if Time.now - last_sync_datetime <= min_sync_interval
|
92
95
|
allowed_sync_time = last_sync_datetime + min_sync_interval
|
@@ -106,7 +109,7 @@ EOS
|
|
106
109
|
end
|
107
110
|
|
108
111
|
# update note
|
109
|
-
note_sync_status =
|
112
|
+
note_sync_status = load_yaml_path(note_sync_status_path)
|
110
113
|
if note_sync_status[:last_sync_datetime] < note_path.mtime
|
111
114
|
update_remote_note(token, note_store, note_path, note_sync_status_path,
|
112
115
|
note_sync_status[:guid])
|
@@ -144,6 +147,21 @@ EOS
|
|
144
147
|
</en-note>
|
145
148
|
EOS
|
146
149
|
|
150
|
+
TITLE_IF_EMPTY = "no title"
|
151
|
+
|
152
|
+
def load_yaml_path(path)
|
153
|
+
return YAML.safe_load(
|
154
|
+
path.read,
|
155
|
+
permitted_classes: [
|
156
|
+
Symbol,
|
157
|
+
Time,
|
158
|
+
],
|
159
|
+
symbolize_names: true,
|
160
|
+
filename: path,
|
161
|
+
freeze: true,
|
162
|
+
)
|
163
|
+
end
|
164
|
+
|
147
165
|
def profile_path
|
148
166
|
return @profile_path ||= Pathname("~/.synclenote").expand_path
|
149
167
|
end
|
@@ -202,6 +220,7 @@ EOS
|
|
202
220
|
content = HEADER +
|
203
221
|
html.gsub(/ class=\".*?\"/, "").gsub(/<(br|hr|img).*?>/, "\\&</\\1>") +
|
204
222
|
FOOTER
|
223
|
+
title = TITLE_IF_EMPTY if /\A\s*\z/ === title
|
205
224
|
o = options.merge(title: title, content: content, tagNames: tags)
|
206
225
|
return Evernote::EDAM::Type::Note.new(o)
|
207
226
|
end
|
@@ -229,7 +248,7 @@ EOS
|
|
229
248
|
}.to_yaml)
|
230
249
|
tmp_file.close
|
231
250
|
path.parent.mkpath
|
232
|
-
FileUtils.mv(tmp_file.path, path)
|
251
|
+
FileUtils.mv(tmp_file.path, path) if !Synclenote::DRY_RUN
|
233
252
|
end
|
234
253
|
end
|
235
254
|
|
@@ -241,7 +260,12 @@ EOS
|
|
241
260
|
return
|
242
261
|
end
|
243
262
|
logger.debug("doing createNote: %s" % note_path)
|
244
|
-
created_note =
|
263
|
+
created_note =
|
264
|
+
if Synclenote::DRY_RUN
|
265
|
+
Evernote::EDAM::Type::Note.new(guid: "created_note_dummy_guid")
|
266
|
+
else
|
267
|
+
note_store.createNote(token, new_note)
|
268
|
+
end
|
245
269
|
logger.debug("done createNote.")
|
246
270
|
create_note_sync_status_file(note_sync_status_path, created_note,
|
247
271
|
Time.now)
|
@@ -257,20 +281,25 @@ EOS
|
|
257
281
|
return
|
258
282
|
end
|
259
283
|
logger.debug("doing updateNote: %s %s" % [note_path, guid])
|
260
|
-
updated_note =
|
284
|
+
updated_note =
|
285
|
+
if Synclenote::DRY_RUN
|
286
|
+
Evernote::EDAM::Type::Note.new(guid: "updated_note_dummy_guid")
|
287
|
+
else
|
288
|
+
note_store.updateNote(token, new_note)
|
289
|
+
end
|
261
290
|
logger.debug("done updateNote.")
|
262
291
|
create_note_sync_status_file(note_sync_status_path, updated_note, Time.now)
|
263
292
|
logger.debug("created: %s" % note_sync_status_path)
|
264
293
|
end
|
265
294
|
|
266
295
|
def remove_remote_note(token, note_store, note_sync_status_path)
|
267
|
-
note_sync_status =
|
296
|
+
note_sync_status = load_yaml_path(note_sync_status_path)
|
268
297
|
guid = note_sync_status[:guid]
|
269
298
|
logger.debug("doing deleteNote: %s" % guid)
|
270
|
-
note_store.deleteNote(token, guid)
|
299
|
+
note_store.deleteNote(token, guid) if !Synclenote::DRY_RUN
|
271
300
|
logger.debug("done deleteNote.")
|
272
301
|
|
273
|
-
note_sync_status_path.delete
|
302
|
+
note_sync_status_path.delete if !Synclenote::DRY_RUN
|
274
303
|
logger.debug("removed: %s" % note_sync_status_path)
|
275
304
|
end
|
276
305
|
end
|
data/lib/synclenote/version.rb
CHANGED
data/lib/synclenote.rb
CHANGED
data/synclenote.gemspec
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
|
3
|
-
|
2
|
+
|
3
|
+
require "pathname"
|
4
|
+
|
5
|
+
top_path = Pathname(__dir__).expand_path
|
6
|
+
lib_path = top_path / "lib"
|
7
|
+
$LOAD_PATH.unshift(lib_path)
|
4
8
|
require 'synclenote/version'
|
5
9
|
|
6
10
|
Gem::Specification.new do |spec|
|
@@ -8,20 +12,22 @@ Gem::Specification.new do |spec|
|
|
8
12
|
spec.version = Synclenote::VERSION
|
9
13
|
spec.authors = ["Yuya.Nishida."]
|
10
14
|
spec.email = ["yuya@j96.org"]
|
11
|
-
spec.summary
|
12
|
-
|
15
|
+
spec.summary = (top_path / "README.md").each_line(chomp: true).lazy.
|
16
|
+
grep_v(/\A\s*\z|\A\#/).first
|
13
17
|
spec.description = spec.summary
|
14
18
|
spec.homepage = "https://github.com/nishidayuya/" + spec.name
|
15
19
|
spec.license = "X11"
|
16
20
|
|
17
21
|
spec.files = `git ls-files -z`.split("\x0")
|
18
|
-
spec.
|
22
|
+
spec.bindir = "exe"
|
23
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
24
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
25
|
spec.require_paths = ["lib"]
|
21
26
|
|
22
|
-
spec.add_runtime_dependency "thor"
|
23
27
|
spec.add_runtime_dependency "evernote_oauth"
|
24
28
|
spec.add_runtime_dependency "redcarpet"
|
29
|
+
spec.add_runtime_dependency "thor"
|
25
30
|
spec.add_development_dependency "bundler"
|
31
|
+
spec.add_development_dependency "debug"
|
26
32
|
spec.add_development_dependency "rake"
|
27
33
|
end
|
metadata
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: synclenote
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuya.Nishida.
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: evernote_oauth
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
@@ -25,7 +25,7 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: redcarpet
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: thor
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: debug
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rake
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,15 +102,15 @@ executables:
|
|
88
102
|
extensions: []
|
89
103
|
extra_rdoc_files: []
|
90
104
|
files:
|
105
|
+
- ".github/dependabot.yml"
|
91
106
|
- ".gitignore"
|
92
107
|
- ".travis.yml"
|
93
108
|
- Gemfile
|
94
|
-
- Gemfile.lock
|
95
109
|
- Guardfile
|
96
110
|
- LICENSE.txt
|
97
111
|
- README.md
|
98
112
|
- Rakefile
|
99
|
-
-
|
113
|
+
- exe/synclenote
|
100
114
|
- lib/synclenote.rb
|
101
115
|
- lib/synclenote/command.rb
|
102
116
|
- lib/synclenote/configuration.rb
|
@@ -121,7 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
121
135
|
- !ruby/object:Gem::Version
|
122
136
|
version: '0'
|
123
137
|
requirements: []
|
124
|
-
rubygems_version: 3.
|
138
|
+
rubygems_version: 3.5.3
|
125
139
|
signing_key:
|
126
140
|
specification_version: 4
|
127
141
|
summary: A synchronization tool for GFM (GitHub Flavored Markdown) files and Evernote.
|
data/Gemfile.lock
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
synclenote (0.0.0)
|
5
|
-
evernote_oauth
|
6
|
-
redcarpet
|
7
|
-
thor
|
8
|
-
|
9
|
-
GEM
|
10
|
-
remote: https://rubygems.org/
|
11
|
-
specs:
|
12
|
-
evernote-thrift (1.25.2)
|
13
|
-
evernote_oauth (0.2.3)
|
14
|
-
evernote-thrift
|
15
|
-
oauth (>= 0.4.1)
|
16
|
-
oauth (0.5.6)
|
17
|
-
rake (13.0.6)
|
18
|
-
redcarpet (3.5.1)
|
19
|
-
thor (1.1.0)
|
20
|
-
|
21
|
-
PLATFORMS
|
22
|
-
x86_64-linux
|
23
|
-
|
24
|
-
DEPENDENCIES
|
25
|
-
bundler
|
26
|
-
rake
|
27
|
-
synclenote!
|
28
|
-
|
29
|
-
BUNDLED WITH
|
30
|
-
2.2.23
|
/data/{bin → exe}/synclenote
RENAMED
File without changes
|