@@ -125,6 +125,31 @@ module.exports = function (RED) {
125125 } ) ;
126126 }
127127
128+ function executeGetCustomWords ( node , stt , params , msg ) {
129+ stt . getWords ( params , function ( err , response ) {
130+ node . status ( { } ) ;
131+ if ( err ) {
132+ reportError ( node , msg , err ) ;
133+ } else {
134+ msg [ 'words' ] = response . words ? response . words : response ;
135+ }
136+ node . send ( msg ) ;
137+ } ) ;
138+ }
139+
140+ function executeAddWords ( node , stt , params , msg ) {
141+ stt . addWords ( params , function ( err , response ) {
142+ node . status ( { } ) ;
143+ if ( err ) {
144+ reportError ( node , msg , err ) ;
145+ } else {
146+ msg [ 'addwordsresponse' ] = response ;
147+ }
148+ node . send ( msg ) ;
149+ } ) ;
150+ }
151+
152+
128153 function executeDeleteCorpus ( node , stt , params , msg ) {
129154 stt . deleteCorpus ( params , function ( err , response ) {
130155 node . status ( { } ) ;
@@ -164,6 +189,12 @@ module.exports = function (RED) {
164189 case 'train' :
165190 executeTrain ( node , stt , params , msg ) ;
166191 break ;
192+ case 'listCustomWords' :
193+ executeGetCustomWords ( node , stt , params , msg ) ;
194+ break ;
195+ case 'addWords' :
196+ executeAddWords ( node , stt , params , msg ) ;
197+ break ;
167198 case 'deleteCorpus' :
168199 executeDeleteCorpus ( node , stt , params , msg ) ;
169200 break ;
@@ -189,10 +220,25 @@ module.exports = function (RED) {
189220 params [ 'customization_id' ] = config [ 'stt-custom-id' ] ;
190221 }
191222
223+ if ( 'addCorpus' === config [ 'stt-custom-mode' ] ) {
224+ params [ 'allow_overwrite' ] = config [ 'stt-allow-overwrite' ] ;
225+ }
226+
192227 return params ;
193228 }
194229
195- function loadCorpusFile ( node , method , params , msg ) {
230+ function setFileParams ( method , params , msg ) {
231+ switch ( method ) {
232+ case 'addCorpus' :
233+ params . corpus = msg . payload ;
234+ break ;
235+ case 'addWords' :
236+ params . words = msg . payload ;
237+ break ;
238+ }
239+ }
240+
241+ function loadFile ( node , method , params , msg ) {
196242 temp . open ( {
197243 suffix : '.txt'
198244 } , function ( err , info ) {
@@ -217,15 +263,28 @@ module.exports = function (RED) {
217263 throw err ;
218264 }
219265
220- params . corpus = fs . createReadStream ( info . path ) ;
266+ switch ( method ) {
267+ case 'addCorpus' :
268+ params . corpus = fs . createReadStream ( info . path ) ;
269+ break ;
270+ case 'addWords' :
271+ try {
272+ params . words = JSON . parse ( fs . readFileSync ( info . path , 'utf8' ) ) ;
273+ } catch ( err ) {
274+ params . words = fs . createReadStream ( info . path ) ;
275+ }
276+ }
277+
221278 executeMethod ( node , method , params , msg ) ;
279+ temp . cleanup ( ) ;
222280 } ) ;
223281 } ) ;
224282 }
225283
226284 function checkForFile ( method ) {
227285 switch ( method ) {
228286 case 'addCorpus' :
287+ case 'addWords' :
229288 return true ;
230289 }
231290 return false ;
@@ -286,11 +345,14 @@ module.exports = function (RED) {
286345 }
287346
288347 if ( checkForFile ( method ) ) {
289- loadCorpusFile ( node , method , params , msg ) ;
290- } else {
291- executeMethod ( node , method , params , msg ) ;
348+ if ( msg . payload instanceof Buffer ) {
349+ loadFile ( node , method , params , msg ) ;
350+ return ;
351+ }
352+ setFileParams ( method , params , msg ) ;
292353 }
293354
355+ executeMethod ( node , method , params , msg ) ;
294356 } ) ;
295357 }
296358
0 commit comments