naver-sdk 0.2.0 → 0.3.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/CHANGELOG.md +12 -6
- data/README.md +118 -58
- data/lib/naver/papago.rb +10 -4
- data/lib/naver/sdk.rb +3 -2
- data/lib/naver/sdk/version.rb +1 -1
- data/lib/naver/shorturl.rb +14 -0
- data/lib/naver/vision.rb +24 -0
- data/lib/naver/{clova.rb → voice.rb} +2 -2
- metadata +5 -4
- data/lib/naver/shortenurl.rb +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c55ce738ad94ea471c6009f367ceeb3c218fa7f
|
4
|
+
data.tar.gz: 37cac2f7a5327a355f5780a6db95876407e9b552
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a84999ca63d2a7ee8c375fab770244789ae958d8738ff0ad1dd14d2af1f30b30b4d05af58e1fd4f7852f43d07da6344a3858757fc7fe301f256d415bea0f606
|
7
|
+
data.tar.gz: 3f428fc4872cc930f564fb878ca26ffb3a1cdb41638d2bab07c3461b62752b93a5206af6459bc40ec5b2653184951c334ead3b4a757bd7eb9568cb0e0e2e4d96
|
data/CHANGELOG.md
CHANGED
@@ -4,16 +4,22 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
## [unreleased]
|
5
5
|
- No significant changes.
|
6
6
|
|
7
|
+
## [0.3.0] - 2017-06-26
|
8
|
+
- [new] 얼굴인식(Beta)
|
9
|
+
- [breaking] `Naver::Clova::tts` renamed to `Naver::Voice::tts`.
|
10
|
+
- [breaking] `Naver::Shortenurl::url` renamed to `Naver::Shorturl::shorten`.
|
11
|
+
|
7
12
|
## [0.2.0] - 2017-06-25
|
8
|
-
- 음성합성(Beta)
|
9
|
-
- 네이버 공유하기
|
10
|
-
- Naver::Search.adult 리턴값을 "1" -> true, "0" -> false로 변경
|
11
|
-
- Naver::Search.errata에서 오타가 없을 경우 리턴값을 "" -> nil로 변경
|
13
|
+
- [new] 음성합성(Beta)
|
14
|
+
- [new] 네이버 공유하기
|
15
|
+
- [breaking] Naver::Search.adult 리턴값을 "1" -> true, "0" -> false로 변경
|
16
|
+
- [breaking] Naver::Search.errata에서 오타가 없을 경우 리턴값을 "" -> nil로 변경
|
12
17
|
|
13
18
|
## [0.1.0] - 2017-06-24
|
14
19
|
|
15
20
|
- first release
|
16
21
|
|
17
22
|
[0.1.0]: https://github.com/kimsuelim/naver-sdk-ruby/releases/tag/v0.1.0
|
18
|
-
[0.2.0]: https://github.com/kimsuelim/naver-sdk-ruby/compare/v0.
|
19
|
-
[
|
23
|
+
[0.2.0]: https://github.com/kimsuelim/naver-sdk-ruby/compare/v0.1.0...v0.2.0
|
24
|
+
[0.3.0]: https://github.com/kimsuelim/naver-sdk-ruby/compare/v0.2.0...v0.3.0
|
25
|
+
[unreleased]: https://github.com/kimsuelim/naver-sdk-ruby/compare/v0.3.0...HEAD
|
data/README.md
CHANGED
@@ -1,10 +1,17 @@
|
|
1
1
|
# NAVER SDK for Ruby
|
2
2
|
|
3
3
|
[](https://travis-ci.org/kimsuelim/naver-sdk-ruby)
|
4
|
-
[](https://coveralls.io/
|
5
|
-
[](
|
4
|
+
[](https://coveralls.io/github/kimsuelim/naver-sdk-ruby?branch=master)
|
5
|
+
[](https://badge.fury.io/rb/naver-sdk)
|
6
6
|
|
7
7
|
A ruby client for the NAVER API. [https://developers.naver.com](https://developers.naver.com)
|
8
|
+
|
9
|
+
## Links of Interest
|
10
|
+
|
11
|
+
* [네이버 개발자 센터](https://developers.naver.com)
|
12
|
+
* [API 문서](http://www.rubydoc.info/github/kimsuelim/naver-sdk-ruby/)
|
13
|
+
* [Change Log](https://github.com/kimsuelim/naver-sdk-ruby/blob/master/CHANGELOG.md)
|
14
|
+
|
8
15
|
## Installation
|
9
16
|
|
10
17
|
Add this line to your application's Gemfile:
|
@@ -41,6 +48,114 @@ Naver.configure do |config|
|
|
41
48
|
end
|
42
49
|
```
|
43
50
|
|
51
|
+
## 얼굴인식
|
52
|
+
입력된 얼굴 사진을 분석해서 닮은 연예인이나 얼굴 감지
|
53
|
+
|
54
|
+
### 유명인 얼굴인식(Beta)
|
55
|
+
```
|
56
|
+
response = Naver::Vision.celebrity(image: "test/resources/park.png")
|
57
|
+
# => #<Naver::ObjectifiedHash:70286633240760 {hash: {
|
58
|
+
"info"=>{
|
59
|
+
"size"=>{"width"=>683, "height"=>377},
|
60
|
+
"faceCount"=>1
|
61
|
+
},
|
62
|
+
"faces"=>[
|
63
|
+
{"celebrity"=>{"value"=>"박성웅", "confidence"=>1.0}}
|
64
|
+
]
|
65
|
+
}}
|
66
|
+
|
67
|
+
puts response.faces[0].celebrity.value
|
68
|
+
# => "박성웅"
|
69
|
+
```
|
70
|
+
|
71
|
+
테스트에서 사용한 이미지 보기 [test/resources/park.png](test/resources/park.png)
|
72
|
+
|
73
|
+
### 얼굴 감지(Beta)
|
74
|
+
```
|
75
|
+
response = Naver::Vision.face(image: "test/resources/park.png")
|
76
|
+
# => #<Naver::ObjectifiedHash:70286633075440 {hash: {
|
77
|
+
"info"=>{"size"=>{"width"=>683, "height"=>377}, "faceCount"=>1},
|
78
|
+
"faces"=>[
|
79
|
+
{
|
80
|
+
"roi"=>{"x"=>214, "y"=>106, "width"=>117, "height"=>117},
|
81
|
+
"landmark"=>{
|
82
|
+
"leftEye"=>{"x"=>241, "y"=>137},
|
83
|
+
"rightEye"=>{"x"=>296, "y"=>126},
|
84
|
+
"nose"=>{"x"=>271, "y"=>166},
|
85
|
+
"leftMouth"=>{"x"=>250, "y"=>195},
|
86
|
+
"rightMouth"=>{"x"=>309, "y"=>185}
|
87
|
+
},
|
88
|
+
"gender"=>{"value"=>"male", "confidence"=>0.999884},
|
89
|
+
"age"=>{"value"=>"44~48", "confidence"=>0.79507},
|
90
|
+
"emotion"=>{"value"=>"smile", "confidence"=>0.988639},
|
91
|
+
"pose"=>{"value"=>"frontal_face", "confidence"=>0.99785}
|
92
|
+
}
|
93
|
+
]
|
94
|
+
}}
|
95
|
+
|
96
|
+
puts response.faces[0].gender.value
|
97
|
+
# => "male"
|
98
|
+
|
99
|
+
puts response.faces[0].emotion.value
|
100
|
+
# => "smile"
|
101
|
+
```
|
102
|
+
|
103
|
+
테스트에서 사용한 이미지 보기 [test/resources/park.png](test/resources/park.png)
|
104
|
+
|
105
|
+
## 음성합성
|
106
|
+
입력된 텍스트를 성우의 낭독 음성으로 합성
|
107
|
+
|
108
|
+
### tts(Beta)
|
109
|
+
```
|
110
|
+
response = Naver::Voice.tts(
|
111
|
+
speaker: "mijin",
|
112
|
+
speed: 0,
|
113
|
+
text: "기술은 사람을 대체하는 것이 아니라 기술의 도움으로 사람을 더 창조적으로 만들 것이라 믿는다."
|
114
|
+
)
|
115
|
+
|
116
|
+
file = File.open("tts.mp3", "wb") { |f| f.write(response) }
|
117
|
+
# => 62532
|
118
|
+
```
|
119
|
+
|
120
|
+
합성된 음성 듣기 [test/resources/tts.mp3](test/resources/tts.mp3)
|
121
|
+
|
122
|
+
## 파파고
|
123
|
+
|
124
|
+
### 한글인명 - 로마자 변환
|
125
|
+
|
126
|
+
```ruby
|
127
|
+
response = Naver::Papago.romanization(query: "김수림")
|
128
|
+
=> #<Naver::ObjectifiedHash:70284972145960 {hash: {
|
129
|
+
"sFirstName"=>"김",
|
130
|
+
"aItems"=>[
|
131
|
+
{"name"=>"Kim Soorim", "score"=>"99"},
|
132
|
+
{"name"=>"Kim Soolim", "score"=>"97"},
|
133
|
+
{"name"=>"Kim Surim", "score"=>"78"},
|
134
|
+
{"name"=>"Kim Sulim", "score"=>"76"}
|
135
|
+
]}
|
136
|
+
}
|
137
|
+
|
138
|
+
puts response.aItems[0].name
|
139
|
+
# => "Kim Soorim"
|
140
|
+
```
|
141
|
+
|
142
|
+
### 기계번역(Beta)
|
143
|
+
|
144
|
+
```ruby
|
145
|
+
response = Naver::Papago.translate(
|
146
|
+
source: "ko",
|
147
|
+
target: "en",
|
148
|
+
text: "기술이 인간을 대체하는 것이 아니라 인간은 기술의 도움으로 더욱 창조적으로 될 것이라는 믿는다."
|
149
|
+
)
|
150
|
+
# => #<Naver::ObjectifiedHash:70362563050680 {hash: {
|
151
|
+
"translatedText"=>"To replace the technology not believe that humans are more creatively with the help of technology."
|
152
|
+
}
|
153
|
+
}
|
154
|
+
|
155
|
+
puts response.translatedText
|
156
|
+
# => "To replace the technology not believe that humans are more creatively with the help of technology."
|
157
|
+
```
|
158
|
+
|
44
159
|
## 지도
|
45
160
|
|
46
161
|
### 주소 -> 좌표 변환
|
@@ -86,7 +201,7 @@ puts response[0].point.x
|
|
86
201
|
|
87
202
|
### url
|
88
203
|
```ruby
|
89
|
-
response = Naver::
|
204
|
+
response = Naver::Shorturl.shorten(url: "https://github.com/kimsuelim")
|
90
205
|
# => #<Naver::ObjectifiedHash:70284972276780 {hash: {
|
91
206
|
"hash"=>"Fr4K6WFj",
|
92
207
|
"url"=>"http://me2.do/Fr4K6WFj",
|
@@ -97,44 +212,6 @@ puts response.url
|
|
97
212
|
# => "http://me2.do/Fr4K6WFj"
|
98
213
|
```
|
99
214
|
|
100
|
-
## 파파고
|
101
|
-
|
102
|
-
### 한글인명 - 로마자 변환
|
103
|
-
|
104
|
-
```ruby
|
105
|
-
response = Naver::Papago.romanization(query: "김수림")
|
106
|
-
=> #<Naver::ObjectifiedHash:70284972145960 {hash: {
|
107
|
-
"sFirstName"=>"김",
|
108
|
-
"aItems"=>[
|
109
|
-
{"name"=>"Kim Soorim", "score"=>"99"},
|
110
|
-
{"name"=>"Kim Soolim", "score"=>"97"},
|
111
|
-
{"name"=>"Kim Surim", "score"=>"78"},
|
112
|
-
{"name"=>"Kim Sulim", "score"=>"76"}
|
113
|
-
]}
|
114
|
-
}
|
115
|
-
|
116
|
-
puts response.aItems[0].name
|
117
|
-
# => "Kim Soorim"
|
118
|
-
```
|
119
|
-
|
120
|
-
### 기계번역(Beta)
|
121
|
-
|
122
|
-
```ruby
|
123
|
-
response = Naver::Papago.translate(
|
124
|
-
source: "ko",
|
125
|
-
target: "en",
|
126
|
-
text: "기술이 인간을 대체하는 것이 아니라 인간은 기술의 도움으로 더욱 창조적으로 될 것이라는 믿는다."
|
127
|
-
)
|
128
|
-
|
129
|
-
# => #<Naver::ObjectifiedHash:70362563050680 {hash: {
|
130
|
-
"translatedText"=>"To replace the technology not believe that humans are more creatively with the help of technology."
|
131
|
-
}
|
132
|
-
}
|
133
|
-
|
134
|
-
puts response.translatedText
|
135
|
-
# => "To replace the technology not believe that humans are more creatively with the help of technology."
|
136
|
-
```
|
137
|
-
|
138
215
|
## 네이버 공유하기
|
139
216
|
|
140
217
|
### url
|
@@ -143,23 +220,6 @@ Naver::Share.url(url: "https://github.com/kimsuelim", title: "The unofficial NAV
|
|
143
220
|
# => "http://share.naver.com/web/shareView.nhn?url=https%3A%2F%2Fgithub.com%2Fkimsuelim&title=The+unofficial+NAVER+SDK+for+Ruby"
|
144
221
|
```
|
145
222
|
|
146
|
-
## 클로바
|
147
|
-
|
148
|
-
### 음성합성(Beta)
|
149
|
-
```
|
150
|
-
response = Naver::Clova.tts(
|
151
|
-
speaker: "mijin",
|
152
|
-
speed: 0,
|
153
|
-
text: "기술이 인간을 대체하는 것이 아니라 인간은 기술의 도움으로 더욱 창조적으로 될 것이라는 믿는다."
|
154
|
-
)
|
155
|
-
|
156
|
-
file = File.open("tts.mp3", "wb") { |f| f.write(response) }
|
157
|
-
# => 62532
|
158
|
-
```
|
159
|
-
|
160
|
-
### 얼굴인식(Beta)
|
161
|
-
TODO...
|
162
|
-
|
163
223
|
## 검색
|
164
224
|
|
165
225
|
### 블로그
|
data/lib/naver/papago.rb
CHANGED
@@ -3,14 +3,20 @@ module Naver # :nodoc:
|
|
3
3
|
class Papago < Client
|
4
4
|
class << self
|
5
5
|
# 기계번역(Beta)
|
6
|
-
# @param
|
7
|
-
|
6
|
+
# @param source [String] 번역 소스 텍스트의 언어 설정: (ko:한국어, en:영어, ja:일본어, zh-CN:중국어(간체), zh-TW:중국어(번체)
|
7
|
+
# @param target [String] 번역 대상 언어, 가능한 값은 source 파라미터와 동일
|
8
|
+
# @param text [String] 번역할 문장이며 UTF-8만 지원
|
9
|
+
# @return [Hash] 번역된 문장
|
10
|
+
def translate(source:, target:, text:)
|
11
|
+
params = method(__method__).parameters.map(&:last).map { |p| [p, eval(p.to_s)] }.to_h
|
8
12
|
parse(JSON.parse(connection.post("/v1/language/translate", params).body)["message"]["result"])
|
9
13
|
end
|
10
14
|
|
11
15
|
# 한글인명 - 로마자 변환
|
12
|
-
# @param
|
13
|
-
|
16
|
+
# @param query [String] 로마자로 바꾸려는 한글 이름
|
17
|
+
# @return [Hash] 변환 결과
|
18
|
+
def romanization(query:)
|
19
|
+
params = { query: query }
|
14
20
|
parse(JSON.parse(connection.get("/v1/krdict/romanization", params).body)["aResult"][0])
|
15
21
|
end
|
16
22
|
end
|
data/lib/naver/sdk.rb
CHANGED
@@ -9,13 +9,14 @@ require "naver/error"
|
|
9
9
|
require "naver/oauth"
|
10
10
|
require "naver/objectified_hash"
|
11
11
|
|
12
|
-
require "naver/clova"
|
13
12
|
require "naver/map"
|
14
13
|
require "naver/papago"
|
15
14
|
require "naver/profile"
|
16
15
|
require "naver/search"
|
17
16
|
require "naver/share"
|
18
|
-
require "naver/
|
17
|
+
require "naver/shorturl"
|
18
|
+
require "naver/vision"
|
19
|
+
require "naver/voice"
|
19
20
|
|
20
21
|
module Naver
|
21
22
|
extend Config
|
data/lib/naver/sdk/version.rb
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
module Naver # :nodoc:
|
2
|
+
# Naver Shorturl API
|
3
|
+
class Shorturl < Client
|
4
|
+
class << self
|
5
|
+
# 단축URL
|
6
|
+
# @param url [String] 단축하고자 하는 원본 URL
|
7
|
+
# @return [ObjectifiedHash] 단축 결과
|
8
|
+
def shorten(url:)
|
9
|
+
params = { url: url }
|
10
|
+
parse(JSON.parse(connection.post("/v1/util/shorturl", params).body)["result"])
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/naver/vision.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
module Naver # :nodoc:
|
2
|
+
# Naver Vision API
|
3
|
+
class Vision < Client
|
4
|
+
class << self
|
5
|
+
# 유명인 얼굴인식(Beta)
|
6
|
+
# @param image [Binary] 얼굴이 포함된 이미지 (최대 2MB)
|
7
|
+
# @return [Hash] 인식결과
|
8
|
+
def celebrity(image:)
|
9
|
+
params = {}
|
10
|
+
params[:image] = Faraday::UploadIO.new(image, "image/jpeg")
|
11
|
+
parse(JSON.parse(connection.post("/v1/vision/celebrity", params).body))
|
12
|
+
end
|
13
|
+
|
14
|
+
# 얼굴 감지(Beta)
|
15
|
+
# @param image [Binary] 얼굴이 포함된 이미지 (최대 2MB)
|
16
|
+
# @return [Hash] 인식결과
|
17
|
+
def face(image:)
|
18
|
+
params = {}
|
19
|
+
params[:image] = Faraday::UploadIO.new(image, "image/jpeg")
|
20
|
+
parse(JSON.parse(connection.post("/v1/vision/face", params).body))
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Naver # :nodoc:
|
2
|
-
# Naver
|
3
|
-
class
|
2
|
+
# Naver Voice API
|
3
|
+
class Voice < Client
|
4
4
|
class << self
|
5
5
|
# 음성합성(Beta)
|
6
6
|
# @param speaker [String] 음성 합성할 목소리 설정: ( mijin:미진(한국어, 여성), jinho:진호(한국어, 남성), clara:클라라(영어, 여성), matt:매튜(영어, 남성), yuri:유리(일본어, 여성), shinji:신지(일본어, 남성), meimei:메이메이(중국어, 여성))
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: naver-sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Surim Kim
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-06-
|
11
|
+
date: 2017-06-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -133,7 +133,6 @@ files:
|
|
133
133
|
- bin/console
|
134
134
|
- bin/setup
|
135
135
|
- lib/naver/client.rb
|
136
|
-
- lib/naver/clova.rb
|
137
136
|
- lib/naver/config.rb
|
138
137
|
- lib/naver/connection.rb
|
139
138
|
- lib/naver/error.rb
|
@@ -146,7 +145,9 @@ files:
|
|
146
145
|
- lib/naver/sdk/version.rb
|
147
146
|
- lib/naver/search.rb
|
148
147
|
- lib/naver/share.rb
|
149
|
-
- lib/naver/
|
148
|
+
- lib/naver/shorturl.rb
|
149
|
+
- lib/naver/vision.rb
|
150
|
+
- lib/naver/voice.rb
|
150
151
|
- naver-sdk.gemspec
|
151
152
|
homepage: https://github.com/kimsuelim/naver-sdk-ruby
|
152
153
|
licenses:
|
data/lib/naver/shortenurl.rb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
module Naver # :nodoc:
|
2
|
-
# Naver Shortenurl API
|
3
|
-
class Shortenurl < Client
|
4
|
-
class << self
|
5
|
-
# 단축URL
|
6
|
-
# @param params [Hash] Params for the origin url
|
7
|
-
def url(params = {})
|
8
|
-
parse(JSON.parse(connection.post("/v1/util/shorturl", params).body)["result"])
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|