evernote_utils 0.0.9 → 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/README.md +15 -2
- data/evernote_utils.gemspec +2 -1
- data/lib/evernote_utils.rb +4 -0
- data/lib/evernote_utils/note.rb +43 -0
- data/lib/evernote_utils/version.rb +1 -1
- metadata +19 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1e1c09e9e0935584b6a41379c739096141e4b18
|
4
|
+
data.tar.gz: ea9ffa77b7129b6838ad2268a4924fbe6e843ecb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 01803687ee5b0165c1471c38ea3f06ba963bf239d52d9d3407022659ceaa50103ced7cf3b76489840079c36190613040908d77a251463f0c298fc5474b7238f2
|
7
|
+
data.tar.gz: b65ce02d5ba3570f55d49dd75a2d6526ded0c7e5d6e3c9e9bc88d7008a16905940f02611c181acb01901b349782c1b05edb7ed4b5825d9b567956890d1b17006
|
data/README.md
CHANGED
@@ -118,7 +118,21 @@ enutils.notes(notebook: notebook, tag: tag, words: 'beginners\' guide')
|
|
118
118
|
```
|
119
119
|
|
120
120
|
|
121
|
-
###
|
121
|
+
### create note
|
122
|
+
|
123
|
+
```ruby
|
124
|
+
enutils.create_note(title: 'create new note',
|
125
|
+
notebook: enutils.notebook('Inbox'))
|
126
|
+
|
127
|
+
require 'opne-uri'
|
128
|
+
enutils.create_note(title: 'Clip from website',
|
129
|
+
notebook: enutils.notebook('Inbox'),
|
130
|
+
content: open('https://github.com').read,
|
131
|
+
from_html: true)
|
132
|
+
```
|
133
|
+
|
134
|
+
|
135
|
+
### update note
|
122
136
|
|
123
137
|
```ruby
|
124
138
|
notebook = enutils.notebook('Inbox')
|
@@ -136,5 +150,4 @@ note.save #=> save to Evernote Cloud
|
|
136
150
|
|
137
151
|
## Planning to do
|
138
152
|
|
139
|
-
* create note
|
140
153
|
* `ENutils::Note#content` simple access
|
data/evernote_utils.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["takuya21hashimoto@gmail.com"]
|
11
11
|
spec.description = %q{A thin OOP-friendly wrapper of Evernote Ruby SDK.}
|
12
12
|
spec.summary = %q{A thin OOP-friendly wrapper of Evernote Ruby SDK.}
|
13
|
-
spec.homepage = ""
|
13
|
+
spec.homepage = "https://github.com/memerelics/evernote_utils"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.add_dependency 'evernote-thrift', '~>1.25.1'
|
22
22
|
spec.add_dependency 'activesupport'
|
23
|
+
spec.add_dependency 'roadie'
|
23
24
|
|
24
25
|
spec.add_development_dependency "bundler", "~> 1.3"
|
25
26
|
spec.add_development_dependency "rake"
|
data/lib/evernote_utils.rb
CHANGED
data/lib/evernote_utils/note.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'active_support/core_ext/object'
|
2
2
|
require 'evernote_utils/notelist'
|
3
|
+
require 'roadie'
|
3
4
|
|
4
5
|
module ENUtils
|
5
6
|
class Note
|
@@ -33,6 +34,17 @@ module ENUtils
|
|
33
34
|
NoteList.new(core, result, options)
|
34
35
|
end
|
35
36
|
|
37
|
+
def self.create(core, attrs)
|
38
|
+
edam_note = Evernote::EDAM::Type::Note.new(parse_attrs(attrs))
|
39
|
+
begin
|
40
|
+
res = core.notestore.createNote(core.token, edam_note)
|
41
|
+
rescue Evernote::EDAM::Error::EDAMUserException
|
42
|
+
# build error message because $!.message is nil
|
43
|
+
raise $!.class, "[ErrorCode: #{$!.errorCode}] #{$!.parameter}", $!.backtrace
|
44
|
+
end
|
45
|
+
new(core, res)
|
46
|
+
end
|
47
|
+
|
36
48
|
def initialize(core, edam_note)
|
37
49
|
@core = core
|
38
50
|
@edam_note = edam_note
|
@@ -91,5 +103,36 @@ module ENUtils
|
|
91
103
|
def remote_content
|
92
104
|
@core.find_note(guid, with_content: true).content
|
93
105
|
end
|
106
|
+
|
107
|
+
def self.parse_attrs(attrs)
|
108
|
+
if notebook = attrs.delete(:notebook)
|
109
|
+
attrs[:notebookGuid] = notebook.guid if notebook.is_a? ENUtils::Notebook
|
110
|
+
attrs[:notebookGuid] = notebook if notebook.is_a? String
|
111
|
+
end
|
112
|
+
attrs[:content] = html_to_enml(attrs[:content]) if attrs.delete(:from_html)
|
113
|
+
attrs
|
114
|
+
end
|
115
|
+
|
116
|
+
def self.html_to_enml(html)
|
117
|
+
html = html.read if html.is_a?(File)
|
118
|
+
roadie_doc = ::Roadie::Document.new(html)
|
119
|
+
html_transformed = roadie_doc.transform
|
120
|
+
nokogiri_doc = Nokogiri::HTML(html_transformed)
|
121
|
+
# TODO: filter allowd attributes
|
122
|
+
nokogiri_doc.xpath('//@class').remove
|
123
|
+
# cannot use img+src
|
124
|
+
nokogiri_doc.xpath('//img').remove
|
125
|
+
inner = nokogiri_doc.css('body').inner_html
|
126
|
+
inner = inner.gsub('<br>', '<br/>')
|
127
|
+
wrap_enml(inner)
|
128
|
+
end
|
129
|
+
|
130
|
+
def self.wrap_enml(text)
|
131
|
+
'<?xml version="1.0" encoding="UTF-8"?>' +
|
132
|
+
'<!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd">' +
|
133
|
+
'<en-note>' +
|
134
|
+
text +
|
135
|
+
'</en-note>'
|
136
|
+
end
|
94
137
|
end
|
95
138
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evernote_utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- memerelics
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: evernote-thrift
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: roadie
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: bundler
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -193,7 +207,7 @@ files:
|
|
193
207
|
- spec/evernote_utils_spec.rb
|
194
208
|
- spec/factories.rb
|
195
209
|
- spec/spec_helper.rb
|
196
|
-
homepage:
|
210
|
+
homepage: https://github.com/memerelics/evernote_utils
|
197
211
|
licenses:
|
198
212
|
- MIT
|
199
213
|
metadata: {}
|
@@ -213,7 +227,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
213
227
|
version: '0'
|
214
228
|
requirements: []
|
215
229
|
rubyforge_project:
|
216
|
-
rubygems_version: 2.
|
230
|
+
rubygems_version: 2.4.5.1
|
217
231
|
signing_key:
|
218
232
|
specification_version: 4
|
219
233
|
summary: A thin OOP-friendly wrapper of Evernote Ruby SDK.
|
@@ -224,3 +238,4 @@ test_files:
|
|
224
238
|
- spec/evernote_utils_spec.rb
|
225
239
|
- spec/factories.rb
|
226
240
|
- spec/spec_helper.rb
|
241
|
+
has_rdoc:
|