Built motion from commit e6806ed6.|2.6.0
[motion2.git] / server / components / import / cm / csv.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 _0xa39e=['cm_contacts','where','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','cm_hopper','into','updatedAt','id\x20IN\x20?','str','calleridnum','cm_hopper_final','\x20=\x20?','cm_hopper_black','VoiceQueue','findAll','CmList','Lists','then','get','always','sequelize','query','VoiceQueueId','onlyIfOpen','all','outbound','Campaign','dialCheckDuplicateType','CampaignId','BlackLists','cmContact,\x20%s,\x20%s','generalCheckHopper','Error\x20processing\x20rows\x20block:','finally','emit','contact:csv_','resume','unlinkSync','Unable\x20to\x20delete\x20temp\x20file:','stringify','SIGINT','info','CSV\x20import\x20process\x20stopped!','resolve','createReadStream','parse','pause','CSV\x20parsed\x20correctly!','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','bluebird','util','lodash','squel','papaparse','ioredis','../../../mysqldb','../../../config/environment','../../../config/logger','api','redis','defaults','localhost','socket.io-emitter','register','argv','undefined','Missing\x20filepath\x20parameter!','null','Missing\x20binding\x20parameters!','zipObject','split','Missing\x20ListId\x20parameter!','Missing\x20socket_timestamp\x20parameter!','error','contact','index','test','isNil','errors','length','map','join','hasOwnProperty','data','firstName','firstName\x20not\x20specified!','phone','phone\x20not\x20specified!','birthDate','isValid','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','email\x20format\x20is\x20not\x20valid!','ListId','CompanyId','find','duplicate','Duplicate\x20Contact','CmContact','create','keys','push','catch','Error\x20while\x20creating\x20contact:\x20','message','cmContact','checkHopper','inspect','insert','fromQuery','scheduledAt','ContactId','select','field','NOW()','toString','createdAt','from'];(function(_0x304f15,_0x32007e){var _0x3923f7=function(_0x2db2e7){while(--_0x2db2e7){_0x304f15['push'](_0x304f15['shift']());}};_0x3923f7(++_0x32007e);}(_0xa39e,0x126));var _0xea39=function(_0x1b04e6,_0x257b26){_0x1b04e6=_0x1b04e6-0x0;var _0x54b637=_0xa39e[_0x1b04e6];return _0x54b637;};'use strict';var BPromise=require(_0xea39('0x0'));var util=require(_0xea39('0x1'));var _=require(_0xea39('0x2'));var fs=require('fs');var squel=require(_0xea39('0x3'));var Papa=require(_0xea39('0x4'));var Redis=require(_0xea39('0x5'));var db=require(_0xea39('0x6'))['db'];var config=require(_0xea39('0x7'));var logger=require(_0xea39('0x8'))(_0xea39('0x9'));config[_0xea39('0xa')]=_[_0xea39('0xb')](config[_0xea39('0xa')],{'host':_0xea39('0xc'),'port':0x18eb});var socket=require(_0xea39('0xd'))(new Redis(config[_0xea39('0xa')]));require('../../../api/cmContact/cmContact.socket')[_0xea39('0xe')](socket);try{if(!process[_0xea39('0xf')][0x2]||process[_0xea39('0xf')][0x2]===_0xea39('0x10')||process[_0xea39('0xf')][0x2]==='null'){throw new Error(_0xea39('0x11'));}var FILEPATH=process[_0xea39('0xf')][0x2];if(!process['argv'][0x3]||process[_0xea39('0xf')][0x3]===_0xea39('0x10')||process[_0xea39('0xf')][0x3]==='null'||!process[_0xea39('0xf')][0x4]||process['argv'][0x4]===_0xea39('0x10')||process[_0xea39('0xf')][0x4]===_0xea39('0x12')){throw new Error(_0xea39('0x13'));}var FIELDS=_[_0xea39('0x14')](process[_0xea39('0xf')][0x3][_0xea39('0x15')](','),process['argv'][0x4][_0xea39('0x15')](','));if(!process['argv'][0x5]||process[_0xea39('0xf')][0x5]===_0xea39('0x10')||process[_0xea39('0xf')][0x5]===_0xea39('0x12')){throw new Error(_0xea39('0x16'));}var LISTID=process['argv'][0x5];var COMPANYID=process[_0xea39('0xf')][0x6]&&process[_0xea39('0xf')][0x6]!=='undefined'&&process[_0xea39('0xf')][0x6]!==_0xea39('0x12')?process[_0xea39('0xf')][0x6]:null;var DUPLICATES=process['argv'][0x7]&&process['argv'][0x7]!==_0xea39('0x10')&&process[_0xea39('0xf')][0x7]!==_0xea39('0x12')?process['argv'][0x7]:null;if(!process[_0xea39('0xf')][0x8]||process[_0xea39('0xf')][0x8]===_0xea39('0x10')||process[_0xea39('0xf')][0x8]===_0xea39('0x12')){throw new Error(_0xea39('0x17'));}var SOCKET_TIMESTAMP=process['argv'][0x8];}catch(_0x534bab){logger[_0xea39('0x18')](_0x534bab);endCsv();}var total=0x0;var pTotal=0x0;var success=0x0;var errors=0x0;var duplicates=0x0;var rows=[];var hopperContacts='';var promises=[];var index=0x0;var alreadyInvalid=![];function handleCheckRowError(_0x1654f5,_0x5cfd4a,_0x537791,_0x5133c8){var _0x550807={'message':_0x5cfd4a};_0x550807[_0x1654f5]=!![];if(_0x537791){_0x550807[_0xea39('0x19')]=_0x537791;}if(_0x5133c8){_0x550807[_0xea39('0x1a')]=_0x5133c8;}return _0x550807;}function isEmail(_0x4289e7){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/[_0xea39('0x1b')](_0x4289e7);}function checkRow(_0x2209bc,_0x177c8e,_0x1769d5){return new BPromise(function(_0x45c976,_0xfaab2e){if(_[_0xea39('0x1c')](_0x2209bc)){return _0xfaab2e(handleCheckRowError('error','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!',null,_0x1769d5));}if(_0x2209bc[_0xea39('0x1d')]&&_0x2209bc['errors'][_0xea39('0x1e')]){var _0x340de8=_[_0xea39('0x1f')](_0x2209bc['errors'],'message')[_0xea39('0x20')](';');return _0xfaab2e(handleCheckRowError('error',_0x340de8,null,_0x1769d5));}var _0x2d8214={};for(var _0x46544c in FIELDS){if(FIELDS[_0xea39('0x21')](_0x46544c)&&FIELDS[_0x46544c]){_0x2d8214[_0x46544c]=_0x2209bc[_0xea39('0x22')][0x0][FIELDS[_0x46544c]]||_0x2209bc['data'][0x0]['\ufeff'+FIELDS[_0x46544c]];}}if(!_0x2d8214[_0xea39('0x23')]){return _0xfaab2e(handleCheckRowError(_0xea39('0x18'),_0xea39('0x24'),null,_0x1769d5));}if(!_0x2d8214[_0xea39('0x25')]){return _0xfaab2e(handleCheckRowError(_0xea39('0x18'),_0xea39('0x26'),null,_0x1769d5));}if(_0x2d8214['birthDate']){var _0x4bb05b=moment(_0x2d8214[_0xea39('0x27')],'YYYY-MM-DD');if(!_0x4bb05b[_0xea39('0x28')]()){return _0xfaab2e(handleCheckRowError('error',_0xea39('0x29'),null,_0x1769d5));}}if(_0x2d8214[_0xea39('0x2a')]){if(!isEmail(_0x2d8214['email'])){return _0xfaab2e(handleCheckRowError(_0xea39('0x18'),_0xea39('0x2b'),null,_0x1769d5));}}_0x2d8214[_0xea39('0x2c')]=LISTID;_0x2d8214[_0xea39('0x2d')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0xea39('0x1e')]&&_0x177c8e){var _0xaa5049={};for(var _0x137eb0=0x0,_0x472299=DUPLICATES[_0xea39('0x1e')];_0x137eb0<_0x472299;_0x137eb0+=0x1){_0xaa5049[DUPLICATES[_0x137eb0]]=_0x2d8214[DUPLICATES[_0x137eb0]];}var _0x244950=_[_0xea39('0x2e')](_0x177c8e,_0xaa5049);if(_0x244950){return _0xfaab2e(handleCheckRowError(_0xea39('0x2f'),_0xea39('0x30'),_0x244950,_0x1769d5));}}return db[_0xea39('0x31')][_0xea39('0x32')](_0x2d8214,{'raw':!![],'hooks':![],'fields':_[_0xea39('0x33')](_0x2d8214)})['then'](function(_0x4594a2){if(DUPLICATES&&DUPLICATES[_0xea39('0x1e')]&&_0x177c8e){_0x177c8e[_0xea39('0x34')](_['pick'](_0x2d8214,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x4594a2['id'];return _0x45c976();})[_0xea39('0x35')](function(_0x5db3c8){return _0xfaab2e(handleCheckRowError(_0xea39('0x18'),_0xea39('0x36')+(_0x5db3c8[_0xea39('0x37')]||JSON['stringify'](_0x5db3c8)),null,_0x1769d5));});});}function checkHopper(){function _0x31e019(){return function(_0x3d32e1){logger[_0xea39('0x18')](_0xea39('0x38'),_0xea39('0x39'),util[_0xea39('0x3a')](_0x3d32e1,{'showHidden':![],'depth':null}));};}var _0x5c06fc=function(_0x15911f,_0x5baf79){var _0x1b21f9=squel[_0xea39('0x3b')]()['into']('cm_hopper')[_0xea39('0x3c')]([_0xea39('0x25'),_0xea39('0x3d'),_0xea39('0x3e'),'ListId',_0x5baf79,'createdAt','updatedAt'],squel[_0xea39('0x3f')]()[_0xea39('0x40')]('phone',_0xea39('0x25'))[_0xea39('0x40')](_0xea39('0x41'),_0xea39('0x3d'))['field']('id',_0xea39('0x3e'))['field'](LISTID['toString'](),_0xea39('0x2c'))[_0xea39('0x40')](_0x15911f['id'][_0xea39('0x42')](),_0x5baf79)['field'](_0xea39('0x41'),_0xea39('0x43'))['field'](_0xea39('0x41'),'updatedAt')[_0xea39('0x44')](_0xea39('0x45'))[_0xea39('0x46')](_0xea39('0x47'))[_0xea39('0x46')](_0xea39('0x48'),LISTID['toString']())[_0xea39('0x46')](_0xea39('0x49'))[_0xea39('0x46')](_0xea39('0x4a'),squel[_0xea39('0x3f')]()[_0xea39('0x40')](_0xea39('0x25'))[_0xea39('0x44')](_0xea39('0x4b'))[_0xea39('0x46')](_0x5baf79+'\x20=\x20?',_0x15911f['id'][_0xea39('0x42')]())))['toString']();return _0x1b21f9;};var _0x494bae=function(_0x287d4c,_0x34049e){var _0x369b48=squel[_0xea39('0x3b')]()[_0xea39('0x4c')](_0xea39('0x4b'))['fromQuery'](['phone',_0xea39('0x3d'),'ContactId',_0xea39('0x2c'),_0x34049e,'createdAt',_0xea39('0x4d')],squel['select']()[_0xea39('0x40')](_0xea39('0x25'),'phone')[_0xea39('0x40')](_0xea39('0x41'),_0xea39('0x3d'))['field']('id','ContactId')['field'](LISTID['toString'](),'ListId')[_0xea39('0x40')](_0x287d4c['id'][_0xea39('0x42')](),_0x34049e)[_0xea39('0x40')](_0xea39('0x41'),_0xea39('0x43'))['field']('NOW()',_0xea39('0x4d'))[_0xea39('0x44')](_0xea39('0x45'))[_0xea39('0x46')](_0xea39('0x47'))[_0xea39('0x46')]('ListId\x20=\x20?',LISTID['toString']())[_0xea39('0x46')](_0xea39('0x4e'),squel[_0xea39('0x4f')](hopperContacts))[_0xea39('0x46')](_0xea39('0x49'))[_0xea39('0x46')]('phone\x20NOT\x20IN\x20(?)',squel[_0xea39('0x3f')]()[_0xea39('0x40')](_0xea39('0x50'))[_0xea39('0x44')](_0xea39('0x51'))[_0xea39('0x46')](_0x34049e+'\x20=\x20?',_0x287d4c['id'][_0xea39('0x42')]()))['where']('phone\x20NOT\x20IN\x20(?)',squel[_0xea39('0x3f')]()[_0xea39('0x40')](_0xea39('0x25'))[_0xea39('0x44')]('cm_hopper')[_0xea39('0x46')](_0x34049e+_0xea39('0x52'),_0x287d4c['id'][_0xea39('0x42')]())))[_0xea39('0x42')]();return _0x369b48;};function _0x206882(_0x18e4e2,_0x2f22ae){var _0xdde886=squel['insert']()[_0xea39('0x4c')](_0xea39('0x4b'))[_0xea39('0x3c')](['phone',_0xea39('0x3d'),_0xea39('0x3e'),_0xea39('0x2c'),_0x2f22ae,'createdAt',_0xea39('0x4d')],squel[_0xea39('0x3f')]()[_0xea39('0x40')](_0xea39('0x25'),_0xea39('0x25'))[_0xea39('0x40')](_0xea39('0x41'),_0xea39('0x3d'))[_0xea39('0x40')]('id',_0xea39('0x3e'))[_0xea39('0x40')](LISTID['toString'](),_0xea39('0x2c'))[_0xea39('0x40')](_0x18e4e2['id'][_0xea39('0x42')](),_0x2f22ae)[_0xea39('0x40')](_0xea39('0x41'),_0xea39('0x43'))[_0xea39('0x40')](_0xea39('0x41'),_0xea39('0x4d'))[_0xea39('0x44')](_0xea39('0x45'))[_0xea39('0x46')](_0xea39('0x47'))['where']('ListId\x20=\x20?',LISTID['toString']())[_0xea39('0x46')](_0xea39('0x4e'),squel[_0xea39('0x4f')](hopperContacts))['where'](_0xea39('0x49')))['toString']();return _0xdde886;}function _0x1a14e2(_0x30b472,_0x82809d){var _0x481453=squel[_0xea39('0x3b')]()['into'](_0xea39('0x53'))['fromQuery']([_0xea39('0x25'),_0xea39('0x3e'),_0xea39('0x2c'),_0x82809d,_0xea39('0x43'),'updatedAt'],squel[_0xea39('0x3f')]()[_0xea39('0x40')]('phone',_0xea39('0x25'))[_0xea39('0x40')]('id','ContactId')[_0xea39('0x40')](LISTID[_0xea39('0x42')](),_0xea39('0x2c'))['field'](_0x30b472['id'][_0xea39('0x42')](),_0x82809d)['field'](_0xea39('0x41'),_0xea39('0x43'))[_0xea39('0x40')](_0xea39('0x41'),_0xea39('0x4d'))[_0xea39('0x44')](_0xea39('0x45'))[_0xea39('0x46')](_0xea39('0x47'))[_0xea39('0x46')](_0xea39('0x48'),LISTID['toString']())[_0xea39('0x46')](_0xea39('0x4e'),squel[_0xea39('0x4f')](hopperContacts))[_0xea39('0x46')](_0xea39('0x49')))[_0xea39('0x42')]();return _0x481453;}return db[_0xea39('0x54')][_0xea39('0x55')]({'where':{'type':'outbound'},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db[_0xea39('0x56')],'as':_0xea39('0x57'),'where':{'id':LISTID}}]})[_0xea39('0x58')](function(_0xaed6d){var _0x378dd0=[];if(_0xaed6d){var _0x35cba0;for(var _0xda90e7=0x0,_0x310752;_0xda90e7<_0xaed6d[_0xea39('0x1e')];_0xda90e7+=0x1){_0x310752=_0xaed6d[_0xda90e7][_0xea39('0x59')]({'plain':!![]});switch(_0x310752['dialCheckDuplicateType']){case _0xea39('0x5a'):_0x378dd0[_0xea39('0x34')](db[_0xea39('0x5b')][_0xea39('0x5c')](_0x494bae(_0x310752,_0xea39('0x5d')))[_0xea39('0x58')](function(){})['catch'](_0x31e019()));break;case _0xea39('0x5e'):_0x378dd0[_0xea39('0x34')](db[_0xea39('0x5b')][_0xea39('0x5c')](_0x5c06fc(_0x310752,_0xea39('0x5d')))['then'](function(){})[_0xea39('0x35')](_0x31e019()));break;default:_0x378dd0[_0xea39('0x34')](db[_0xea39('0x5b')][_0xea39('0x5c')](_0x206882(_0x310752,_0xea39('0x5d')))[_0xea39('0x58')](function(){})[_0xea39('0x35')](_0x31e019()));}}}return _0x378dd0;})[_0xea39('0x5f')]()['then'](function(){return db[_0xea39('0x54')][_0xea39('0x55')]({'where':{'type':_0xea39('0x60')},'attributes':['id'],'include':[{'model':db['CmList'],'as':'BlackLists','where':{'id':LISTID}}]})['then'](function(_0x2d6c07){var _0x3cde3e=[];if(_0x2d6c07){var _0x4f054;for(var _0x4442e7=0x0,_0x154334;_0x4442e7<_0x2d6c07['length'];_0x4442e7+=0x1){_0x154334=_0x2d6c07[_0x4442e7][_0xea39('0x59')]({'plain':!![]});_0x3cde3e['push'](db[_0xea39('0x5b')]['query'](_0x1a14e2(_0x154334,_0xea39('0x5d')))[_0xea39('0x58')](function(){})[_0xea39('0x35')](_0x31e019()));}}return _0x3cde3e;})[_0xea39('0x5f')]();})[_0xea39('0x58')](function(){return db[_0xea39('0x61')][_0xea39('0x55')]({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db[_0xea39('0x56')],'as':_0xea39('0x57'),'where':{'id':LISTID}}]})[_0xea39('0x58')](function(_0x34f858){var _0x7a7b9=[];if(_0x34f858){for(var _0x5c338a=0x0,_0x4eb231;_0x5c338a<_0x34f858[_0xea39('0x1e')];_0x5c338a+=0x1){_0x4eb231=_0x34f858[_0x5c338a][_0xea39('0x59')]({'plain':!![]});switch(_0x4eb231[_0xea39('0x62')]){case _0xea39('0x5a'):_0x7a7b9[_0xea39('0x34')](db[_0xea39('0x5b')]['query'](_0x494bae(_0x4eb231,_0xea39('0x63')))[_0xea39('0x58')](function(){})[_0xea39('0x35')](_0x31e019()));break;case _0xea39('0x5e'):_0x7a7b9[_0xea39('0x34')](db[_0xea39('0x5b')]['query'](_0x5c06fc(_0x4eb231,_0xea39('0x63')))[_0xea39('0x58')](function(){})[_0xea39('0x35')](_0x31e019()));break;default:_0x7a7b9['push'](db[_0xea39('0x5b')]['query'](_0x206882(_0x4eb231,_0xea39('0x63')))[_0xea39('0x58')](function(){})[_0xea39('0x35')](_0x31e019()));}}}return _0x7a7b9;})[_0xea39('0x5f')]();})['then'](function(){return db[_0xea39('0x61')][_0xea39('0x55')]({'attributes':['id'],'include':[{'model':db['CmList'],'as':_0xea39('0x64'),'where':{'id':LISTID}}]})['then'](function(_0x39989a){var _0x48c9d4=[];if(_0x39989a){for(var _0x2a4f74=0x0,_0x1bfd92;_0x2a4f74<_0x39989a[_0xea39('0x1e')];_0x2a4f74+=0x1){_0x1bfd92=_0x39989a[_0x2a4f74][_0xea39('0x59')]({'plain':!![]});_0x48c9d4['push'](db[_0xea39('0x5b')][_0xea39('0x5c')](_0x1a14e2(_0x1bfd92,_0xea39('0x63')))[_0xea39('0x58')](function(){})[_0xea39('0x35')](_0x31e019()));}}return _0x48c9d4;})[_0xea39('0x5f')]();})['catch'](function(_0x493d1f){logger[_0xea39('0x18')](_0xea39('0x65'),_0xea39('0x66'),_0x493d1f['message']);});}var processPromises=function(_0x2d9878){return BPromise[_0xea39('0x5f')](promises)[_0xea39('0x58')](function(_0x49219b){})[_0xea39('0x35')](function(_0xa773ad){logger[_0xea39('0x18')](_0xea39('0x67'),JSON['stringify'](_0xa773ad));})[_0xea39('0x68')](function(){socket[_0xea39('0x69')](_0xea39('0x6a')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x2d9878){return _0x2d9878[_0xea39('0x6b')]();}});};var endCsv=function(){return BPromise['resolve']()['then'](function(){if(hopperContacts){return checkHopper();}})[_0xea39('0x58')](function(){socket[_0xea39('0x69')](_0xea39('0x6a')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0xea39('0x6c')](FILEPATH);}catch(_0x4ba454){logger['error'](_0xea39('0x6d'),JSON[_0xea39('0x6e')](_0x4ba454));}finally{process['exit'](0x0);}});};process['on'](_0xea39('0x6f'),function(){logger[_0xea39('0x70')](_0xea39('0x71'));endCsv();});function main(){return BPromise[_0xea39('0x72')]()['then'](function(){if(DUPLICATES){DUPLICATES=DUPLICATES['split'](',');return db[_0xea39('0x31')][_0xea39('0x55')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0xea39('0x58')](function(_0x24bd5f){var _0xa7a618=fs[_0xea39('0x73')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0xea39('0x74')](_0xa7a618,{'header':!![],'skipEmptyLines':!![],'step':function(_0x2f79d8,_0x4e3efb){total+=0x1;var _0x400fa1=total;promises[_0xea39('0x34')](checkRow(_0x2f79d8,_0x24bd5f,_0x400fa1)[_0xea39('0x58')](function(){success+=0x1;})['catch'](function(_0xee53f3){if(_0xee53f3['error']){errors+=0x1;delete _0xee53f3[_0xea39('0x18')];}else if(_0xee53f3[_0xea39('0x2f')]){duplicates+=0x1;delete _0xee53f3[_0xea39('0x2f')];}rows['push'](_0xee53f3);}));if(total%0xc8===0x0){_0x4e3efb[_0xea39('0x75')]();return processPromises(_0x4e3efb);}},'complete':function(){return processPromises()[_0xea39('0x58')](function(){logger['info'](_0xea39('0x76'));endCsv();});},'error':function(_0x4bb55f,_0x425fed){logger['info'](_0xea39('0x77'),JSON[_0xea39('0x6e')](_0x4bb55f));endCsv();}});})[_0xea39('0x35')](function(_0x3e76be){logger[_0xea39('0x18')](_0xea39('0x78'),JSON[_0xea39('0x6e')](_0x3e76be));});}main();