Built motion from commit 10af8726.|2.6.34
[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 _0xb01a=['transcribeName','TranscriptionJobStatus','fileText','COMPLETED','TranscriptionJob','Transcript','TranscriptFileUri','[RECORDING:%d]\x20Get\x20transcript','[RECORDING:%d]\x20Transcript\x20downloaded','results','transcripts','length','transcript','update','[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated','tempSentiment','Sequelize','ValidationError','Sentiment\x20Analysis\x20not\x20requested','sentimentAccountId','sentimentRegion','bucket','Sentiment\x20Analysis\x20not\x20configured','Transcript\x20not\x20available','CloudProvider','Cloud\x20Provider\x20not\x20available','data1','data2','Cloud\x20Provider\x20not\x20configured','[RECORDING:%d]\x20Requesting\x20sentiment\x20analysis','[RECORDING:%d]\x20Sentiment\x20Analysis\x20available','Sentiment','SentimentScore','Positive','Negative','Mixed','Neutral','FAILED','FailureReason','[RECORDING:%d]\x20Transcript\x20Job\x20status\x20not\x20managed','sentiment','language','catch','name','error','[RECORDING:%d]\x20Error\x20running\x20Transcribe\x20&\x20Sentiment\x20Analysis','VoiceRecording','IN_PROGRESS','No\x20transcribe\x20job\x20to\x20check','Setting','Settings\x20not\x20available','transcribeAccountId','Transcribe\x20not\x20configured','forEach','SequelizeValidationError','inspect','start','lodash','aws-sdk','request-promise','util','bluebird','../../mysqldb','../../config/logger','transcribe','TranscribeService','Comprehend','substring','info','format','transcribeRegion','then'];(function(_0x456e47,_0x1bfc8f){var _0x45cdc7=function(_0x105d06){while(--_0x105d06){_0x456e47['push'](_0x456e47['shift']());}};_0x45cdc7(++_0x1bfc8f);}(_0xb01a,0x1a1));var _0xab01=function(_0x1bf611,_0x5a169b){_0x1bf611=_0x1bf611-0x0;var _0x46c450=_0xb01a[_0x1bf611];return _0x46c450;};var _=require(_0xab01('0x0'));var AWS=require(_0xab01('0x1'));var rp=require(_0xab01('0x2'));var util=require(_0xab01('0x3'));var BPromise=require(_0xab01('0x4'));var db=require(_0xab01('0x5'))['db'];var logger=require(_0xab01('0x6'))(_0xab01('0x7'));function getTranscriptionJob(_0x472445,_0x3713b6,_0x257db6,_0x47103c){return new Promise(function(_0x22db85,_0x5d8dd9){var _0x13957f=new AWS[(_0xab01('0x8'))]({'accessKeyId':_0x3713b6,'secretAccessKey':_0x472445,'region':_0x257db6});_0x13957f['getTranscriptionJob']({'TranscriptionJobName':_0x47103c},function(_0x52146e,_0x71864b){if(_0x52146e){return _0x5d8dd9(_0x52146e);}else{return _0x22db85(_0x71864b);}});});}function sentiment(_0x13f309,_0x5bc6e9,_0x1a2b45,_0x48be78,_0x57b047){return new Promise(function(_0x434bf3,_0x5c0122){var _0x2bac1d=new AWS[(_0xab01('0x9'))]({'accessKeyId':_0x5bc6e9,'secretAccessKey':_0x13f309,'region':_0x1a2b45});_0x2bac1d['detectSentiment']({'Text':_0x48be78,'LanguageCode':_0x57b047[_0xab01('0xa')](0x0,0x2)},function(_0x515eda,_0x5d9bbd){if(_0x515eda){return _0x5c0122(_0x515eda);}else{return _0x434bf3(_0x5d9bbd);}});});}function checkTranscribeJob(_0x3410a1,_0x37088b,_0x1ededa){var _0xe9d23c;return new BPromise(function(_0x449402,_0x215a9e){logger[_0xab01('0xb')](util[_0xab01('0xc')]('[RECORDING:%d]\x20Get\x20status\x20for\x20transcript\x20job\x20(%s)',_0x3410a1['id'],_0x3410a1['transcribeName']));return getTranscriptionJob(_0x1ededa['data1'],_0x1ededa['data2'],_0x37088b[_0xab01('0xd')],_0x3410a1['transcribeName'])[_0xab01('0xe')](function(_0x2d9c23){logger[_0xab01('0xb')](util[_0xab01('0xc')]('[RECORDING:%d]\x20Status\x20of\x20transcript\x20job\x20(%s):\x20%s',_0x3410a1['id'],_0x3410a1[_0xab01('0xf')],_0x2d9c23['TranscriptionJob'][_0xab01('0x10')]));if(!_0x3410a1[_0xab01('0x11')]){switch(_0x2d9c23['TranscriptionJob']['TranscriptionJobStatus']){case _0xab01('0x12'):var _0xcd917d={'transcribeStatus':_0x2d9c23[_0xab01('0x13')][_0xab01('0x10')],'fileUri':_0x2d9c23[_0xab01('0x13')][_0xab01('0x14')][_0xab01('0x15')]};logger[_0xab01('0xb')](util[_0xab01('0xc')](_0xab01('0x16'),_0x3410a1['id']));return rp({'uri':_0x2d9c23['TranscriptionJob'][_0xab01('0x14')][_0xab01('0x15')],'json':!![]})[_0xab01('0xe')](function(_0xac3a88){logger[_0xab01('0xb')](util[_0xab01('0xc')](_0xab01('0x17'),_0x3410a1['id']));if(_0xac3a88&&_0xac3a88[_0xab01('0x18')]&&_0xac3a88['results'][_0xab01('0x19')]&&_0xac3a88[_0xab01('0x18')][_0xab01('0x19')][_0xab01('0x1a')]){_0xcd917d[_0xab01('0x11')]='';for(var _0x1ebc65=0x0;_0x1ebc65<_0xac3a88[_0xab01('0x18')]['transcripts'][_0xab01('0x1a')];_0x1ebc65++){_0xcd917d[_0xab01('0x11')]+=_0xac3a88[_0xab01('0x18')][_0xab01('0x19')][_0x1ebc65][_0xab01('0x1b')]+'';}}return _0x3410a1[_0xab01('0x1c')](_0xcd917d);})[_0xab01('0xe')](function(){logger['info'](util[_0xab01('0xc')](_0xab01('0x1d'),_0x3410a1['id']));if(!_0x3410a1[_0xab01('0x1e')]){throw new db[(_0xab01('0x1f'))][(_0xab01('0x20'))](_0xab01('0x21'));}if(!_0x37088b['sentiment']||!_0x37088b[_0xab01('0x22')]||!_0x37088b[_0xab01('0x23')]||!_0x37088b['language']||!_0x37088b[_0xab01('0x24')]){throw new db[(_0xab01('0x1f'))][(_0xab01('0x20'))](_0xab01('0x25'));}if(!_0xcd917d[_0xab01('0x11')]){throw new Error(_0xab01('0x26'));}if(_0x37088b[_0xab01('0x22')]===_0x1ededa['id']){return _0x1ededa;}else{return db[_0xab01('0x27')]['findOne']({'where':{'id':_settings[_0xab01('0x22')]}});}})[_0xab01('0xe')](function(_0x51a120){if(!_0x51a120){throw new db[(_0xab01('0x1f'))][(_0xab01('0x20'))](_0xab01('0x28'));}if(!_0x51a120[_0xab01('0x29')]||!_0x51a120[_0xab01('0x2a')]){throw new db[(_0xab01('0x1f'))]['ValidationError'](_0xab01('0x2b'));}_0xe9d23c=_0x51a120;logger[_0xab01('0xb')](util[_0xab01('0xc')](_0xab01('0x2c'),_0x3410a1['id']));return sentiment(_0xe9d23c[_0xab01('0x29')],_0xe9d23c[_0xab01('0x2a')],_0x37088b[_0xab01('0x23')],_0xcd917d['fileText'],_0x37088b['language']);})['then'](function(_0x43594c){logger[_0xab01('0xb')](util[_0xab01('0xc')](_0xab01('0x2d'),_0x3410a1['id']));return _0x3410a1[_0xab01('0x1c')]({'sentiment':_0x43594c[_0xab01('0x2e')],'sPositive':_0x43594c[_0xab01('0x2f')][_0xab01('0x30')],'sNegative':_0x43594c[_0xab01('0x2f')][_0xab01('0x31')],'sMixed':_0x43594c[_0xab01('0x2f')][_0xab01('0x32')],'sNeutral':_0x43594c[_0xab01('0x2f')][_0xab01('0x33')]});})[_0xab01('0xe')](function(){logger[_0xab01('0xb')](util['format']('[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated',_0x3410a1['id']));_0x449402();});case _0xab01('0x34'):return _0x3410a1[_0xab01('0x1c')]({'transcribeStatus':'FAILED','failureReason':_0x2d9c23[_0xab01('0x13')][_0xab01('0x35')]})[_0xab01('0xe')](function(){logger['info'](util[_0xab01('0xc')]('[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated',_0x3410a1['id']));_0x449402();});default:logger['info'](util[_0xab01('0xc')](_0xab01('0x36'),_0x3410a1['id']));break;}}else{return BPromise['resolve']()[_0xab01('0xe')](function(){if(!_0x3410a1[_0xab01('0x1e')]){throw new db['Sequelize'][(_0xab01('0x20'))](_0xab01('0x21'));}if(!_0x37088b[_0xab01('0x37')]||!_0x37088b[_0xab01('0x22')]||!_0x37088b[_0xab01('0x23')]||!_0x37088b[_0xab01('0x38')]||!_0x37088b['bucket']){throw new db[(_0xab01('0x1f'))][(_0xab01('0x20'))](_0xab01('0x25'));}if(!_0x3410a1[_0xab01('0x11')]){throw new Error(_0xab01('0x26'));}if(_0x37088b['sentimentAccountId']===_0x1ededa['id']){return _0x1ededa;}else{return db['CloudProvider']['findOne']({'where':{'id':_settings[_0xab01('0x22')]}});}})[_0xab01('0xe')](function(_0x520182){if(!_0x520182){throw new db[(_0xab01('0x1f'))][(_0xab01('0x20'))](_0xab01('0x28'));}if(!_0x520182[_0xab01('0x29')]||!_0x520182[_0xab01('0x2a')]){throw new db[(_0xab01('0x1f'))][(_0xab01('0x20'))](_0xab01('0x2b'));}_0xe9d23c=_0x520182;logger[_0xab01('0xb')](util[_0xab01('0xc')](_0xab01('0x2c'),_0x3410a1['id']));return sentiment(_0xe9d23c[_0xab01('0x29')],_0xe9d23c[_0xab01('0x2a')],_0x37088b[_0xab01('0x23')],_0x3410a1[_0xab01('0x11')],_0x37088b[_0xab01('0x38')]);})[_0xab01('0xe')](function(_0x518c6b){logger['info'](util[_0xab01('0xc')](_0xab01('0x2d'),_0x3410a1['id']));return _0x3410a1[_0xab01('0x1c')]({'sentiment':_0x518c6b[_0xab01('0x2e')],'sPositive':_0x518c6b[_0xab01('0x2f')][_0xab01('0x30')],'sNegative':_0x518c6b['SentimentScore'][_0xab01('0x31')],'sMixed':_0x518c6b[_0xab01('0x2f')]['Mixed'],'sNeutral':_0x518c6b[_0xab01('0x2f')][_0xab01('0x33')],'transcribeStatus':_0xab01('0x12')});})['then'](function(){logger[_0xab01('0xb')](util[_0xab01('0xc')](_0xab01('0x1d'),_0x3410a1['id']));_0x449402();});}})[_0xab01('0x39')](function(_0x3fcd0f){if(_0x3fcd0f){if(!_0x3fcd0f['name']||_0x3fcd0f[_0xab01('0x3a')]!=='SequelizeValidationError'){logger[_0xab01('0x3b')](util[_0xab01('0xc')](_0xab01('0x3c'),_0x3410a1['id']),util['inspect'](_0x3fcd0f,{'showHidden':![],'depth':null}));}}_0x449402();});});}function checkTranscribe(){var _0xc3fe64;var _0x247261;var _0x46e255;return db[_0xab01('0x3d')]['findAll']({'where':{'transcribeStatus':_0xab01('0x3e')}})[_0xab01('0xe')](function(_0x13802e){if(!_0x13802e||!_0x13802e[_0xab01('0x1a')]){throw new db[(_0xab01('0x1f'))]['ValidationError'](_0xab01('0x3f'));}_0xc3fe64=_0x13802e;return db[_0xab01('0x40')]['findOne']({'where':{'id':0x1}});})[_0xab01('0xe')](function(_0x32fd3d){if(!_0x32fd3d){throw new db[(_0xab01('0x1f'))][(_0xab01('0x20'))](_0xab01('0x41'));}_0x247261=_0x32fd3d;if(!_0x247261[_0xab01('0x7')]||!_0x247261[_0xab01('0x42')]||!_0x247261['transcribeRegion']||!_0x247261['language']||!_0x247261[_0xab01('0x24')]){throw new db[(_0xab01('0x1f'))][(_0xab01('0x20'))](_0xab01('0x43'));}return db['CloudProvider']['findOne']({'where':{'id':_0x247261[_0xab01('0x42')]}});})[_0xab01('0xe')](function(_0x1f1b6f){if(!_0x1f1b6f){throw new db[(_0xab01('0x1f'))][(_0xab01('0x20'))](_0xab01('0x28'));}if(!_0x1f1b6f[_0xab01('0x29')]||!_0x1f1b6f['data2']){throw new db['Sequelize'][(_0xab01('0x20'))](_0xab01('0x2b'));}_0x46e255=_0x1f1b6f;var _0x384cc6=[];_0xc3fe64[_0xab01('0x44')](function(_0x3eba5e){_0x384cc6['push'](checkTranscribeJob(_0x3eba5e,_0x247261,_0x46e255));});return BPromise['all'](_0x384cc6);})['catch'](function(_0x6e55f4){if(_0x6e55f4){if(!_0x6e55f4[_0xab01('0x3a')]||_0x6e55f4[_0xab01('0x3a')]!==_0xab01('0x45')){logger[_0xab01('0x3b')](util[_0xab01('0x46')](_0x6e55f4,{'showHidden':![],'depth':null}));}}});}exports[_0xab01('0x47')]=function(){setInterval(function(){return checkTranscribe();},0x3c*0x3e8);return checkTranscribe();};