Built motion from commit (unavailable).|2.5.21
[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 _0x71b7=['FailureReason','[RECORDING:%d]\x20Transcript\x20Job\x20status\x20not\x20managed','resolve','Transcript\x20not\x20available','CloudProvider','catch','name','SequelizeValidationError','error','[RECORDING:%d]\x20Error\x20running\x20Transcribe\x20&\x20Sentiment\x20Analysis','inspect','VoiceRecording','findAll','IN_PROGRESS','length','No\x20transcribe\x20job\x20to\x20check','Setting','Settings\x20not\x20available','transcribeAccountId','Transcribe\x20not\x20configured','forEach','push','all','start','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','data2','transcribeRegion','then','[RECORDING:%d]\x20Status\x20of\x20transcript\x20job\x20(%s):\x20%s','TranscriptionJob','TranscriptionJobStatus','fileText','COMPLETED','Transcript','TranscriptFileUri','[RECORDING:%d]\x20Get\x20transcript','results','transcripts','transcript','update','[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated','tempSentiment','Sequelize','Sentiment\x20Analysis\x20not\x20requested','sentiment','sentimentAccountId','sentimentRegion','language','bucket','ValidationError','Sentiment\x20Analysis\x20not\x20configured','findOne','Cloud\x20Provider\x20not\x20available','data1','Cloud\x20Provider\x20not\x20configured','[RECORDING:%d]\x20Requesting\x20sentiment\x20analysis','[RECORDING:%d]\x20Sentiment\x20Analysis\x20available','Sentiment','SentimentScore','Positive','Negative','Mixed','Neutral','FAILED'];(function(_0x550d12,_0x5384bd){var _0x12103d=function(_0x2a9834){while(--_0x2a9834){_0x550d12['push'](_0x550d12['shift']());}};_0x12103d(++_0x5384bd);}(_0x71b7,0x1a3));var _0x771b=function(_0x216f7d,_0x496249){_0x216f7d=_0x216f7d-0x0;var _0xc49d7f=_0x71b7[_0x216f7d];return _0xc49d7f;};var _=require(_0x771b('0x0'));var AWS=require(_0x771b('0x1'));var rp=require(_0x771b('0x2'));var util=require(_0x771b('0x3'));var BPromise=require(_0x771b('0x4'));var db=require('../../mysqldb')['db'];var logger=require(_0x771b('0x5'))(_0x771b('0x6'));function getTranscriptionJob(_0xa3dd01,_0x27baa9,_0x509b24,_0x5b059e){return new Promise(function(_0x4f313f,_0x709a69){var _0x363e01=new AWS[(_0x771b('0x7'))]({'accessKeyId':_0x27baa9,'secretAccessKey':_0xa3dd01,'region':_0x509b24});_0x363e01[_0x771b('0x8')]({'TranscriptionJobName':_0x5b059e},function(_0x18daf2,_0x28aeb2){if(_0x18daf2){return _0x709a69(_0x18daf2);}else{return _0x4f313f(_0x28aeb2);}});});}function sentiment(_0x275a02,_0x48aad4,_0x298ecc,_0x34fdc4,_0x26e80b){return new Promise(function(_0x17ae7e,_0xef1be2){var _0x51ea2d=new AWS[(_0x771b('0x9'))]({'accessKeyId':_0x48aad4,'secretAccessKey':_0x275a02,'region':_0x298ecc});_0x51ea2d[_0x771b('0xa')]({'Text':_0x34fdc4,'LanguageCode':_0x26e80b[_0x771b('0xb')](0x0,0x2)},function(_0x44a912,_0x56d33e){if(_0x44a912){return _0xef1be2(_0x44a912);}else{return _0x17ae7e(_0x56d33e);}});});}function checkTranscribeJob(_0xa3b249,_0x381f22,_0x2fe956){var _0x256766;return new BPromise(function(_0x3103c4,_0x56dd39){logger[_0x771b('0xc')](util[_0x771b('0xd')](_0x771b('0xe'),_0xa3b249['id'],_0xa3b249[_0x771b('0xf')]));return getTranscriptionJob(_0x2fe956['data1'],_0x2fe956[_0x771b('0x10')],_0x381f22[_0x771b('0x11')],_0xa3b249[_0x771b('0xf')])[_0x771b('0x12')](function(_0x262e19){logger[_0x771b('0xc')](util[_0x771b('0xd')](_0x771b('0x13'),_0xa3b249['id'],_0xa3b249[_0x771b('0xf')],_0x262e19[_0x771b('0x14')][_0x771b('0x15')]));if(!_0xa3b249[_0x771b('0x16')]){switch(_0x262e19['TranscriptionJob'][_0x771b('0x15')]){case _0x771b('0x17'):var _0x50aeb4={'transcribeStatus':_0x262e19[_0x771b('0x14')][_0x771b('0x15')],'fileUri':_0x262e19[_0x771b('0x14')][_0x771b('0x18')][_0x771b('0x19')]};logger[_0x771b('0xc')](util[_0x771b('0xd')](_0x771b('0x1a'),_0xa3b249['id']));return rp({'uri':_0x262e19['TranscriptionJob'][_0x771b('0x18')]['TranscriptFileUri'],'json':!![]})['then'](function(_0x367fb1){logger[_0x771b('0xc')](util['format']('[RECORDING:%d]\x20Transcript\x20downloaded',_0xa3b249['id']));if(_0x367fb1&&_0x367fb1[_0x771b('0x1b')]&&_0x367fb1[_0x771b('0x1b')][_0x771b('0x1c')]&&_0x367fb1[_0x771b('0x1b')][_0x771b('0x1c')]['length']){_0x50aeb4[_0x771b('0x16')]='';for(var _0x183f79=0x0;_0x183f79<_0x367fb1[_0x771b('0x1b')][_0x771b('0x1c')]['length'];_0x183f79++){_0x50aeb4[_0x771b('0x16')]+=_0x367fb1[_0x771b('0x1b')]['transcripts'][_0x183f79][_0x771b('0x1d')]+'';}}return _0xa3b249[_0x771b('0x1e')](_0x50aeb4);})[_0x771b('0x12')](function(){logger[_0x771b('0xc')](util[_0x771b('0xd')](_0x771b('0x1f'),_0xa3b249['id']));if(!_0xa3b249[_0x771b('0x20')]){throw new db[(_0x771b('0x21'))]['ValidationError'](_0x771b('0x22'));}if(!_0x381f22[_0x771b('0x23')]||!_0x381f22[_0x771b('0x24')]||!_0x381f22[_0x771b('0x25')]||!_0x381f22[_0x771b('0x26')]||!_0x381f22[_0x771b('0x27')]){throw new db[(_0x771b('0x21'))][(_0x771b('0x28'))](_0x771b('0x29'));}if(!_0x50aeb4[_0x771b('0x16')]){throw new Error('Transcript\x20not\x20available');}if(_0x381f22['sentimentAccountId']===_0x2fe956['id']){return _0x2fe956;}else{return db['CloudProvider'][_0x771b('0x2a')]({'where':{'id':_settings[_0x771b('0x24')]}});}})[_0x771b('0x12')](function(_0x3aa221){if(!_0x3aa221){throw new db['Sequelize']['ValidationError'](_0x771b('0x2b'));}if(!_0x3aa221[_0x771b('0x2c')]||!_0x3aa221[_0x771b('0x10')]){throw new db['Sequelize'][(_0x771b('0x28'))](_0x771b('0x2d'));}_0x256766=_0x3aa221;logger[_0x771b('0xc')](util[_0x771b('0xd')](_0x771b('0x2e'),_0xa3b249['id']));return sentiment(_0x256766[_0x771b('0x2c')],_0x256766[_0x771b('0x10')],_0x381f22[_0x771b('0x25')],_0x50aeb4['fileText'],_0x381f22['language']);})[_0x771b('0x12')](function(_0x350e96){logger[_0x771b('0xc')](util[_0x771b('0xd')](_0x771b('0x2f'),_0xa3b249['id']));return _0xa3b249[_0x771b('0x1e')]({'sentiment':_0x350e96[_0x771b('0x30')],'sPositive':_0x350e96[_0x771b('0x31')][_0x771b('0x32')],'sNegative':_0x350e96[_0x771b('0x31')][_0x771b('0x33')],'sMixed':_0x350e96[_0x771b('0x31')][_0x771b('0x34')],'sNeutral':_0x350e96[_0x771b('0x31')][_0x771b('0x35')]});})[_0x771b('0x12')](function(){logger[_0x771b('0xc')](util['format'](_0x771b('0x1f'),_0xa3b249['id']));_0x3103c4();});case'FAILED':return _0xa3b249[_0x771b('0x1e')]({'transcribeStatus':_0x771b('0x36'),'failureReason':_0x262e19['TranscriptionJob'][_0x771b('0x37')]})['then'](function(){logger[_0x771b('0xc')](util[_0x771b('0xd')]('[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated',_0xa3b249['id']));_0x3103c4();});default:logger['info'](util[_0x771b('0xd')](_0x771b('0x38'),_0xa3b249['id']));break;}}else{return BPromise[_0x771b('0x39')]()[_0x771b('0x12')](function(){if(!_0xa3b249[_0x771b('0x20')]){throw new db['Sequelize'][(_0x771b('0x28'))]('Sentiment\x20Analysis\x20not\x20requested');}if(!_0x381f22[_0x771b('0x23')]||!_0x381f22['sentimentAccountId']||!_0x381f22['sentimentRegion']||!_0x381f22['language']||!_0x381f22[_0x771b('0x27')]){throw new db[(_0x771b('0x21'))][(_0x771b('0x28'))](_0x771b('0x29'));}if(!_0xa3b249[_0x771b('0x16')]){throw new Error(_0x771b('0x3a'));}if(_0x381f22[_0x771b('0x24')]===_0x2fe956['id']){return _0x2fe956;}else{return db[_0x771b('0x3b')][_0x771b('0x2a')]({'where':{'id':_settings[_0x771b('0x24')]}});}})['then'](function(_0x16aa3b){if(!_0x16aa3b){throw new db[(_0x771b('0x21'))][(_0x771b('0x28'))](_0x771b('0x2b'));}if(!_0x16aa3b[_0x771b('0x2c')]||!_0x16aa3b[_0x771b('0x10')]){throw new db['Sequelize'][(_0x771b('0x28'))](_0x771b('0x2d'));}_0x256766=_0x16aa3b;logger[_0x771b('0xc')](util['format'](_0x771b('0x2e'),_0xa3b249['id']));return sentiment(_0x256766['data1'],_0x256766[_0x771b('0x10')],_0x381f22['sentimentRegion'],_0xa3b249[_0x771b('0x16')],_0x381f22[_0x771b('0x26')]);})['then'](function(_0x9f892b){logger[_0x771b('0xc')](util['format']('[RECORDING:%d]\x20Sentiment\x20Analysis\x20available',_0xa3b249['id']));return _0xa3b249[_0x771b('0x1e')]({'sentiment':_0x9f892b[_0x771b('0x30')],'sPositive':_0x9f892b[_0x771b('0x31')][_0x771b('0x32')],'sNegative':_0x9f892b[_0x771b('0x31')]['Negative'],'sMixed':_0x9f892b[_0x771b('0x31')][_0x771b('0x34')],'sNeutral':_0x9f892b['SentimentScore'][_0x771b('0x35')],'transcribeStatus':'COMPLETED'});})[_0x771b('0x12')](function(){logger[_0x771b('0xc')](util[_0x771b('0xd')]('[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated',_0xa3b249['id']));_0x3103c4();});}})[_0x771b('0x3c')](function(_0x53c81c){if(_0x53c81c){if(!_0x53c81c[_0x771b('0x3d')]||_0x53c81c[_0x771b('0x3d')]!==_0x771b('0x3e')){logger[_0x771b('0x3f')](util[_0x771b('0xd')](_0x771b('0x40'),_0xa3b249['id']),util[_0x771b('0x41')](_0x53c81c,{'showHidden':![],'depth':null}));}}_0x3103c4();});});}function checkTranscribe(){var _0x554a59;var _0x454229;var _0x28d0aa;return db[_0x771b('0x42')][_0x771b('0x43')]({'where':{'transcribeStatus':_0x771b('0x44')}})[_0x771b('0x12')](function(_0xa0b743){if(!_0xa0b743||!_0xa0b743[_0x771b('0x45')]){throw new db[(_0x771b('0x21'))][(_0x771b('0x28'))](_0x771b('0x46'));}_0x554a59=_0xa0b743;return db[_0x771b('0x47')][_0x771b('0x2a')]({'where':{'id':0x1}});})['then'](function(_0x58ff32){if(!_0x58ff32){throw new db[(_0x771b('0x21'))][(_0x771b('0x28'))](_0x771b('0x48'));}_0x454229=_0x58ff32;if(!_0x454229[_0x771b('0x6')]||!_0x454229[_0x771b('0x49')]||!_0x454229[_0x771b('0x11')]||!_0x454229[_0x771b('0x26')]||!_0x454229[_0x771b('0x27')]){throw new db[(_0x771b('0x21'))][(_0x771b('0x28'))](_0x771b('0x4a'));}return db[_0x771b('0x3b')][_0x771b('0x2a')]({'where':{'id':_0x454229[_0x771b('0x49')]}});})['then'](function(_0x56cdd8){if(!_0x56cdd8){throw new db['Sequelize'][(_0x771b('0x28'))](_0x771b('0x2b'));}if(!_0x56cdd8[_0x771b('0x2c')]||!_0x56cdd8['data2']){throw new db[(_0x771b('0x21'))][(_0x771b('0x28'))](_0x771b('0x2d'));}_0x28d0aa=_0x56cdd8;var _0xe47214=[];_0x554a59[_0x771b('0x4b')](function(_0x319a7b){_0xe47214[_0x771b('0x4c')](checkTranscribeJob(_0x319a7b,_0x454229,_0x28d0aa));});return BPromise[_0x771b('0x4d')](_0xe47214);})[_0x771b('0x3c')](function(_0x10f96e){if(_0x10f96e){if(!_0x10f96e[_0x771b('0x3d')]||_0x10f96e['name']!==_0x771b('0x3e')){logger[_0x771b('0x3f')](util[_0x771b('0x41')](_0x10f96e,{'showHidden':![],'depth':null}));}}});}exports[_0x771b('0x4e')]=function(){setInterval(function(){return checkTranscribe();},0x3c*0x3e8);return checkTranscribe();};