Built motion from commit 14588770.|2.5.38
[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 _0x7633=['transcript','update','[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated','tempSentiment','Sequelize','ValidationError','sentiment','sentimentAccountId','sentimentRegion','bucket','Transcript\x20not\x20available','CloudProvider','findOne','Cloud\x20Provider\x20not\x20available','[RECORDING:%d]\x20Requesting\x20sentiment\x20analysis','[RECORDING:%d]\x20Sentiment\x20Analysis\x20available','Sentiment','SentimentScore','Positive','Negative','Mixed','FAILED','[RECORDING:%d]\x20Transcript\x20Job\x20status\x20not\x20managed','resolve','language','Cloud\x20Provider\x20not\x20configured','Neutral','catch','SequelizeValidationError','VoiceRecording','findAll','IN_PROGRESS','No\x20transcribe\x20job\x20to\x20check','Setting','Settings\x20not\x20available','transcribeAccountId','name','inspect','lodash','aws-sdk','request-promise','util','bluebird','../../config/logger','transcribe','TranscribeService','getTranscriptionJob','Comprehend','detectSentiment','substring','info','format','[RECORDING:%d]\x20Get\x20status\x20for\x20transcript\x20job\x20(%s)','transcribeName','data1','data2','transcribeRegion','then','TranscriptionJob','TranscriptionJobStatus','fileText','COMPLETED','Transcript','TranscriptFileUri','[RECORDING:%d]\x20Get\x20transcript','[RECORDING:%d]\x20Transcript\x20downloaded','results','transcripts','length'];(function(_0x590851,_0x496bee){var _0x3b0115=function(_0x5140cc){while(--_0x5140cc){_0x590851['push'](_0x590851['shift']());}};_0x3b0115(++_0x496bee);}(_0x7633,0x1c4));var _0x3763=function(_0x1035c1,_0x2d8583){_0x1035c1=_0x1035c1-0x0;var _0x308d67=_0x7633[_0x1035c1];return _0x308d67;};var _=require(_0x3763('0x0'));var AWS=require(_0x3763('0x1'));var rp=require(_0x3763('0x2'));var util=require(_0x3763('0x3'));var BPromise=require(_0x3763('0x4'));var db=require('../../mysqldb')['db'];var logger=require(_0x3763('0x5'))(_0x3763('0x6'));function getTranscriptionJob(_0x56a283,_0x5f4eb8,_0xa0f328,_0x5bfba6){return new Promise(function(_0x50585d,_0x396634){var _0x8a2d3e=new AWS[(_0x3763('0x7'))]({'accessKeyId':_0x5f4eb8,'secretAccessKey':_0x56a283,'region':_0xa0f328});_0x8a2d3e[_0x3763('0x8')]({'TranscriptionJobName':_0x5bfba6},function(_0x50b634,_0x550b39){if(_0x50b634){return _0x396634(_0x50b634);}else{return _0x50585d(_0x550b39);}});});}function sentiment(_0x232c86,_0x277d34,_0x4aa292,_0x5c872d,_0x44dc63){return new Promise(function(_0x1a83bb,_0x401909){var _0x29ec1c=new AWS[(_0x3763('0x9'))]({'accessKeyId':_0x277d34,'secretAccessKey':_0x232c86,'region':_0x4aa292});_0x29ec1c[_0x3763('0xa')]({'Text':_0x5c872d,'LanguageCode':_0x44dc63[_0x3763('0xb')](0x0,0x2)},function(_0x4b3226,_0x2cf053){if(_0x4b3226){return _0x401909(_0x4b3226);}else{return _0x1a83bb(_0x2cf053);}});});}function checkTranscribeJob(_0xa9aff3,_0x11d390,_0x52728b){var _0x59980c;return new BPromise(function(_0x10602e,_0x58e8c9){logger[_0x3763('0xc')](util[_0x3763('0xd')](_0x3763('0xe'),_0xa9aff3['id'],_0xa9aff3[_0x3763('0xf')]));return getTranscriptionJob(_0x52728b[_0x3763('0x10')],_0x52728b[_0x3763('0x11')],_0x11d390[_0x3763('0x12')],_0xa9aff3['transcribeName'])[_0x3763('0x13')](function(_0x368434){logger[_0x3763('0xc')](util['format']('[RECORDING:%d]\x20Status\x20of\x20transcript\x20job\x20(%s):\x20%s',_0xa9aff3['id'],_0xa9aff3['transcribeName'],_0x368434[_0x3763('0x14')][_0x3763('0x15')]));if(!_0xa9aff3[_0x3763('0x16')]){switch(_0x368434[_0x3763('0x14')][_0x3763('0x15')]){case _0x3763('0x17'):var _0x461924={'transcribeStatus':_0x368434['TranscriptionJob'][_0x3763('0x15')],'fileUri':_0x368434[_0x3763('0x14')][_0x3763('0x18')][_0x3763('0x19')]};logger['info'](util['format'](_0x3763('0x1a'),_0xa9aff3['id']));return rp({'uri':_0x368434[_0x3763('0x14')][_0x3763('0x18')][_0x3763('0x19')],'json':!![]})['then'](function(_0x36ff74){logger['info'](util[_0x3763('0xd')](_0x3763('0x1b'),_0xa9aff3['id']));if(_0x36ff74&&_0x36ff74['results']&&_0x36ff74[_0x3763('0x1c')][_0x3763('0x1d')]&&_0x36ff74[_0x3763('0x1c')][_0x3763('0x1d')][_0x3763('0x1e')]){_0x461924[_0x3763('0x16')]='';for(var _0x6ebb90=0x0;_0x6ebb90<_0x36ff74['results']['transcripts']['length'];_0x6ebb90++){_0x461924[_0x3763('0x16')]+=_0x36ff74[_0x3763('0x1c')][_0x3763('0x1d')][_0x6ebb90][_0x3763('0x1f')]+'';}}return _0xa9aff3[_0x3763('0x20')](_0x461924);})[_0x3763('0x13')](function(){logger[_0x3763('0xc')](util[_0x3763('0xd')](_0x3763('0x21'),_0xa9aff3['id']));if(!_0xa9aff3[_0x3763('0x22')]){throw new db[(_0x3763('0x23'))][(_0x3763('0x24'))]('Sentiment\x20Analysis\x20not\x20requested');}if(!_0x11d390[_0x3763('0x25')]||!_0x11d390[_0x3763('0x26')]||!_0x11d390[_0x3763('0x27')]||!_0x11d390['language']||!_0x11d390[_0x3763('0x28')]){throw new db[(_0x3763('0x23'))][(_0x3763('0x24'))]('Sentiment\x20Analysis\x20not\x20configured');}if(!_0x461924[_0x3763('0x16')]){throw new Error(_0x3763('0x29'));}if(_0x11d390[_0x3763('0x26')]===_0x52728b['id']){return _0x52728b;}else{return db[_0x3763('0x2a')][_0x3763('0x2b')]({'where':{'id':_settings['sentimentAccountId']}});}})['then'](function(_0x325b59){if(!_0x325b59){throw new db[(_0x3763('0x23'))][(_0x3763('0x24'))](_0x3763('0x2c'));}if(!_0x325b59[_0x3763('0x10')]||!_0x325b59[_0x3763('0x11')]){throw new db[(_0x3763('0x23'))][(_0x3763('0x24'))]('Cloud\x20Provider\x20not\x20configured');}_0x59980c=_0x325b59;logger[_0x3763('0xc')](util[_0x3763('0xd')](_0x3763('0x2d'),_0xa9aff3['id']));return sentiment(_0x59980c[_0x3763('0x10')],_0x59980c['data2'],_0x11d390['sentimentRegion'],_0x461924['fileText'],_0x11d390['language']);})[_0x3763('0x13')](function(_0x464ef8){logger['info'](util[_0x3763('0xd')](_0x3763('0x2e'),_0xa9aff3['id']));return _0xa9aff3['update']({'sentiment':_0x464ef8[_0x3763('0x2f')],'sPositive':_0x464ef8[_0x3763('0x30')][_0x3763('0x31')],'sNegative':_0x464ef8[_0x3763('0x30')][_0x3763('0x32')],'sMixed':_0x464ef8[_0x3763('0x30')][_0x3763('0x33')],'sNeutral':_0x464ef8[_0x3763('0x30')]['Neutral']});})[_0x3763('0x13')](function(){logger[_0x3763('0xc')](util['format'](_0x3763('0x21'),_0xa9aff3['id']));_0x10602e();});case _0x3763('0x34'):return _0xa9aff3[_0x3763('0x20')]({'transcribeStatus':'FAILED','failureReason':_0x368434[_0x3763('0x14')]['FailureReason']})[_0x3763('0x13')](function(){logger['info'](util[_0x3763('0xd')](_0x3763('0x21'),_0xa9aff3['id']));_0x10602e();});default:logger['info'](util[_0x3763('0xd')](_0x3763('0x35'),_0xa9aff3['id']));break;}}else{return BPromise[_0x3763('0x36')]()[_0x3763('0x13')](function(){if(!_0xa9aff3['tempSentiment']){throw new db[(_0x3763('0x23'))][(_0x3763('0x24'))]('Sentiment\x20Analysis\x20not\x20requested');}if(!_0x11d390[_0x3763('0x25')]||!_0x11d390[_0x3763('0x26')]||!_0x11d390['sentimentRegion']||!_0x11d390[_0x3763('0x37')]||!_0x11d390[_0x3763('0x28')]){throw new db[(_0x3763('0x23'))][(_0x3763('0x24'))]('Sentiment\x20Analysis\x20not\x20configured');}if(!_0xa9aff3[_0x3763('0x16')]){throw new Error(_0x3763('0x29'));}if(_0x11d390[_0x3763('0x26')]===_0x52728b['id']){return _0x52728b;}else{return db[_0x3763('0x2a')]['findOne']({'where':{'id':_settings['sentimentAccountId']}});}})['then'](function(_0x58439b){if(!_0x58439b){throw new db['Sequelize'][(_0x3763('0x24'))](_0x3763('0x2c'));}if(!_0x58439b[_0x3763('0x10')]||!_0x58439b['data2']){throw new db[(_0x3763('0x23'))][(_0x3763('0x24'))](_0x3763('0x38'));}_0x59980c=_0x58439b;logger[_0x3763('0xc')](util[_0x3763('0xd')](_0x3763('0x2d'),_0xa9aff3['id']));return sentiment(_0x59980c[_0x3763('0x10')],_0x59980c[_0x3763('0x11')],_0x11d390[_0x3763('0x27')],_0xa9aff3[_0x3763('0x16')],_0x11d390[_0x3763('0x37')]);})['then'](function(_0x587f83){logger['info'](util[_0x3763('0xd')](_0x3763('0x2e'),_0xa9aff3['id']));return _0xa9aff3[_0x3763('0x20')]({'sentiment':_0x587f83[_0x3763('0x2f')],'sPositive':_0x587f83['SentimentScore'][_0x3763('0x31')],'sNegative':_0x587f83['SentimentScore'][_0x3763('0x32')],'sMixed':_0x587f83[_0x3763('0x30')][_0x3763('0x33')],'sNeutral':_0x587f83[_0x3763('0x30')][_0x3763('0x39')],'transcribeStatus':_0x3763('0x17')});})[_0x3763('0x13')](function(){logger['info'](util[_0x3763('0xd')](_0x3763('0x21'),_0xa9aff3['id']));_0x10602e();});}})[_0x3763('0x3a')](function(_0x426b7c){if(_0x426b7c){if(!_0x426b7c['name']||_0x426b7c['name']!==_0x3763('0x3b')){logger['error'](util[_0x3763('0xd')]('[RECORDING:%d]\x20Error\x20running\x20Transcribe\x20&\x20Sentiment\x20Analysis',_0xa9aff3['id']),util['inspect'](_0x426b7c,{'showHidden':![],'depth':null}));}}_0x10602e();});});}function checkTranscribe(){var _0x32b0a3;var _0x3b1fea;var _0x1be9fb;return db[_0x3763('0x3c')][_0x3763('0x3d')]({'where':{'transcribeStatus':_0x3763('0x3e')}})[_0x3763('0x13')](function(_0x49dcad){if(!_0x49dcad||!_0x49dcad[_0x3763('0x1e')]){throw new db[(_0x3763('0x23'))][(_0x3763('0x24'))](_0x3763('0x3f'));}_0x32b0a3=_0x49dcad;return db[_0x3763('0x40')]['findOne']({'where':{'id':0x1}});})[_0x3763('0x13')](function(_0x197a9d){if(!_0x197a9d){throw new db[(_0x3763('0x23'))]['ValidationError'](_0x3763('0x41'));}_0x3b1fea=_0x197a9d;if(!_0x3b1fea[_0x3763('0x6')]||!_0x3b1fea['transcribeAccountId']||!_0x3b1fea[_0x3763('0x12')]||!_0x3b1fea['language']||!_0x3b1fea[_0x3763('0x28')]){throw new db[(_0x3763('0x23'))]['ValidationError']('Transcribe\x20not\x20configured');}return db['CloudProvider'][_0x3763('0x2b')]({'where':{'id':_0x3b1fea[_0x3763('0x42')]}});})[_0x3763('0x13')](function(_0x281547){if(!_0x281547){throw new db[(_0x3763('0x23'))][(_0x3763('0x24'))](_0x3763('0x2c'));}if(!_0x281547[_0x3763('0x10')]||!_0x281547['data2']){throw new db[(_0x3763('0x23'))]['ValidationError'](_0x3763('0x38'));}_0x1be9fb=_0x281547;var _0x21975b=[];_0x32b0a3['forEach'](function(_0x20c5ef){_0x21975b['push'](checkTranscribeJob(_0x20c5ef,_0x3b1fea,_0x1be9fb));});return BPromise['all'](_0x21975b);})[_0x3763('0x3a')](function(_0x1bd1f4){if(_0x1bd1f4){if(!_0x1bd1f4[_0x3763('0x43')]||_0x1bd1f4['name']!==_0x3763('0x3b')){logger['error'](util[_0x3763('0x44')](_0x1bd1f4,{'showHidden':![],'depth':null}));}}});}exports['start']=function(){setInterval(function(){return checkTranscribe();},0x3c*0x3e8);return checkTranscribe();};