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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 902c0f867a9dd5fd7bf428f47c1dcc5a6c519c68
4
- data.tar.gz: b1278f9fc5d852e56e6b74345228e500fb60dde0
3
+ metadata.gz: 3c55ce738ad94ea471c6009f367ceeb3c218fa7f
4
+ data.tar.gz: 37cac2f7a5327a355f5780a6db95876407e9b552
5
5
  SHA512:
6
- metadata.gz: f152e5cdc319e234c633cb47232e9d7ce95dd012fec0c54c33ad606f701b3398f050dda67370f83508597112e0aeef218e7149e3b3b2fb3cfdee58a9f7053a66
7
- data.tar.gz: f19dd9aaca20067fbd86c5eb42cfccd681424f8bef2120d8fa00ec8674909e07e4afc1badc559dc1aab4f06f78c4ef5112e5b95081b17002432a7729d8434726
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.2.0...v0.1.0
19
- [unreleased]: https://github.com/kimsuelim/naver-sdk-ruby/compare/v0.1.0...HEAD
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
  [![Build Status](https://travis-ci.org/kimsuelim/naver-sdk-ruby.svg?branch=master)](https://travis-ci.org/kimsuelim/naver-sdk-ruby)
4
- [![Coverage Status](https://coveralls.io/repos/kimsuelim/naver-sdk-ruby/badge.svg?branch=master)](https://coveralls.io/r/kimsuelim/naver-sdk-ruby?branch=master)
5
- [![Gem Version](https://badge.fury.io/rb/naver-sdk.svg)](http://badge.fury.io/rb/naver-sdk)
4
+ [![Coverage Status](https://coveralls.io/repos/github/kimsuelim/naver-sdk-ruby/badge.svg?branch=master)](https://coveralls.io/github/kimsuelim/naver-sdk-ruby?branch=master)
5
+ [![Gem Version](https://badge.fury.io/rb/naver-sdk.svg)](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::Shortenurl.url(url: "https://github.com/kimsuelim")
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 params [Hash] Params for the translate
7
- def translate(params = {})
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 params [Hash] Params for the translate
13
- def romanization(params = {})
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/shortenurl"
17
+ require "naver/shorturl"
18
+ require "naver/vision"
19
+ require "naver/voice"
19
20
 
20
21
  module Naver
21
22
  extend Config
@@ -1,5 +1,5 @@
1
1
  module Naver
2
2
  module Sdk
3
- VERSION = "0.2.0"
3
+ VERSION = "0.3.0"
4
4
  end
5
5
  end
@@ -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
@@ -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 Clova API
3
- class Clova < Client
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.2.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-24 00:00:00.000000000 Z
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/shortenurl.rb
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:
@@ -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