naver-sdk 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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