opener-chained-daemon 2.0.1 → 2.2.2
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/bin/console +13 -0
- data/lib/opener/chained_daemon.rb +3 -1
- data/lib/opener/chained_daemon/chained_daemon.rb +7 -1
- data/lib/opener/chained_daemon/microsoft_translator.rb +27 -0
- data/lib/opener/chained_daemon/version.rb +1 -1
- data/opener-chained-daemon.gemspec +5 -3
- metadata +78 -47
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fb437fa8aeeb2133629c9545254252aa07145cbe9c81a9804703b168cc32c098
|
4
|
+
data.tar.gz: 47c6e1b0462a52710100b201c41b7a3feddaa89d9e80649efc323eaa4546db5e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff6d5446a98856a6d3981f1610a776374a50b5ae0f78bd3a9040e8f58fc704ce6a2f453475c88ecadc13cd4c0adb872403d60e827c4b2a95fd2ff11391fecb37
|
7
|
+
data.tar.gz: 25e202e8df0be31a8c03a6588b68f30d7a82faec24e1c461302ca8d7369de81a1ee87468df9a7b28cb472cb0aa5c476adbc4b004c525230fbff3aa56b7b841cb
|
data/bin/console
ADDED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'active_support/all'
|
2
2
|
require 'oga'
|
3
|
+
require 'hashie'
|
3
4
|
require 'google/cloud/translate'
|
4
5
|
|
5
6
|
require 'opener/daemons'
|
@@ -7,7 +8,6 @@ require 'opener/daemons'
|
|
7
8
|
require 'opener/language_identifier'
|
8
9
|
require 'opener/tokenizer'
|
9
10
|
# require ner before pos_tagger for compatible opennlp
|
10
|
-
require 'opener/ner'
|
11
11
|
require 'opener/pos_tagger'
|
12
12
|
require 'opener/polarity_tagger'
|
13
13
|
require 'opener/property_tagger'
|
@@ -15,3 +15,5 @@ require 'opener/opinion_detector_basic'
|
|
15
15
|
|
16
16
|
require_relative 'chained_daemon/chained_daemon'
|
17
17
|
require_relative 'chained_daemon/cli'
|
18
|
+
require_relative 'chained_daemon/microsoft_translator'
|
19
|
+
|
@@ -12,12 +12,12 @@ module Opener
|
|
12
12
|
'opener-pos-tagger': Opener::POSTagger.new,
|
13
13
|
'opener-polarity-tagger': Opener::PolarityTagger.new,
|
14
14
|
'opener-property-tagger': Opener::PropertyTagger.new,
|
15
|
-
'opener-ner': Opener::Ner.new,
|
16
15
|
'opener-opinion-detector-basic': Opener::OpinionDetectorBasic.new,
|
17
16
|
}
|
18
17
|
end
|
19
18
|
|
20
19
|
def run input, params = {}
|
20
|
+
params ||= {}
|
21
21
|
params.symbolize_keys!
|
22
22
|
params[:translate_languages] ||= []
|
23
23
|
|
@@ -57,6 +57,8 @@ module Opener
|
|
57
57
|
case translate_service params
|
58
58
|
when :google
|
59
59
|
raw.content = google_translator.translate raw.content, to: :en
|
60
|
+
when :microsoft
|
61
|
+
raw.content = microsoft_translator.translate raw.content, to: :en
|
60
62
|
else
|
61
63
|
raw.content = google_translator.translate raw.content, to: :en
|
62
64
|
end
|
@@ -75,6 +77,10 @@ module Opener
|
|
75
77
|
@google_translator ||= Google::Cloud.new.translate ENV['GOOGLE_TRANSLATE_TOKEN']
|
76
78
|
end
|
77
79
|
|
80
|
+
def microsoft_translator
|
81
|
+
@microsoft_translator ||= MicrosoftTranslator.new
|
82
|
+
end
|
83
|
+
|
78
84
|
private
|
79
85
|
|
80
86
|
def debug_print queue, input
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Opener
|
2
|
+
class ChainedDaemon
|
3
|
+
class MicrosoftTranslator
|
4
|
+
|
5
|
+
URL = 'https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&to=%{to}'
|
6
|
+
TOKEN = ENV['MICROSOFT_TRANSLATE_TOKEN']
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
@http = HTTPClient.new
|
10
|
+
end
|
11
|
+
|
12
|
+
def translate text, to: :en
|
13
|
+
url = URL % {to: to}
|
14
|
+
resp = @http.post url,
|
15
|
+
body: [{Text: text}].to_json,
|
16
|
+
header: {'Ocp-Apim-Subscription-Key' => TOKEN, 'Content-Type' => 'application/json'}
|
17
|
+
|
18
|
+
data = JSON.parse resp.body
|
19
|
+
raise data['error']['message'] if data.is_a? Hash and data['error']
|
20
|
+
|
21
|
+
data = Hashie::Mash.new data[0]
|
22
|
+
data&.translations&.first&.text
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -22,6 +22,8 @@ Gem::Specification.new do |spec|
|
|
22
22
|
|
23
23
|
spec.add_dependency 'activesupport'
|
24
24
|
spec.add_dependency 'google-cloud-translate', '~> 1.0'
|
25
|
+
spec.add_dependency 'httpclient'
|
26
|
+
spec.add_dependency 'hashie'
|
25
27
|
|
26
28
|
spec.add_dependency 'opener-daemons', '~> 2.7.1'
|
27
29
|
spec.add_dependency 'opener-callback-handler', '~> 1.0'
|
@@ -29,14 +31,14 @@ Gem::Specification.new do |spec|
|
|
29
31
|
spec.add_dependency 'opener-language-identifier'
|
30
32
|
spec.add_dependency 'opener-tokenizer'
|
31
33
|
spec.add_dependency 'opener-pos-tagger'
|
32
|
-
spec.add_dependency 'opener-polarity-tagger'
|
33
|
-
spec.add_dependency 'opener-property-tagger'
|
34
|
-
spec.add_dependency 'opener-ner'
|
34
|
+
spec.add_dependency 'opener-polarity-tagger', '>= 3.1.3'
|
35
|
+
spec.add_dependency 'opener-property-tagger', '>= 3.2.1'
|
35
36
|
spec.add_dependency 'opener-opinion-detector-basic'
|
36
37
|
|
37
38
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
38
39
|
spec.add_development_dependency 'rake'
|
39
40
|
spec.add_development_dependency 'pry'
|
41
|
+
spec.add_development_dependency 'awesome_print'
|
40
42
|
spec.add_development_dependency 'rspec'
|
41
43
|
spec.add_development_dependency 'rack-test'
|
42
44
|
end
|
metadata
CHANGED
@@ -1,234 +1,262 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opener-chained-daemon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- development@olery.com
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-09-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
14
15
|
requirement: !ruby/object:Gem::Requirement
|
15
16
|
requirements:
|
16
17
|
- - ">="
|
17
18
|
- !ruby/object:Gem::Version
|
18
19
|
version: '0'
|
19
|
-
name: activesupport
|
20
|
-
prerelease: false
|
21
20
|
type: :runtime
|
21
|
+
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
+
name: google-cloud-translate
|
28
29
|
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
31
|
- - "~>"
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '1.0'
|
33
|
-
name: google-cloud-translate
|
34
|
-
prerelease: false
|
35
34
|
type: :runtime
|
35
|
+
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
+
name: httpclient
|
42
43
|
requirement: !ruby/object:Gem::Requirement
|
43
44
|
requirements:
|
44
|
-
- - "
|
45
|
+
- - ">="
|
45
46
|
- !ruby/object:Gem::Version
|
46
|
-
version:
|
47
|
-
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
48
49
|
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: hashie
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
49
62
|
type: :runtime
|
63
|
+
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
|
-
- - "
|
66
|
+
- - ">="
|
53
67
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
68
|
+
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
70
|
+
name: opener-daemons
|
56
71
|
requirement: !ruby/object:Gem::Requirement
|
57
72
|
requirements:
|
58
73
|
- - "~>"
|
59
74
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
61
|
-
name: opener-callback-handler
|
62
|
-
prerelease: false
|
75
|
+
version: 2.7.1
|
63
76
|
type: :runtime
|
77
|
+
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
80
|
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
82
|
+
version: 2.7.1
|
69
83
|
- !ruby/object:Gem::Dependency
|
84
|
+
name: opener-callback-handler
|
70
85
|
requirement: !ruby/object:Gem::Requirement
|
71
86
|
requirements:
|
72
|
-
- - "
|
87
|
+
- - "~>"
|
73
88
|
- !ruby/object:Gem::Version
|
74
|
-
version: '0'
|
75
|
-
name: opener-language-identifier
|
76
|
-
prerelease: false
|
89
|
+
version: '1.0'
|
77
90
|
type: :runtime
|
91
|
+
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
|
-
- - "
|
94
|
+
- - "~>"
|
81
95
|
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
96
|
+
version: '1.0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
98
|
+
name: opener-language-identifier
|
84
99
|
requirement: !ruby/object:Gem::Requirement
|
85
100
|
requirements:
|
86
101
|
- - ">="
|
87
102
|
- !ruby/object:Gem::Version
|
88
103
|
version: '0'
|
89
|
-
name: opener-tokenizer
|
90
|
-
prerelease: false
|
91
104
|
type: :runtime
|
105
|
+
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
108
|
- - ">="
|
95
109
|
- !ruby/object:Gem::Version
|
96
110
|
version: '0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
112
|
+
name: opener-tokenizer
|
98
113
|
requirement: !ruby/object:Gem::Requirement
|
99
114
|
requirements:
|
100
115
|
- - ">="
|
101
116
|
- !ruby/object:Gem::Version
|
102
117
|
version: '0'
|
103
|
-
name: opener-pos-tagger
|
104
|
-
prerelease: false
|
105
118
|
type: :runtime
|
119
|
+
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
107
121
|
requirements:
|
108
122
|
- - ">="
|
109
123
|
- !ruby/object:Gem::Version
|
110
124
|
version: '0'
|
111
125
|
- !ruby/object:Gem::Dependency
|
126
|
+
name: opener-pos-tagger
|
112
127
|
requirement: !ruby/object:Gem::Requirement
|
113
128
|
requirements:
|
114
129
|
- - ">="
|
115
130
|
- !ruby/object:Gem::Version
|
116
131
|
version: '0'
|
117
|
-
name: opener-polarity-tagger
|
118
|
-
prerelease: false
|
119
132
|
type: :runtime
|
133
|
+
prerelease: false
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
121
135
|
requirements:
|
122
136
|
- - ">="
|
123
137
|
- !ruby/object:Gem::Version
|
124
138
|
version: '0'
|
125
139
|
- !ruby/object:Gem::Dependency
|
140
|
+
name: opener-polarity-tagger
|
126
141
|
requirement: !ruby/object:Gem::Requirement
|
127
142
|
requirements:
|
128
143
|
- - ">="
|
129
144
|
- !ruby/object:Gem::Version
|
130
|
-
version:
|
131
|
-
name: opener-property-tagger
|
132
|
-
prerelease: false
|
145
|
+
version: 3.1.3
|
133
146
|
type: :runtime
|
147
|
+
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
150
|
- - ">="
|
137
151
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
152
|
+
version: 3.1.3
|
139
153
|
- !ruby/object:Gem::Dependency
|
154
|
+
name: opener-property-tagger
|
140
155
|
requirement: !ruby/object:Gem::Requirement
|
141
156
|
requirements:
|
142
157
|
- - ">="
|
143
158
|
- !ruby/object:Gem::Version
|
144
|
-
version:
|
145
|
-
name: opener-ner
|
146
|
-
prerelease: false
|
159
|
+
version: 3.2.1
|
147
160
|
type: :runtime
|
161
|
+
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
164
|
- - ">="
|
151
165
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
166
|
+
version: 3.2.1
|
153
167
|
- !ruby/object:Gem::Dependency
|
168
|
+
name: opener-opinion-detector-basic
|
154
169
|
requirement: !ruby/object:Gem::Requirement
|
155
170
|
requirements:
|
156
171
|
- - ">="
|
157
172
|
- !ruby/object:Gem::Version
|
158
173
|
version: '0'
|
159
|
-
name: opener-opinion-detector-basic
|
160
|
-
prerelease: false
|
161
174
|
type: :runtime
|
175
|
+
prerelease: false
|
162
176
|
version_requirements: !ruby/object:Gem::Requirement
|
163
177
|
requirements:
|
164
178
|
- - ">="
|
165
179
|
- !ruby/object:Gem::Version
|
166
180
|
version: '0'
|
167
181
|
- !ruby/object:Gem::Dependency
|
182
|
+
name: bundler
|
168
183
|
requirement: !ruby/object:Gem::Requirement
|
169
184
|
requirements:
|
170
185
|
- - "~>"
|
171
186
|
- !ruby/object:Gem::Version
|
172
187
|
version: '1.3'
|
173
|
-
name: bundler
|
174
|
-
prerelease: false
|
175
188
|
type: :development
|
189
|
+
prerelease: false
|
176
190
|
version_requirements: !ruby/object:Gem::Requirement
|
177
191
|
requirements:
|
178
192
|
- - "~>"
|
179
193
|
- !ruby/object:Gem::Version
|
180
194
|
version: '1.3'
|
181
195
|
- !ruby/object:Gem::Dependency
|
196
|
+
name: rake
|
182
197
|
requirement: !ruby/object:Gem::Requirement
|
183
198
|
requirements:
|
184
199
|
- - ">="
|
185
200
|
- !ruby/object:Gem::Version
|
186
201
|
version: '0'
|
187
|
-
name: rake
|
188
|
-
prerelease: false
|
189
202
|
type: :development
|
203
|
+
prerelease: false
|
190
204
|
version_requirements: !ruby/object:Gem::Requirement
|
191
205
|
requirements:
|
192
206
|
- - ">="
|
193
207
|
- !ruby/object:Gem::Version
|
194
208
|
version: '0'
|
195
209
|
- !ruby/object:Gem::Dependency
|
210
|
+
name: pry
|
196
211
|
requirement: !ruby/object:Gem::Requirement
|
197
212
|
requirements:
|
198
213
|
- - ">="
|
199
214
|
- !ruby/object:Gem::Version
|
200
215
|
version: '0'
|
201
|
-
name: pry
|
202
|
-
prerelease: false
|
203
216
|
type: :development
|
217
|
+
prerelease: false
|
204
218
|
version_requirements: !ruby/object:Gem::Requirement
|
205
219
|
requirements:
|
206
220
|
- - ">="
|
207
221
|
- !ruby/object:Gem::Version
|
208
222
|
version: '0'
|
209
223
|
- !ruby/object:Gem::Dependency
|
224
|
+
name: awesome_print
|
210
225
|
requirement: !ruby/object:Gem::Requirement
|
211
226
|
requirements:
|
212
227
|
- - ">="
|
213
228
|
- !ruby/object:Gem::Version
|
214
229
|
version: '0'
|
215
|
-
name: rspec
|
216
|
-
prerelease: false
|
217
230
|
type: :development
|
231
|
+
prerelease: false
|
218
232
|
version_requirements: !ruby/object:Gem::Requirement
|
219
233
|
requirements:
|
220
234
|
- - ">="
|
221
235
|
- !ruby/object:Gem::Version
|
222
236
|
version: '0'
|
223
237
|
- !ruby/object:Gem::Dependency
|
238
|
+
name: rspec
|
224
239
|
requirement: !ruby/object:Gem::Requirement
|
225
240
|
requirements:
|
226
241
|
- - ">="
|
227
242
|
- !ruby/object:Gem::Version
|
228
243
|
version: '0'
|
229
|
-
|
244
|
+
type: :development
|
230
245
|
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - ">="
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '0'
|
251
|
+
- !ruby/object:Gem::Dependency
|
252
|
+
name: rack-test
|
253
|
+
requirement: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - ">="
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: '0'
|
231
258
|
type: :development
|
259
|
+
prerelease: false
|
232
260
|
version_requirements: !ruby/object:Gem::Requirement
|
233
261
|
requirements:
|
234
262
|
- - ">="
|
@@ -240,16 +268,19 @@ executables:
|
|
240
268
|
- chained-daemon
|
241
269
|
- chained-daemon-daemon
|
242
270
|
- chained-daemon-csv
|
271
|
+
- console
|
243
272
|
extensions: []
|
244
273
|
extra_rdoc_files: []
|
245
274
|
files:
|
246
275
|
- bin/chained-daemon
|
247
276
|
- bin/chained-daemon-csv
|
248
277
|
- bin/chained-daemon-daemon
|
278
|
+
- bin/console
|
249
279
|
- exec/chained-daemon.rb
|
250
280
|
- lib/opener/chained_daemon.rb
|
251
281
|
- lib/opener/chained_daemon/chained_daemon.rb
|
252
282
|
- lib/opener/chained_daemon/cli.rb
|
283
|
+
- lib/opener/chained_daemon/microsoft_translator.rb
|
253
284
|
- lib/opener/chained_daemon/version.rb
|
254
285
|
- opener-chained-daemon.gemspec
|
255
286
|
homepage:
|
@@ -272,7 +303,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
272
303
|
version: '0'
|
273
304
|
requirements: []
|
274
305
|
rubyforge_project:
|
275
|
-
rubygems_version: 2.7.
|
306
|
+
rubygems_version: 2.7.8
|
276
307
|
signing_key:
|
277
308
|
specification_version: 4
|
278
309
|
summary: OpeNER daemon for processing multiple queues at once
|