Built motion from commit f738f9592c388b9f9eb3948f400a5c9d717a3561. Version 3.0.0...
[motion-next.git] / server / components / import / cm / csv2.js
index 257d7fe..3ecb42e 100644 (file)
@@ -1 +1 @@
-const a992_0x232f=['emit','host','File\x20does\x20not\x20exist:\x20','send','appendFileSync','cm_contacts.phone','YYYY-MM-DD\x20HH:mm:ss','updatedAt','\x20not\x20specified','includes','path','.CmListId','createConnection','fields','concat','SIGINT','CREATE\x20TABLE\x20','cm_contacts.createdAt\x20=\x20?',')\x20NOT\x20IN\x20?','mysql2/promise','../../../mysqldb','data','isNaN','username','cm_contacts.phone\x20NOT\x20IN\x20(?)','ContactId','../../../globals','cm_contacts.updatedAt','recallme','writeFileSync','cm_contacts_','moment','errors','stringify','../../../mysqldb/infile-stream-factory','string','isValid','binding\x20does\x20not\x20exists','socket_timestamp','insert','config','uncaughtException','\x22onlyIfOpen\x22','UserId','sequelize','keys','voice_queues','push','fromQuery','log','trim','select','undefined','binding','join','scheduledat','options','field','function','duplicates','\x20=\x20','CompanyId','\x20LIKE\x20cm_contacts;','cm_hopper_black','error','format','CSV\x20Parser\x20error:\x20','isNil','map','cm_contacts.ListId','ListId\x20is\x20mandatory','VoiceQueueId','phone\x20is\x20mandatory','ListId\x20=\x20?','id\x20IN\x20?','argv','rows','CSV2\x20Starting:\x20fullfilepath=','COMPLETE','lodash','.CmListId\x20=\x20?','contact:import:','campaigns','agent\x20not\x20exists','voice_queues_has_cm_lists','No\x20agent\x20available','from','lowLevel','.id\x20=\x20','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','firstName','handleQuery:\x20','\x22always\x22','CampaignId','code','body\x20id\x20mandatory','replace','deletedAt\x20IS\x20NULL','parse','ListId','step','LOAD\x20DATA\x20LOCAL\x20INFILE\x20\x27%s\x27\x20INTO\x20TABLE\x20%s\x20CHARACTER\x20SET\x20UTF8\x20FIELDS\x20TERMINATED\x20BY\x20\x27,\x27\x20ENCLOSED\x20BY\x20\x27\x22\x27\x20LINES\x20TERMINATED\x20BY\x20\x27\x0a\x27\x20IGNORE\x201\x20ROWS\x20(%s)\x20SET\x20id\x20=\x20NULL,\x20ListId\x20=\x20%s,\x20CompanyId\x20=\x20%s,\x20createdAt\x20=\x20\x27%s\x27,\x20updatedAt\x20=\x20\x27%s\x27','dialectOptions','where','MIN(id)','length','isNumber','min_id','email','into','dirname','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','cm_contacts.createdAt','papaparse','affectedRows','DROP\x20TABLE\x20','cm_contacts.priority','stack','campaigns_has_cm_blacklists','phone','cm_hopper','end','password','toString','createReadStream','cm_contacts','SystemError','isArray','complete','message',',\x0a\x20bodyString,\x20agentsString','createdAt','campaigns_has_cm_lists','Received\x20SIGINT','cm_contacts.id','query','arguments\x20<filename>\x20<parameters>\x20<agents>','all','priority','timezone'];(function(_0x33a401,_0x148b4d){const _0x232fca=function(_0x118a1e){while(--_0x118a1e){_0x33a401['push'](_0x33a401['shift']());}};_0x232fca(++_0x148b4d);}(a992_0x232f,0x1c1));const a992_0x118a=function(_0x33a401,_0x148b4d){_0x33a401=_0x33a401-0x199;let _0x232fca=a992_0x232f[_0x33a401];return _0x232fca;};const a992_0xc9791c=a992_0x118a;'use strict';require(a992_0xc9791c(0x222));const fs=require('fs'),path=require(a992_0xc9791c(0x212)),_=require(a992_0xc9791c(0x1cb)),Papa=require(a992_0xc9791c(0x1ed)),util=require('util'),mysql2=require(a992_0xc9791c(0x21b)),moment=require(a992_0xc9791c(0x19b)),squel=require('squel'),{db}=require(a992_0xc9791c(0x21c)),{infileStreamFactory}=require(a992_0xc9791c(0x19e)),{getSocket}=require('../../../rediscache'),socket=getSocket(),{isEmail}=require('validator'),stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0},results=[];let stopped=![];const NOW=moment()[a992_0xc9791c(0x1bd)](a992_0xc9791c(0x20e));function selectNotIn(_0x20d8d1,_0x4d7004,_0x410347,_0x2cec93,_0x1c53b0){const _0x2b5fcb=a992_0xc9791c;return squel[_0x2b5fcb(0x1af)]()[_0x2b5fcb(0x1b5)](_0x2b5fcb(0x1f3))[_0x2b5fcb(0x1d2)](_0x2cec93)[_0x2b5fcb(0x1b2)](_0x4d7004,null,_0x4d7004+'.id\x20=\x20'+_0x2cec93+'.'+_0x410347)[_0x2b5fcb(0x1e3)](_0x2cec93+'.'+_0x410347+_0x2b5fcb(0x1b8)+_0x20d8d1+'.'+_0x410347)['where'](_0x4d7004+'.dialCheckDuplicateType\x20IN\x20('+_0x1c53b0[_0x2b5fcb(0x1b2)]()+')');}function sendMessage(_0x5ee722){const _0x118826=a992_0xc9791c,_0x1e7399=typeof _0x5ee722===_0x118826(0x19f)?_0x5ee722:JSON[_0x118826(0x19d)](_0x5ee722);typeof process[_0x118826(0x20b)]===_0x118826(0x1b6)?process['send'](_0x1e7399):console[_0x118826(0x1ad)](_0x1e7399);}function insertCmHopper(_0x151886,_0x5a3a73,_0x37e8a1,_0x44b620,_0xb4b147){const _0x5cf72e=a992_0xc9791c,_0xb8bc68=['cm_contacts.phone','cm_contacts.scheduledat',_0x5cf72e(0x202),_0x5cf72e(0x1c1),_0x5a3a73+'.'+_0x44b620,_0x5cf72e(0x1ec),_0x5cf72e(0x223),_0x5cf72e(0x1f0),'cm_contacts.UserId','\x22'+_0xb4b147+'\x22'];return squel[_0x5cf72e(0x1a3)]()[_0x5cf72e(0x1e9)](_0x5cf72e(0x1f4))[_0x5cf72e(0x1ac)]([_0x5cf72e(0x1f3),_0x5cf72e(0x1b3),'ContactId',_0x5cf72e(0x1df),_0x44b620,_0x5cf72e(0x1ff),_0x5cf72e(0x20f),_0x5cf72e(0x206),_0x5cf72e(0x1a7),_0x5cf72e(0x224)],squel[_0x5cf72e(0x1af)]()[_0x5cf72e(0x215)](_0xb8bc68)[_0x5cf72e(0x1d2)](_0x5a3a73)[_0x5cf72e(0x1b2)](_0x5cf72e(0x1f9),null,'cm_contacts.ListId\x20=\x20'+_0x5a3a73+_0x5cf72e(0x213))['join'](_0x37e8a1,null,_0x37e8a1+'.id\x20=\x20'+_0x5a3a73+'.'+_0x44b620)[_0x5cf72e(0x1e3)](_0x5a3a73+_0x5cf72e(0x1cc),_0x151886)[_0x5cf72e(0x1e3)](_0x5cf72e(0x219),NOW)[_0x5cf72e(0x1e3)]('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x5a3a73,_0x37e8a1,_0x44b620,_0x5cf72e(0x1f4),[_0x5cf72e(0x1d8),_0x5cf72e(0x1a6)]))['where'](_0x5cf72e(0x220),selectNotIn(_0x5a3a73,_0x37e8a1,_0x44b620,'cm_hopper',['\x22always\x22'])))['toString']();}function insertCmHopperBlack(_0x34880a,_0x2cda9c,_0x2a4d1c,_0x12d26f){const _0x44ed78=a992_0xc9791c,_0x42faf1=[_0x44ed78(0x20d),_0x44ed78(0x202),_0x44ed78(0x1c1),_0x2cda9c+'.'+_0x12d26f,_0x44ed78(0x1ec),'cm_contacts.updatedAt'];return squel[_0x44ed78(0x1a3)]()[_0x44ed78(0x1e9)](_0x44ed78(0x1bb))['fromQuery']([_0x44ed78(0x1f3),_0x44ed78(0x221),_0x44ed78(0x1df),_0x12d26f,_0x44ed78(0x1ff),_0x44ed78(0x20f)],squel[_0x44ed78(0x1af)]()['fields'](_0x42faf1)['from'](_0x2cda9c)['join'](_0x44ed78(0x1f9),null,'cm_contacts.ListId\x20=\x20'+_0x2cda9c+_0x44ed78(0x213))['join'](_0x2a4d1c,null,_0x2a4d1c+_0x44ed78(0x1d4)+_0x2cda9c+'.'+_0x12d26f)[_0x44ed78(0x1e3)](_0x2cda9c+_0x44ed78(0x1cc),_0x34880a)[_0x44ed78(0x1e3)](_0x44ed78(0x219),NOW)[_0x44ed78(0x1e3)](_0x44ed78(0x220),squel[_0x44ed78(0x1af)]()['field'](_0x44ed78(0x1f3))['from'](_0x44ed78(0x1bb))[_0x44ed78(0x1e3)](_0x44ed78(0x1c5),_0x34880a)[_0x44ed78(0x1e3)](_0x12d26f+_0x44ed78(0x1b8)+_0x2cda9c+'.'+_0x12d26f)))[_0x44ed78(0x1f7)]();}function insertCmContact(_0x300646,_0x5310c8,_0x5092b8,_0x26f5b8){const _0x52191a=a992_0xc9791c,_0x3d51d9=_[_0x52191a(0x216)](_[_0x52191a(0x1a9)](_0x26f5b8),[_0x52191a(0x1df),_0x52191a(0x1b9),_0x52191a(0x1ff),_0x52191a(0x20f)]);return squel[_0x52191a(0x1a3)]()[_0x52191a(0x1e9)]('cm_contacts')[_0x52191a(0x1ac)](_0x3d51d9,squel[_0x52191a(0x1af)]()['fields'](_0x3d51d9)[_0x52191a(0x1d2)](_0x5310c8)[_0x52191a(0x1e3)]('('+_0x5092b8[_0x52191a(0x1b2)](',')+_0x52191a(0x21a),squel['select']()[_0x52191a(0x215)](_0x5092b8)['from']('cm_contacts')['where'](_0x52191a(0x1c5),_0x300646)[_0x52191a(0x1e3)](_0x52191a(0x1dd)))[_0x52191a(0x1e3)](_0x52191a(0x1c6),squel[_0x52191a(0x1af)]()[_0x52191a(0x1b5)](_0x52191a(0x1e4),_0x52191a(0x1e7))[_0x52191a(0x1d2)](_0x5310c8)['group'](_0x5092b8[_0x52191a(0x1b2)](','))))['toString']();}function handleStop(){const _0x4c2156=a992_0xc9791c;console[_0x4c2156(0x1ad)](_0x4c2156(0x201)),stopped=!![];}function handleUncaughtException(_0x29b11e){const _0x2e6f90=a992_0xc9791c;console['error'](_0x29b11e[_0x2e6f90(0x1fd)]);throw _0x29b11e;}function handleError(_0x2357c0,_0x20b869){const _0x411dd1=a992_0xc9791c;stats[_0x411dd1(0x19c)]['push']({'name':_0x20b869[_0x411dd1(0x1da)],'message':_0x20b869[_0x411dd1(0x1fd)],'row':_0x2357c0});}async function lowLevelMySQL2Query(_0x3d8bf3){const _0x494119=a992_0xc9791c,_0xa2cd0e=db[_0x494119(0x1a8)][_0x494119(0x1a4)],_0x10a8aa={'host':_0xa2cd0e[_0x494119(0x209)],'port':_0xa2cd0e['port'],'user':_0xa2cd0e[_0x494119(0x21f)],'password':_0xa2cd0e[_0x494119(0x1f6)],'database':_0xa2cd0e['database'],'timezone':db[_0x494119(0x1a8)][_0x494119(0x1b4)][_0x494119(0x207)],'bigNumberStrings':![],'supportBigNumbers':!![],..._0xa2cd0e[_0x494119(0x1e2)]},_0x30c210=await mysql2[_0x494119(0x214)](_0x10a8aa),[_0x5701a4,_0x2a6c41]=await _0x30c210['query']({'sql':_0x3d8bf3,'infileStreamFactory':infileStreamFactory});return await _0x30c210[_0x494119(0x1f5)](),{'affectedRows':_0x5701a4[_0x494119(0x1ee)],'rows':_0x5701a4,'fields':_0x2a6c41};}async function handleQuery(_0x2b4293,_0xda1db7=![]){const _0x16eff4=a992_0xc9791c;try{if(_0xda1db7){const {affectedRows:_0x338f57}=await lowLevelMySQL2Query(_0x2b4293);results['push'](_0x338f57);}else{const [_0x4f453f]=await db[_0x16eff4(0x1a8)]['query'](_0x2b4293);results[_0x16eff4(0x1ab)](_0x4f453f);}}catch(_0x257e7b){console[_0x16eff4(0x1bc)](_0x16eff4(0x1d7)+_0x257e7b[_0x16eff4(0x1fd)],_0x257e7b[_0x16eff4(0x1f1)],_0x2b4293);throw _0x257e7b;}}function main(_0x57660d,_0x3c30c1,_0x41ae57,_0x1fcb07){const _0x219a8e=a992_0xc9791c;sendMessage('start');const _0x466722=_0x3c30c1['binding'],_0x411c69=_0x3c30c1[_0x219a8e(0x1a2)],_0x2162a3=path[_0x219a8e(0x1b2)](path[_0x219a8e(0x1ea)](_0x57660d),_0x411c69+'.csv'),_0x1b3c28=_['keys'](_0x466722)[_0x219a8e(0x1b2)]();fs[_0x219a8e(0x199)](_0x2162a3,_0x1b3c28+'\x0a'),Papa[_0x219a8e(0x1de)](fs[_0x219a8e(0x1f8)](_0x57660d),{'header':!![],'skipEmptyLines':!![],'step':function(_0x1e99c6,_0x46719e){const _0x14499b=_0x219a8e;let _0x175efb=0x0,_0x511598=[];const _0x42a8a6=Array[_0x14499b(0x1fb)](_0x1e99c6[_0x14499b(0x21d)])?_0x1e99c6[_0x14499b(0x21d)]:[_0x1e99c6[_0x14499b(0x21d)]];try{for(_0x175efb=0x0,_0x511598=[];_0x175efb<_0x42a8a6[_0x14499b(0x1e5)];_0x175efb++){stats[_0x14499b(0x1c8)]+=0x1;if(_0x1e99c6[_0x14499b(0x19c)][_0x175efb])handleError(_0x42a8a6[_0x175efb],_0x1e99c6[_0x14499b(0x19c)][_0x175efb]);else{const _0x38261e=[];for(const _0x2201df in _0x466722){if(typeof _0x466722[_0x2201df]!==_0x14499b(0x1b0)){if(_0x42a8a6[_0x175efb][_0x466722[_0x2201df]]){let _0x3dc179=_[_0x14499b(0x1ae)](_0x42a8a6[_0x175efb][_0x466722[_0x2201df]][_0x14499b(0x1dc)](/"/g,'\x27'));switch(_0x2201df){case'scheduledat':{const _0x4d104e=moment(_0x3dc179,_0x14499b(0x20e),!![]);_0x4d104e[_0x14499b(0x1a0)]()?_0x511598[_0x14499b(0x1ab)]('\x22'+_0x3dc179+'\x22'):_0x38261e[_0x14499b(0x1ab)](_0x14499b(0x1eb));}break;case'priority':{const _0x4b4dcf=parseInt(_0x3dc179);_0x3dc179=_[_0x14499b(0x21e)](_0x4b4dcf)||_0x4b4dcf<0x0||_0x4b4dcf>0x4?_0x1fcb07?0x3:0x2:_0x4b4dcf,_0x511598[_0x14499b(0x1ab)]('\x22'+_0x3dc179+'\x22');}break;case _0x14499b(0x1a7):{const _0x1f08a8=parseInt(_0x3dc179);_[_0x14499b(0x1e6)](_0x1f08a8)&&_[_0x14499b(0x211)](_0x41ae57,_0x1f08a8)?_0x511598[_0x14499b(0x1ab)]('\x22'+_0x1f08a8+'\x22'):_0x38261e[_0x14499b(0x1ab)](_0x14499b(0x1cf));}break;case _0x14499b(0x1e8):isEmail(_0x3dc179)?_0x511598['push']('\x22'+_0x3dc179+'\x22'):_0x38261e[_0x14499b(0x1ab)]('email\x20wrong\x20format');break;case'dateOfBirth':{const _0x1ca7f1=moment(_0x3dc179,'YYYY-MM-DD',!![]);_0x1ca7f1[_0x14499b(0x1a0)]()?_0x511598[_0x14499b(0x1ab)]('\x22'+_0x3dc179+'\x22'):_0x38261e['push'](_0x14499b(0x1d5));}break;default:_0x511598[_0x14499b(0x1ab)]('\x22'+_0x3dc179+'\x22');}}else switch(_0x2201df){case _0x14499b(0x1d6):case _0x14499b(0x1f3):_0x38261e[_0x14499b(0x1ab)](_0x2201df+_0x14499b(0x210));break;default:_0x511598[_0x14499b(0x1ab)]('\x22\x22');}}}_0x38261e[_0x14499b(0x1e5)]?handleError(_0x42a8a6[_0x175efb],{'code':'SystemRow','message':_0x38261e[_0x14499b(0x1b2)]()}):fs[_0x14499b(0x20c)](_0x2162a3,_0x511598[_0x14499b(0x1b2)]()+'\x0a'),_0x511598=[];}!(stats[_0x14499b(0x1c8)]%0xc8)&&(socket['emit'](_0x14499b(0x1cd)+_0x411c69,stats),stats[_0x14499b(0x19c)]=[]);}stopped&&(console['log']('Abort\x20parser'),_0x46719e['abort']());}catch(_0x296ed1){handleError(_0x1e99c6['data'][_0x175efb],{'code':_0x14499b(0x1fa),'message':_0x296ed1[_0x14499b(0x1fd)]}),console['error'](_0x14499b(0x1e0),_0x296ed1[_0x14499b(0x1fd)]);}},'complete':_0x54e4f6=>(async()=>{const _0x1e0c78=_0x219a8e;console[_0x1e0c78(0x1ad)](_0x1e0c78(0x1ca),_0x54e4f6);try{const _0x24c74f=[];let _0x3a59f8=_0x1e0c78(0x1f9);_0x3c30c1[_0x1e0c78(0x1b7)]&&_0x3c30c1[_0x1e0c78(0x1b7)][_0x1e0c78(0x1e5)]&&(_0x3a59f8=_0x1e0c78(0x19a)+_0x411c69,_0x24c74f[_0x1e0c78(0x1ab)]({'query':_0x1e0c78(0x218)+_0x3a59f8+_0x1e0c78(0x1ba),'lowLevel':![]}));let _0x1cf021=util[_0x1e0c78(0x1bd)](_0x1e0c78(0x1e1),_0x2162a3,_0x3a59f8,_0x1b3c28,_0x3c30c1[_0x1e0c78(0x1df)],_0x3c30c1['CompanyId']||null,NOW,NOW);_[_0x1e0c78(0x1bf)](_0x466722[_0x1e0c78(0x1b3)])&&(_0x1cf021+=',\x20scheduledAt\x20=\x20NOW()');_0x24c74f[_0x1e0c78(0x1ab)]({'query':_0x1cf021,'lowLevel':!![]});_0x3c30c1[_0x1e0c78(0x1b7)]&&_0x3c30c1[_0x1e0c78(0x1b7)][_0x1e0c78(0x1e5)]&&(_0x24c74f['push']({'query':insertCmContact(_0x3c30c1[_0x1e0c78(0x1df)],_0x3a59f8,_0x3c30c1[_0x1e0c78(0x1b7)],_0x466722),'lowLevel':![]}),_0x24c74f['push']({'query':_0x1e0c78(0x1ef)+_0x3a59f8+';','lowLevel':![]}));_0x24c74f['push']({'query':insertCmHopper(_0x3c30c1[_0x1e0c78(0x1df)],_0x1e0c78(0x1d0),_0x1e0c78(0x1aa),'VoiceQueueId',_0x1fcb07),'lowLevel':![]}),_0x24c74f['push']({'query':insertCmHopperBlack(_0x3c30c1[_0x1e0c78(0x1df)],'voice_queues_has_cm_blacklists','voice_queues',_0x1e0c78(0x1c3)),'lowLevel':![]}),_0x24c74f[_0x1e0c78(0x1ab)]({'query':insertCmHopper(_0x3c30c1[_0x1e0c78(0x1df)],_0x1e0c78(0x200),_0x1e0c78(0x1ce),'CampaignId',_0x1fcb07),'lowLevel':![]}),_0x24c74f['push']({'query':insertCmHopperBlack(_0x3c30c1[_0x1e0c78(0x1df)],_0x1e0c78(0x1f2),'campaigns',_0x1e0c78(0x1d9)),'lowLevel':![]}),console[_0x1e0c78(0x1ad)]('queries:\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x24c74f[_0x1e0c78(0x1c0)](_0x5c09d5=>_0x5c09d5[_0x1e0c78(0x203)])[_0x1e0c78(0x1b2)]('\x0a'));try{await Promise[_0x1e0c78(0x205)](_0x24c74f['map'](_0xd5fcbd=>handleQuery(_0xd5fcbd[_0x1e0c78(0x203)],_0xd5fcbd[_0x1e0c78(0x1d3)]))),stats['finish']=!![],stats['affectedRows']=_0x3c30c1['duplicates']&&_0x3c30c1[_0x1e0c78(0x1b7)][_0x1e0c78(0x1e5)]?results[0x2][_0x1e0c78(0x1ee)]:results[0x0]['affectedRows'],socket[_0x1e0c78(0x208)](_0x1e0c78(0x1cd)+_0x411c69,stats),process['exit'](0x0);}catch(_0x39aa89){console[_0x1e0c78(0x1bc)](_0x1e0c78(0x1be)+_0x39aa89[_0x1e0c78(0x1fd)]+',\x20'+_0x39aa89['stack']);throw _0x39aa89;}}catch(_0x5cbbdc){console[_0x1e0c78(0x1bc)](_0x1e0c78(0x1fc),_0x5cbbdc['message']);throw _0x5cbbdc;}})(),'error':function(_0x20cc77,_0x85ffc3,_0x31513e,_0xda017d){throw new Error(_0xda017d);}});}function validate(){const _0x16616c=a992_0xc9791c;if(process[_0x16616c(0x1c7)]&&process['argv'][_0x16616c(0x1e5)]<0x4)throw new Error(_0x16616c(0x204));const [,,_0x5280eb,_0x5e7a56,_0x28077f]=process[_0x16616c(0x1c7)];console[_0x16616c(0x1ad)](_0x16616c(0x1c9)+_0x5280eb+_0x16616c(0x1fe));if(!fs['existsSync'](_0x5280eb))throw new Error(_0x16616c(0x20a)+_0x5280eb);let _0x5809b8={},_0x2d279d=0x0;try{_0x5809b8=JSON[_0x16616c(0x1de)](_0x5e7a56);if(!_0x5809b8[_0x16616c(0x1b1)])throw new Error(_0x16616c(0x1a1));if(!_0x5809b8[_0x16616c(0x1b1)][_0x16616c(0x1f3)])throw new Error(_0x16616c(0x1c4));if(!_0x5809b8[_0x16616c(0x1b1)]['firstName'])throw new Error('firstName\x20is\x20mandatory');_0x5809b8[_0x16616c(0x1b1)][_0x16616c(0x1a7)]&&(_0x2d279d=0x1);if(!_0x5809b8[_0x16616c(0x1df)])throw new Error(_0x16616c(0x1c2));}catch(_0x4090d8){throw new Error(_0x16616c(0x1db));}let _0x175cea=[];try{_0x175cea=_[_0x16616c(0x1c0)](JSON[_0x16616c(0x1de)](_0x28077f,'id'));}catch(_0x5dcea1){console['log'](_0x16616c(0x1d1));}main(_0x5280eb,_0x5809b8,_0x175cea,_0x2d279d);}validate(),process['on'](a992_0xc9791c(0x217),handleStop),process['on'](a992_0xc9791c(0x1a5),handleUncaughtException);
\ No newline at end of file
+const a992_0x3289=['ListId','socket_timestamp','arguments\x20<filename>\x20<parameters>\x20<agents>','start','cm_contacts.scheduledat','sequelize','YYYY-MM-DD','YYYY-MM-DD\x20HH:mm:ss','binding\x20does\x20not\x20exists','../../../globals','parse','CampaignId','\x22onlyIfOpen\x22','cm_contacts.phone','dialectOptions','ListId\x20is\x20mandatory','join','undefined','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','ContactId','\x20LIKE\x20cm_contacts;','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','end','COMPLETE','config','finish','squel','function','../../../mysqldb','keys','emit','lowLevel','cm_contacts.ListId\x20=\x20','File\x20does\x20not\x20exist:\x20','moment','existsSync','min_id','all','voice_queues','firstName','stack','cm_contacts.phone\x20NOT\x20IN\x20(?)','createConnection','phone','binding','query','MIN(id)','createdAt','cm_contacts.id','stringify','username','isNaN','campaigns_has_cm_lists','push','field','where','campaigns_has_cm_blacklists','uncaughtException','firstName\x20is\x20mandatory',',\x20scheduledAt\x20=\x20NOW()','queries:\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20','cm_contacts_','cm_contacts','Abort\x20parser','SIGINT','cm_contacts.createdAt\x20=\x20?','contact:import:','CSV2\x20Starting:\x20fullfilepath=','recallme','code','CREATE\x20TABLE\x20','isArray','../../../rediscache','exit','cm_contacts.updatedAt','into','.dialCheckDuplicateType\x20IN\x20(',')\x20NOT\x20IN\x20?','\x20=\x20','scheduledat','email\x20wrong\x20format','cm_contacts.ListId','cm_contacts.createdAt','email','rows','SystemRow','.csv','insert','cm_contacts.priority','appendFileSync','fromQuery','string','.CmListId\x20=\x20?','complete','options','message','phone\x20is\x20mandatory','abort','deletedAt\x20IS\x20NULL','toString','campaigns','priority','trim','cm_hopper_black','error','send','\x22always\x22','CSV\x20Parser\x20error:\x20','ListId\x20=\x20?','isNumber','UserId','errors','papaparse','format','../../../mysqldb/infile-stream-factory','.CmListId','updatedAt','timezone','argv','log','from','CompanyId','Received\x20SIGINT','database','map','.id\x20=\x20','select','affectedRows','isNil','agent\x20not\x20exists','fields','concat','cm_hopper','handleQuery:\x20','step','data','voice_queues_has_cm_lists','length','isValid','duplicates'];(function(_0x4f9456,_0x4855a4){const _0x3289c8=function(_0x6e581d){while(--_0x6e581d){_0x4f9456['push'](_0x4f9456['shift']());}};_0x3289c8(++_0x4855a4);}(a992_0x3289,0x155));const a992_0x6e58=function(_0x4f9456,_0x4855a4){_0x4f9456=_0x4f9456-0x114;let _0x3289c8=a992_0x3289[_0x4f9456];return _0x3289c8;};const a992_0x2aa69f=a992_0x6e58;'use strict';require(a992_0x2aa69f(0x16c));const fs=require('fs'),path=require('path'),_=require('lodash'),Papa=require(a992_0x2aa69f(0x147)),util=require('util'),mysql2=require('mysql2/promise'),moment=require(a992_0x2aa69f(0x185)),squel=require(a992_0x2aa69f(0x17d)),{db}=require(a992_0x2aa69f(0x17f)),{infileStreamFactory}=require(a992_0x2aa69f(0x149)),{getSocket}=require(a992_0x2aa69f(0x11f)),socket=getSocket(),{isEmail}=require('validator'),stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0},results=[];let stopped=![];const NOW=moment()[a992_0x2aa69f(0x148)](a992_0x2aa69f(0x16a));function selectNotIn(_0x1722f8,_0xc7fc16,_0x3fe0f2,_0x22b94e,_0x2e644c){const _0x1cd10c=a992_0x2aa69f;return squel[_0x1cd10c(0x155)]()[_0x1cd10c(0x199)](_0x1cd10c(0x18e))['from'](_0x22b94e)[_0x1cd10c(0x173)](_0xc7fc16,null,_0xc7fc16+_0x1cd10c(0x154)+_0x22b94e+'.'+_0x3fe0f2)[_0x1cd10c(0x19a)](_0x22b94e+'.'+_0x3fe0f2+_0x1cd10c(0x125)+_0x1722f8+'.'+_0x3fe0f2)[_0x1cd10c(0x19a)](_0xc7fc16+_0x1cd10c(0x123)+_0x2e644c[_0x1cd10c(0x173)]()+')');}function sendMessage(_0x946044){const _0x1045d9=a992_0x2aa69f,_0x5600ef=typeof _0x946044===_0x1045d9(0x132)?_0x946044:JSON[_0x1045d9(0x194)](_0x946044);typeof process['send']===_0x1045d9(0x17e)?process[_0x1045d9(0x140)](_0x5600ef):console[_0x1045d9(0x14e)](_0x5600ef);}function insertCmHopper(_0x35945f,_0x347de3,_0x409181,_0x32c22a,_0x484092){const _0x5004a7=a992_0x2aa69f,_0x5b3e27=['cm_contacts.phone',_0x5004a7(0x167),_0x5004a7(0x193),_0x5004a7(0x128),_0x347de3+'.'+_0x32c22a,_0x5004a7(0x129),_0x5004a7(0x121),_0x5004a7(0x12f),'cm_contacts.UserId','\x22'+_0x484092+'\x22'];return squel[_0x5004a7(0x12e)]()['into'](_0x5004a7(0x15b))[_0x5004a7(0x131)](['phone',_0x5004a7(0x126),_0x5004a7(0x176),_0x5004a7(0x163),_0x32c22a,_0x5004a7(0x192),_0x5004a7(0x14b),'priority',_0x5004a7(0x145),_0x5004a7(0x11b)],squel[_0x5004a7(0x155)]()[_0x5004a7(0x159)](_0x5b3e27)[_0x5004a7(0x14f)](_0x347de3)[_0x5004a7(0x173)](_0x5004a7(0x115),null,_0x5004a7(0x183)+_0x347de3+'.CmListId')['join'](_0x409181,null,_0x409181+_0x5004a7(0x154)+_0x347de3+'.'+_0x32c22a)[_0x5004a7(0x19a)](_0x347de3+_0x5004a7(0x133),_0x35945f)['where'](_0x5004a7(0x118),NOW)[_0x5004a7(0x19a)](_0x5004a7(0x18c),selectNotIn(_0x347de3,_0x409181,_0x32c22a,_0x5004a7(0x15b),[_0x5004a7(0x141),_0x5004a7(0x16f)]))[_0x5004a7(0x19a)](_0x5004a7(0x18c),selectNotIn(_0x347de3,_0x409181,_0x32c22a,_0x5004a7(0x15b),['\x22always\x22'])))[_0x5004a7(0x13a)]();}function insertCmHopperBlack(_0x162ba6,_0x25db7f,_0x4b01e3,_0x31a648){const _0x34848b=a992_0x2aa69f,_0x244449=[_0x34848b(0x170),_0x34848b(0x193),_0x34848b(0x128),_0x25db7f+'.'+_0x31a648,'cm_contacts.createdAt',_0x34848b(0x121)];return squel[_0x34848b(0x12e)]()['into'](_0x34848b(0x13e))[_0x34848b(0x131)]([_0x34848b(0x18e),_0x34848b(0x176),_0x34848b(0x163),_0x31a648,_0x34848b(0x192),'updatedAt'],squel[_0x34848b(0x155)]()[_0x34848b(0x159)](_0x244449)[_0x34848b(0x14f)](_0x25db7f)[_0x34848b(0x173)]('cm_contacts',null,_0x34848b(0x183)+_0x25db7f+_0x34848b(0x14a))[_0x34848b(0x173)](_0x4b01e3,null,_0x4b01e3+_0x34848b(0x154)+_0x25db7f+'.'+_0x31a648)['where'](_0x25db7f+_0x34848b(0x133),_0x162ba6)[_0x34848b(0x19a)](_0x34848b(0x118),NOW)[_0x34848b(0x19a)]('cm_contacts.phone\x20NOT\x20IN\x20(?)',squel[_0x34848b(0x155)]()[_0x34848b(0x199)]('phone')[_0x34848b(0x14f)](_0x34848b(0x13e))[_0x34848b(0x19a)]('ListId\x20=\x20?',_0x162ba6)['where'](_0x31a648+_0x34848b(0x125)+_0x25db7f+'.'+_0x31a648)))[_0x34848b(0x13a)]();}function insertCmContact(_0x1dcec7,_0xa991d9,_0x2d5147,_0x243815){const _0x5541c7=a992_0x2aa69f,_0x34a539=_[_0x5541c7(0x15a)](_[_0x5541c7(0x180)](_0x243815),[_0x5541c7(0x163),_0x5541c7(0x150),_0x5541c7(0x192),_0x5541c7(0x14b)]);return squel[_0x5541c7(0x12e)]()[_0x5541c7(0x122)](_0x5541c7(0x115))[_0x5541c7(0x131)](_0x34a539,squel['select']()['fields'](_0x34a539)[_0x5541c7(0x14f)](_0xa991d9)[_0x5541c7(0x19a)]('('+_0x2d5147[_0x5541c7(0x173)](',')+_0x5541c7(0x124),squel[_0x5541c7(0x155)]()['fields'](_0x2d5147)[_0x5541c7(0x14f)](_0x5541c7(0x115))[_0x5541c7(0x19a)](_0x5541c7(0x143),_0x1dcec7)[_0x5541c7(0x19a)](_0x5541c7(0x139)))[_0x5541c7(0x19a)]('id\x20IN\x20?',squel[_0x5541c7(0x155)]()['field'](_0x5541c7(0x191),_0x5541c7(0x187))[_0x5541c7(0x14f)](_0xa991d9)['group'](_0x2d5147[_0x5541c7(0x173)](','))))[_0x5541c7(0x13a)]();}function handleStop(){const _0x3dfcfc=a992_0x2aa69f;console[_0x3dfcfc(0x14e)](_0x3dfcfc(0x151)),stopped=!![];}function handleUncaughtException(_0x1f37ac){const _0x48d769=a992_0x2aa69f;console[_0x48d769(0x13f)](_0x1f37ac['message']);throw _0x1f37ac;}function handleError(_0x4ad44e,_0x4d5549){const _0x5cf4f2=a992_0x2aa69f;stats[_0x5cf4f2(0x146)][_0x5cf4f2(0x198)]({'name':_0x4d5549[_0x5cf4f2(0x11c)],'message':_0x4d5549['message'],'row':_0x4ad44e});}async function lowLevelMySQL2Query(_0x46dc12){const _0x3c73ce=a992_0x2aa69f,_0x1dc26f=db[_0x3c73ce(0x168)][_0x3c73ce(0x17b)],_0x4bb14b={'host':_0x1dc26f['host'],'port':_0x1dc26f['port'],'user':_0x1dc26f[_0x3c73ce(0x195)],'password':_0x1dc26f['password'],'database':_0x1dc26f[_0x3c73ce(0x152)],'timezone':db[_0x3c73ce(0x168)][_0x3c73ce(0x135)][_0x3c73ce(0x14c)],'bigNumberStrings':![],'supportBigNumbers':!![],..._0x1dc26f[_0x3c73ce(0x171)]},_0x11c9da=await mysql2[_0x3c73ce(0x18d)](_0x4bb14b),[_0x4a892e,_0x4819ae]=await _0x11c9da[_0x3c73ce(0x190)]({'sql':_0x46dc12,'infileStreamFactory':infileStreamFactory});return await _0x11c9da[_0x3c73ce(0x179)](),{'affectedRows':_0x4a892e[_0x3c73ce(0x156)],'rows':_0x4a892e,'fields':_0x4819ae};}async function handleQuery(_0x276074,_0x558481=![]){const _0x66d7b4=a992_0x2aa69f;try{if(_0x558481){const {affectedRows:_0x2bb285}=await lowLevelMySQL2Query(_0x276074);results[_0x66d7b4(0x198)](_0x2bb285);}else{const [_0x366132]=await db[_0x66d7b4(0x168)][_0x66d7b4(0x190)](_0x276074);results['push'](_0x366132);}}catch(_0x32cf28){console[_0x66d7b4(0x13f)](_0x66d7b4(0x15c)+_0x32cf28[_0x66d7b4(0x136)],_0x32cf28[_0x66d7b4(0x18b)],_0x276074);throw _0x32cf28;}}function main(_0xaa42e9,_0x25f95b,_0xa276d,_0x1d84b2){const _0xcafd8b=a992_0x2aa69f;sendMessage(_0xcafd8b(0x166));const _0x35ad42=_0x25f95b[_0xcafd8b(0x18f)],_0x209940=_0x25f95b[_0xcafd8b(0x164)],_0x31aff5=path[_0xcafd8b(0x173)](path['dirname'](_0xaa42e9),_0x209940+_0xcafd8b(0x12d)),_0x159560=_[_0xcafd8b(0x180)](_0x35ad42)[_0xcafd8b(0x173)]();fs['writeFileSync'](_0x31aff5,_0x159560+'\x0a'),Papa[_0xcafd8b(0x16d)](fs['createReadStream'](_0xaa42e9),{'header':!![],'skipEmptyLines':!![],'step':function(_0x32668e,_0x181994){const _0x5650e4=_0xcafd8b;let _0x448475=0x0,_0x22766a=[];const _0x54371c=Array[_0x5650e4(0x11e)](_0x32668e['data'])?_0x32668e[_0x5650e4(0x15e)]:[_0x32668e['data']];try{for(_0x448475=0x0,_0x22766a=[];_0x448475<_0x54371c[_0x5650e4(0x160)];_0x448475++){stats[_0x5650e4(0x12b)]+=0x1;if(_0x32668e[_0x5650e4(0x146)][_0x448475])handleError(_0x54371c[_0x448475],_0x32668e['errors'][_0x448475]);else{const _0x28c2f6=[];for(const _0x411b35 in _0x35ad42){if(typeof _0x35ad42[_0x411b35]!==_0x5650e4(0x174)){if(_0x54371c[_0x448475][_0x35ad42[_0x411b35]]){let _0x522df3=_[_0x5650e4(0x13d)](_0x54371c[_0x448475][_0x35ad42[_0x411b35]]['replace'](/"/g,'\x27'));switch(_0x411b35){case _0x5650e4(0x126):{const _0x3a438f=moment(_0x522df3,_0x5650e4(0x16a),!![]);_0x3a438f[_0x5650e4(0x161)]()?_0x22766a[_0x5650e4(0x198)]('\x22'+_0x522df3+'\x22'):_0x28c2f6['push'](_0x5650e4(0x175));}break;case _0x5650e4(0x13c):{const _0x48517e=parseInt(_0x522df3);_0x522df3=_[_0x5650e4(0x196)](_0x48517e)||_0x48517e<0x0||_0x48517e>0x4?_0x1d84b2?0x3:0x2:_0x48517e,_0x22766a['push']('\x22'+_0x522df3+'\x22');}break;case'UserId':{const _0x3dd64d=parseInt(_0x522df3);_[_0x5650e4(0x144)](_0x3dd64d)&&_['includes'](_0xa276d,_0x3dd64d)?_0x22766a[_0x5650e4(0x198)]('\x22'+_0x3dd64d+'\x22'):_0x28c2f6[_0x5650e4(0x198)](_0x5650e4(0x158));}break;case _0x5650e4(0x12a):isEmail(_0x522df3)?_0x22766a['push']('\x22'+_0x522df3+'\x22'):_0x28c2f6[_0x5650e4(0x198)](_0x5650e4(0x127));break;case'dateOfBirth':{const _0x21e26e=moment(_0x522df3,_0x5650e4(0x169),!![]);_0x21e26e[_0x5650e4(0x161)]()?_0x22766a[_0x5650e4(0x198)]('\x22'+_0x522df3+'\x22'):_0x28c2f6[_0x5650e4(0x198)](_0x5650e4(0x178));}break;default:_0x22766a[_0x5650e4(0x198)]('\x22'+_0x522df3+'\x22');}}else switch(_0x411b35){case _0x5650e4(0x18a):case _0x5650e4(0x18e):_0x28c2f6[_0x5650e4(0x198)](_0x411b35+'\x20not\x20specified');break;default:_0x22766a[_0x5650e4(0x198)]('\x22\x22');}}}_0x28c2f6[_0x5650e4(0x160)]?handleError(_0x54371c[_0x448475],{'code':_0x5650e4(0x12c),'message':_0x28c2f6['join']()}):fs[_0x5650e4(0x130)](_0x31aff5,_0x22766a[_0x5650e4(0x173)]()+'\x0a'),_0x22766a=[];}!(stats[_0x5650e4(0x12b)]%0xc8)&&(socket[_0x5650e4(0x181)](_0x5650e4(0x119)+_0x209940,stats),stats[_0x5650e4(0x146)]=[]);}stopped&&(console[_0x5650e4(0x14e)](_0x5650e4(0x116)),_0x181994[_0x5650e4(0x138)]());}catch(_0x4fa44a){handleError(_0x32668e[_0x5650e4(0x15e)][_0x448475],{'code':'SystemError','message':_0x4fa44a[_0x5650e4(0x136)]}),console[_0x5650e4(0x13f)](_0x5650e4(0x15d),_0x4fa44a['message']);}},'complete':_0x2f709a=>(async()=>{const _0x2f4805=_0xcafd8b;console[_0x2f4805(0x14e)](_0x2f4805(0x17a),_0x2f709a);try{const _0x37bbe9=[];let _0x37a273=_0x2f4805(0x115);_0x25f95b[_0x2f4805(0x162)]&&_0x25f95b[_0x2f4805(0x162)]['length']&&(_0x37a273=_0x2f4805(0x114)+_0x209940,_0x37bbe9['push']({'query':_0x2f4805(0x11d)+_0x37a273+_0x2f4805(0x177),'lowLevel':![]}));let _0x3b9160=util[_0x2f4805(0x148)]('LOAD\x20DATA\x20LOCAL\x20INFILE\x20\x27%s\x27\x20INTO\x20TABLE\x20%s\x20CHARACTER\x20SET\x20UTF8\x20FIELDS\x20TERMINATED\x20BY\x20\x27,\x27\x20ENCLOSED\x20BY\x20\x27\x22\x27\x20LINES\x20TERMINATED\x20BY\x20\x27\x0a\x27\x20IGNORE\x201\x20ROWS\x20(%s)\x20SET\x20id\x20=\x20NULL,\x20ListId\x20=\x20%s,\x20CompanyId\x20=\x20%s,\x20createdAt\x20=\x20\x27%s\x27,\x20updatedAt\x20=\x20\x27%s\x27',_0x31aff5,_0x37a273,_0x159560,_0x25f95b[_0x2f4805(0x163)],_0x25f95b[_0x2f4805(0x150)]||null,NOW,NOW);_[_0x2f4805(0x157)](_0x35ad42[_0x2f4805(0x126)])&&(_0x3b9160+=_0x2f4805(0x19e));_0x37bbe9[_0x2f4805(0x198)]({'query':_0x3b9160,'lowLevel':!![]});_0x25f95b[_0x2f4805(0x162)]&&_0x25f95b['duplicates']['length']&&(_0x37bbe9[_0x2f4805(0x198)]({'query':insertCmContact(_0x25f95b[_0x2f4805(0x163)],_0x37a273,_0x25f95b[_0x2f4805(0x162)],_0x35ad42),'lowLevel':![]}),_0x37bbe9[_0x2f4805(0x198)]({'query':'DROP\x20TABLE\x20'+_0x37a273+';','lowLevel':![]}));_0x37bbe9['push']({'query':insertCmHopper(_0x25f95b[_0x2f4805(0x163)],_0x2f4805(0x15f),_0x2f4805(0x189),'VoiceQueueId',_0x1d84b2),'lowLevel':![]}),_0x37bbe9['push']({'query':insertCmHopperBlack(_0x25f95b['ListId'],'voice_queues_has_cm_blacklists',_0x2f4805(0x189),'VoiceQueueId'),'lowLevel':![]}),_0x37bbe9[_0x2f4805(0x198)]({'query':insertCmHopper(_0x25f95b[_0x2f4805(0x163)],_0x2f4805(0x197),_0x2f4805(0x13b),_0x2f4805(0x16e),_0x1d84b2),'lowLevel':![]}),_0x37bbe9[_0x2f4805(0x198)]({'query':insertCmHopperBlack(_0x25f95b[_0x2f4805(0x163)],_0x2f4805(0x19b),'campaigns',_0x2f4805(0x16e)),'lowLevel':![]}),console['log'](_0x2f4805(0x19f)+_0x37bbe9[_0x2f4805(0x153)](_0x5b46eb=>_0x5b46eb[_0x2f4805(0x190)])[_0x2f4805(0x173)]('\x0a'));try{await Promise[_0x2f4805(0x188)](_0x37bbe9[_0x2f4805(0x153)](_0xa4847e=>handleQuery(_0xa4847e['query'],_0xa4847e[_0x2f4805(0x182)]))),stats[_0x2f4805(0x17c)]=!![],stats[_0x2f4805(0x156)]=_0x25f95b['duplicates']&&_0x25f95b[_0x2f4805(0x162)]['length']?results[0x2][_0x2f4805(0x156)]:results[0x0][_0x2f4805(0x156)],socket[_0x2f4805(0x181)]('contact:import:'+_0x209940,stats),process[_0x2f4805(0x120)](0x0);}catch(_0x540b27){console['error'](_0x2f4805(0x142)+_0x540b27[_0x2f4805(0x136)]+',\x20'+_0x540b27[_0x2f4805(0x18b)]);throw _0x540b27;}}catch(_0x15d076){console['error'](_0x2f4805(0x134),_0x15d076[_0x2f4805(0x136)]);throw _0x15d076;}})(),'error':function(_0x313a74,_0x40ab41,_0x5ede47,_0x20ff15){throw new Error(_0x20ff15);}});}function validate(){const _0xa20d44=a992_0x2aa69f;if(process[_0xa20d44(0x14d)]&&process[_0xa20d44(0x14d)][_0xa20d44(0x160)]<0x4)throw new Error(_0xa20d44(0x165));const [,,_0x459e8c,_0x5808bd,_0x509bdc]=process['argv'];console['log'](_0xa20d44(0x11a)+_0x459e8c+',\x0a\x20bodyString,\x20agentsString');if(!fs[_0xa20d44(0x186)](_0x459e8c))throw new Error(_0xa20d44(0x184)+_0x459e8c);let _0x49f18b={},_0x16b6cd=0x0;try{_0x49f18b=JSON[_0xa20d44(0x16d)](_0x5808bd);if(!_0x49f18b[_0xa20d44(0x18f)])throw new Error(_0xa20d44(0x16b));if(!_0x49f18b['binding'][_0xa20d44(0x18e)])throw new Error(_0xa20d44(0x137));if(!_0x49f18b['binding'][_0xa20d44(0x18a)])throw new Error(_0xa20d44(0x19d));_0x49f18b[_0xa20d44(0x18f)]['UserId']&&(_0x16b6cd=0x1);if(!_0x49f18b[_0xa20d44(0x163)])throw new Error(_0xa20d44(0x172));}catch(_0x55f340){throw new Error('body\x20id\x20mandatory');}let _0xcc14f=[];try{_0xcc14f=_[_0xa20d44(0x153)](JSON[_0xa20d44(0x16d)](_0x509bdc,'id'));}catch(_0x42369e){console[_0xa20d44(0x14e)]('No\x20agent\x20available');}main(_0x459e8c,_0x49f18b,_0xcc14f,_0x16b6cd);}validate(),process['on'](a992_0x2aa69f(0x117),handleStop),process['on'](a992_0x2aa69f(0x19c),handleUncaughtException);
\ No newline at end of file