Built motion from commit (unavailable).|2.5.29
[motion2.git] / server / config / schedule / transcribe.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xdea3=['TranscriptionJobStatus','fileText','TranscriptionJob','Transcript','TranscriptFileUri','[RECORDING:%d]\x20Transcript\x20downloaded','results','length','transcripts','transcript','update','tempSentiment','Sequelize','ValidationError','Sentiment\x20Analysis\x20not\x20requested','sentiment','sentimentAccountId','sentimentRegion','language','Sentiment\x20Analysis\x20not\x20configured','Transcript\x20not\x20available','findOne','then','Cloud\x20Provider\x20not\x20available','data2','[RECORDING:%d]\x20Requesting\x20sentiment\x20analysis','[RECORDING:%d]\x20Sentiment\x20Analysis\x20available','Sentiment','SentimentScore','Positive','Mixed','Neutral','[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated','FAILED','FailureReason','resolve','bucket','CloudProvider','Cloud\x20Provider\x20not\x20configured','COMPLETED','name','SequelizeValidationError','[RECORDING:%d]\x20Error\x20running\x20Transcribe\x20&\x20Sentiment\x20Analysis','inspect','VoiceRecording','findAll','IN_PROGRESS','No\x20transcribe\x20job\x20to\x20check','transcribe','transcribeAccountId','Transcribe\x20not\x20configured','push','all','start','lodash','aws-sdk','request-promise','util','bluebird','../../mysqldb','../../config/logger','TranscribeService','getTranscriptionJob','Comprehend','detectSentiment','substring','info','format','[RECORDING:%d]\x20Get\x20status\x20for\x20transcript\x20job\x20(%s)','transcribeName','data1','[RECORDING:%d]\x20Status\x20of\x20transcript\x20job\x20(%s):\x20%s'];(function(_0x6c993a,_0x5ea3ab){var _0x27f547=function(_0x22df20){while(--_0x22df20){_0x6c993a['push'](_0x6c993a['shift']());}};_0x27f547(++_0x5ea3ab);}(_0xdea3,0xc6));var _0x3dea=function(_0x2db3b0,_0x20df6e){_0x2db3b0=_0x2db3b0-0x0;var _0x435b96=_0xdea3[_0x2db3b0];return _0x435b96;};var _=require(_0x3dea('0x0'));var AWS=require(_0x3dea('0x1'));var rp=require(_0x3dea('0x2'));var util=require(_0x3dea('0x3'));var BPromise=require(_0x3dea('0x4'));var db=require(_0x3dea('0x5'))['db'];var logger=require(_0x3dea('0x6'))('transcribe');function getTranscriptionJob(_0xd35fac,_0x15ab5d,_0x5153e4,_0x573f55){return new Promise(function(_0x3c142c,_0x3f4411){var _0x1abd5d=new AWS[(_0x3dea('0x7'))]({'accessKeyId':_0x15ab5d,'secretAccessKey':_0xd35fac,'region':_0x5153e4});_0x1abd5d[_0x3dea('0x8')]({'TranscriptionJobName':_0x573f55},function(_0x42a8ac,_0x4b7d92){if(_0x42a8ac){return _0x3f4411(_0x42a8ac);}else{return _0x3c142c(_0x4b7d92);}});});}function sentiment(_0x373dd3,_0x33033c,_0x17f989,_0x28ba7f,_0x169ba0){return new Promise(function(_0x42b39d,_0x2d4c57){var _0x4b48b1=new AWS[(_0x3dea('0x9'))]({'accessKeyId':_0x33033c,'secretAccessKey':_0x373dd3,'region':_0x17f989});_0x4b48b1[_0x3dea('0xa')]({'Text':_0x28ba7f,'LanguageCode':_0x169ba0[_0x3dea('0xb')](0x0,0x2)},function(_0x362d69,_0x5e04a1){if(_0x362d69){return _0x2d4c57(_0x362d69);}else{return _0x42b39d(_0x5e04a1);}});});}function checkTranscribeJob(_0xd2132e,_0x19eb89,_0x14a52f){var _0x5d143c;return new BPromise(function(_0x34ccc5,_0x5c1c7d){logger[_0x3dea('0xc')](util[_0x3dea('0xd')](_0x3dea('0xe'),_0xd2132e['id'],_0xd2132e[_0x3dea('0xf')]));return getTranscriptionJob(_0x14a52f[_0x3dea('0x10')],_0x14a52f['data2'],_0x19eb89['transcribeRegion'],_0xd2132e['transcribeName'])['then'](function(_0x407941){logger[_0x3dea('0xc')](util[_0x3dea('0xd')](_0x3dea('0x11'),_0xd2132e['id'],_0xd2132e['transcribeName'],_0x407941['TranscriptionJob'][_0x3dea('0x12')]));if(!_0xd2132e[_0x3dea('0x13')]){switch(_0x407941[_0x3dea('0x14')]['TranscriptionJobStatus']){case'COMPLETED':var _0x5e8681={'transcribeStatus':_0x407941[_0x3dea('0x14')][_0x3dea('0x12')],'fileUri':_0x407941[_0x3dea('0x14')][_0x3dea('0x15')][_0x3dea('0x16')]};logger['info'](util[_0x3dea('0xd')]('[RECORDING:%d]\x20Get\x20transcript',_0xd2132e['id']));return rp({'uri':_0x407941['TranscriptionJob'][_0x3dea('0x15')][_0x3dea('0x16')],'json':!![]})['then'](function(_0x5cdf2f){logger['info'](util[_0x3dea('0xd')](_0x3dea('0x17'),_0xd2132e['id']));if(_0x5cdf2f&&_0x5cdf2f[_0x3dea('0x18')]&&_0x5cdf2f[_0x3dea('0x18')]['transcripts']&&_0x5cdf2f['results']['transcripts'][_0x3dea('0x19')]){_0x5e8681['fileText']='';for(var _0x33fe7d=0x0;_0x33fe7d<_0x5cdf2f[_0x3dea('0x18')][_0x3dea('0x1a')][_0x3dea('0x19')];_0x33fe7d++){_0x5e8681[_0x3dea('0x13')]+=_0x5cdf2f[_0x3dea('0x18')]['transcripts'][_0x33fe7d][_0x3dea('0x1b')]+'';}}return _0xd2132e[_0x3dea('0x1c')](_0x5e8681);})['then'](function(){logger[_0x3dea('0xc')](util[_0x3dea('0xd')]('[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated',_0xd2132e['id']));if(!_0xd2132e[_0x3dea('0x1d')]){throw new db[(_0x3dea('0x1e'))][(_0x3dea('0x1f'))](_0x3dea('0x20'));}if(!_0x19eb89[_0x3dea('0x21')]||!_0x19eb89[_0x3dea('0x22')]||!_0x19eb89[_0x3dea('0x23')]||!_0x19eb89[_0x3dea('0x24')]||!_0x19eb89['bucket']){throw new db[(_0x3dea('0x1e'))][(_0x3dea('0x1f'))](_0x3dea('0x25'));}if(!_0x5e8681[_0x3dea('0x13')]){throw new Error(_0x3dea('0x26'));}if(_0x19eb89[_0x3dea('0x22')]===_0x14a52f['id']){return _0x14a52f;}else{return db['CloudProvider'][_0x3dea('0x27')]({'where':{'id':_settings[_0x3dea('0x22')]}});}})[_0x3dea('0x28')](function(_0x5e85ba){if(!_0x5e85ba){throw new db[(_0x3dea('0x1e'))][(_0x3dea('0x1f'))](_0x3dea('0x29'));}if(!_0x5e85ba[_0x3dea('0x10')]||!_0x5e85ba[_0x3dea('0x2a')]){throw new db[(_0x3dea('0x1e'))]['ValidationError']('Cloud\x20Provider\x20not\x20configured');}_0x5d143c=_0x5e85ba;logger[_0x3dea('0xc')](util[_0x3dea('0xd')](_0x3dea('0x2b'),_0xd2132e['id']));return sentiment(_0x5d143c['data1'],_0x5d143c[_0x3dea('0x2a')],_0x19eb89[_0x3dea('0x23')],_0x5e8681[_0x3dea('0x13')],_0x19eb89[_0x3dea('0x24')]);})[_0x3dea('0x28')](function(_0x4e54c2){logger[_0x3dea('0xc')](util[_0x3dea('0xd')](_0x3dea('0x2c'),_0xd2132e['id']));return _0xd2132e[_0x3dea('0x1c')]({'sentiment':_0x4e54c2[_0x3dea('0x2d')],'sPositive':_0x4e54c2[_0x3dea('0x2e')][_0x3dea('0x2f')],'sNegative':_0x4e54c2[_0x3dea('0x2e')]['Negative'],'sMixed':_0x4e54c2[_0x3dea('0x2e')][_0x3dea('0x30')],'sNeutral':_0x4e54c2[_0x3dea('0x2e')][_0x3dea('0x31')]});})[_0x3dea('0x28')](function(){logger[_0x3dea('0xc')](util[_0x3dea('0xd')](_0x3dea('0x32'),_0xd2132e['id']));_0x34ccc5();});case _0x3dea('0x33'):return _0xd2132e[_0x3dea('0x1c')]({'transcribeStatus':_0x3dea('0x33'),'failureReason':_0x407941[_0x3dea('0x14')][_0x3dea('0x34')]})[_0x3dea('0x28')](function(){logger[_0x3dea('0xc')](util[_0x3dea('0xd')](_0x3dea('0x32'),_0xd2132e['id']));_0x34ccc5();});default:logger[_0x3dea('0xc')](util[_0x3dea('0xd')]('[RECORDING:%d]\x20Transcript\x20Job\x20status\x20not\x20managed',_0xd2132e['id']));break;}}else{return BPromise[_0x3dea('0x35')]()[_0x3dea('0x28')](function(){if(!_0xd2132e[_0x3dea('0x1d')]){throw new db[(_0x3dea('0x1e'))][(_0x3dea('0x1f'))](_0x3dea('0x20'));}if(!_0x19eb89[_0x3dea('0x21')]||!_0x19eb89['sentimentAccountId']||!_0x19eb89[_0x3dea('0x23')]||!_0x19eb89[_0x3dea('0x24')]||!_0x19eb89[_0x3dea('0x36')]){throw new db[(_0x3dea('0x1e'))][(_0x3dea('0x1f'))](_0x3dea('0x25'));}if(!_0xd2132e[_0x3dea('0x13')]){throw new Error('Transcript\x20not\x20available');}if(_0x19eb89[_0x3dea('0x22')]===_0x14a52f['id']){return _0x14a52f;}else{return db[_0x3dea('0x37')][_0x3dea('0x27')]({'where':{'id':_settings[_0x3dea('0x22')]}});}})[_0x3dea('0x28')](function(_0x105ee7){if(!_0x105ee7){throw new db[(_0x3dea('0x1e'))][(_0x3dea('0x1f'))]('Cloud\x20Provider\x20not\x20available');}if(!_0x105ee7['data1']||!_0x105ee7[_0x3dea('0x2a')]){throw new db[(_0x3dea('0x1e'))][(_0x3dea('0x1f'))](_0x3dea('0x38'));}_0x5d143c=_0x105ee7;logger[_0x3dea('0xc')](util['format'](_0x3dea('0x2b'),_0xd2132e['id']));return sentiment(_0x5d143c[_0x3dea('0x10')],_0x5d143c[_0x3dea('0x2a')],_0x19eb89['sentimentRegion'],_0xd2132e[_0x3dea('0x13')],_0x19eb89[_0x3dea('0x24')]);})[_0x3dea('0x28')](function(_0xe0b31){logger[_0x3dea('0xc')](util[_0x3dea('0xd')](_0x3dea('0x2c'),_0xd2132e['id']));return _0xd2132e[_0x3dea('0x1c')]({'sentiment':_0xe0b31['Sentiment'],'sPositive':_0xe0b31[_0x3dea('0x2e')][_0x3dea('0x2f')],'sNegative':_0xe0b31[_0x3dea('0x2e')]['Negative'],'sMixed':_0xe0b31[_0x3dea('0x2e')]['Mixed'],'sNeutral':_0xe0b31[_0x3dea('0x2e')][_0x3dea('0x31')],'transcribeStatus':_0x3dea('0x39')});})['then'](function(){logger[_0x3dea('0xc')](util[_0x3dea('0xd')]('[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated',_0xd2132e['id']));_0x34ccc5();});}})['catch'](function(_0x8d40c9){if(_0x8d40c9){if(!_0x8d40c9[_0x3dea('0x3a')]||_0x8d40c9[_0x3dea('0x3a')]!==_0x3dea('0x3b')){logger['error'](util['format'](_0x3dea('0x3c'),_0xd2132e['id']),util[_0x3dea('0x3d')](_0x8d40c9,{'showHidden':![],'depth':null}));}}_0x34ccc5();});});}function checkTranscribe(){var _0x14c1a3;var _0x16bced;var _0xd9310d;return db[_0x3dea('0x3e')][_0x3dea('0x3f')]({'where':{'transcribeStatus':_0x3dea('0x40')}})[_0x3dea('0x28')](function(_0x5d9828){if(!_0x5d9828||!_0x5d9828['length']){throw new db[(_0x3dea('0x1e'))][(_0x3dea('0x1f'))](_0x3dea('0x41'));}_0x14c1a3=_0x5d9828;return db['Setting'][_0x3dea('0x27')]({'where':{'id':0x1}});})[_0x3dea('0x28')](function(_0x4f5832){if(!_0x4f5832){throw new db['Sequelize'][(_0x3dea('0x1f'))]('Settings\x20not\x20available');}_0x16bced=_0x4f5832;if(!_0x16bced[_0x3dea('0x42')]||!_0x16bced[_0x3dea('0x43')]||!_0x16bced['transcribeRegion']||!_0x16bced[_0x3dea('0x24')]||!_0x16bced[_0x3dea('0x36')]){throw new db['Sequelize'][(_0x3dea('0x1f'))](_0x3dea('0x44'));}return db['CloudProvider'][_0x3dea('0x27')]({'where':{'id':_0x16bced[_0x3dea('0x43')]}});})[_0x3dea('0x28')](function(_0x50d1ca){if(!_0x50d1ca){throw new db['Sequelize'][(_0x3dea('0x1f'))](_0x3dea('0x29'));}if(!_0x50d1ca[_0x3dea('0x10')]||!_0x50d1ca[_0x3dea('0x2a')]){throw new db[(_0x3dea('0x1e'))][(_0x3dea('0x1f'))](_0x3dea('0x38'));}_0xd9310d=_0x50d1ca;var _0x332903=[];_0x14c1a3['forEach'](function(_0x33399e){_0x332903[_0x3dea('0x45')](checkTranscribeJob(_0x33399e,_0x16bced,_0xd9310d));});return BPromise[_0x3dea('0x46')](_0x332903);})['catch'](function(_0x398883){if(_0x398883){if(!_0x398883['name']||_0x398883[_0x3dea('0x3a')]!==_0x3dea('0x3b')){logger['error'](util[_0x3dea('0x3d')](_0x398883,{'showHidden':![],'depth':null}));}}});}exports[_0x3dea('0x47')]=function(){setInterval(function(){return checkTranscribe();},0x3c*0x3e8);return checkTranscribe();};