faker3/jd_unFollow.js
2024-07-14 21:03:33 +08:00

20 lines
30 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
取关(收藏的)店铺和商品
环境变量JD_UNFOLLOW_PIN_FILTER_GOODS // 不取关商品收藏的账号填入pin多个用@分割)
JD_UNFOLLOW_PIN_FILTER_SHOP // 不取关店铺关注的账号填入pin多个用@分割)
cron:15 0-23/12 * * *
============Quantumultx===============
[task_local]
#取关(收藏的)店铺和商品
15 0-23/12 * * * jd_unfollow.js, tag=取关(收藏的)店铺和商品, enabled=true
注:系统可能会存在无法被正常取关的异常商品或异常店铺
*/
const $ = new Env('取关店铺关注和商品')
const _0x4bff64=_0x1fa1;(function(_0x314185,_0x5c44e9){const _0x2cb5ef=_0x1fa1,_0x180ffb=_0x314185();while(!![]){try{const _0x340c99=-parseInt(_0x2cb5ef(0x182,'wndP'))/0x1*(-parseInt(_0x2cb5ef(0x1c4,'NT!$'))/0x2)+parseInt(_0x2cb5ef(0x17c,'S(N6'))/0x3+-parseInt(_0x2cb5ef(0x209,'g67T'))/0x4+parseInt(_0x2cb5ef(0x1ec,'5Dmi'))/0x5*(-parseInt(_0x2cb5ef(0x204,'vMy1'))/0x6)+-parseInt(_0x2cb5ef(0x1c8,'$cRw'))/0x7+parseInt(_0x2cb5ef(0x1b1,'AOzw'))/0x8*(parseInt(_0x2cb5ef(0x1b9,'YOCT'))/0x9)+parseInt(_0x2cb5ef(0x23b,'AOzw'))/0xa*(parseInt(_0x2cb5ef(0x23d,'S(N6'))/0xb);if(_0x340c99===_0x5c44e9)break;else _0x180ffb['push'](_0x180ffb['shift']());}catch(_0x4ec741){_0x180ffb['push'](_0x180ffb['shift']());}}}(_0x3056,0x27187));function _0x3056(){const _0x245a59=['W4NcIIO','WOFdKw0KW5ldPw3cK8oKW752','5BE75PAt6jw/','gZJdGSohW5NdVG','W5lcJc1tWO3dN2FcV8oAW45VW7OH','sCkEFI/dOKZcGG','irutlKlcKeb8dSk+WOFcHGS','jq3LJRpLHkVLLypLKl/MLlVOLBxMIydLIki','W6dcMJXNWQZdKMBcTq','WRPnW7tdMSoCWOyyW6ZdR8ovEhC','4P+buUAEH+EDJoITQEAYGSkl','WP46cCoRgbpcNdVdT8k5rMzJ','jCkYea','W5GxWOhcOCknELjSWOf4nmkH','W6SDW4hdHCoXWRFdUmojj8ot','WRhcP8oaqbVdKG','W5RdQSoHWRG','WP/cQeVcTaqYmrVdHGG5W4xcLq','W4LUgmoNqCo6nG','W640eSoKoalcTmoYWPdcKCogda','WQFcL2JcQ8o9WPq','WOyDW4lcO1HPWQ0','WQ42WO0Uo8oZWRlcMSkE','5lQN5BUL6zgx','w8o05y6n5yE15zss5zog5PE+6jAb5AwN6lEjWPdcKCkmtq','5lMU5zES5zkD','WPqvtKDEdI/dI8kbW4VcNHa','ECkmv2yP','w8oAWQNdMKJdIh3dIq','WQJcLNFcOSoGWPCCwdBdIeS/WR18iray','4P2OW5VMNkFOGQhMR6dNOyxLP6pNKyXh','5OY456wF57QD5P+djM3cPJFdMtHgW4GEla','WPhdKuK','dhhcQxdcR8k+W4fyW5dcS8orWOhdTGBcJmkh','fSk8nmo2c2BcUd4jWOhdICodW54bwmoThCoeWQH2ESk6','h8kiWR0','D0bwwbtdIbLphSkpWRxcKdJcKq','WQNdPSk+WQWu','WPVdHJnXWQhdNgtcU8oeW7G','sCoslg/cP8kMW5NdTgr4uq','WR1kW6/dJmoJWQacW7e','cSkOWQTBW4tcHCobW5hdNsm6FedcLmkeW5ddNHu','WRZcNgRcU8oQWPm4','cSkcCZNcVSo8WP3cQJSO','q8oHW6/cN8oyWPKpW47cH8kUFmkopSoEW7HrAmogW5TIwrldOrNcLdbm','5lQu5BUU6zgB','W5TCW55rW78QWQq','cCk7pa','WOGnW4NcUKbbWRNdPa','WO3ORzFMSAlLP7BOTiT/4P+XW7ZMLlhLKixLU4dMLPRMJly','WOZcOKVcKWCqkbK','hKNcMmkRWRC','WQjshW','WRldOSkMWRutW5X4aYWigmo1W6qojCkNWOxcOXuVW5SbWOFcHW','gvBcGmkJWQ8LxmkW','dCkHWPf4W49sW7O','wspdTuBcR8k3W7DaW7a','WOygW4HgW7m1WQrfW5LusCk2WQBcHmohWPq','sSovW6pcJmkIv8kEW6/dGCoUW40','W4PjdG','s2i2da','W4hcHI10WO7dVx7cVq','W5FcP3m','vSoCjG','p+IVOEAYKEwsQ+w6UZi','5RgD5P2R5PAl6jsu55QO5zwj5zcn','dYlcKG','WPKqk8oUyHBdTgBcIgOmWQvrFL3dSSkbW7i','bmkHWO5nW4fzW7pdMIPxWRmuW6jJW43dSG','ed7dK8owW57cOuxdGLJcPIiGf8kZFceQxSktW78ubJBdHSoIW5n3W6NdHJFdO8kkqay','4P6uW6NOHQNMNiNOVRNOO6RPGA7LI4BKUOFPLy/ORRHD','bSkRWO5NW4fcW4/dHZjJWRqyW7jAW4FdTCks','WPyhW4pcILnS','5Rgz5P+e5ywm5RcA55UV5BUj6zkN','WRxcQmod','Ar4eWPi','WRVcPSoxqa','DL4nn3xdK37dLZhdJWO','5lM75zs05zgS','WP46cCoRdHRcSa','FraaWOVdGmo/','lCkHeHKfrW','W59ubb0iwWxdNSkQ','WQ8QWPWoj8onWPpcMW','W45aW5fgW78R','WPZdJeVcHa','W4irWO3cUSkRDLHV','4P6KrEAEQ+ITVUwvNEwsKEwhQoAZOUwlS+IHREwLIUI3KamSb8kN','dmk6kmoJjNm','DKPoDXtdKcjufmk9WQhcNZNcUmovbtC','q8kEErRdReFcIYuqm8ksjxm','amokWQFcICkct0Obxmo3WRtdP8k3','W5vfWP3cV1jTWPNdGNS','k8ksWP19','W5FcOdbOb8o8AZfwWPNdKtq','WPqwW4NcQ181W6pcPSkqW5ulW4VcVKlcGSkQW5NcPMVcOCoZbG','n8oRgmoeE1845B6l5Asz44ck5lIM5lM76lEG5y26','W5emW5uxdb/dIa','avBcKW','wHmuaG','W57dICkD','WQ/cQmoAuq','W6eDW4O','A3NcPWDdxmkdWOq','W60OiSoJaGq','W6mkWRe','tL4akKVcN2ddNW','WOe9aq','WONdSsFdImkPWOxcRKBcHSo9','W41hW4S','sSoTW78CWOtdTmkCW6FdHcSEvNq','WRldOSkMWRutW5X4aYWigmo1W6qojCkNWOxcOXuVW5SdWPVcHW3cVaxcV8oAW6yEW6LbW7G','rmoEW6/cJmkMfmkSW6NdMCo9W7PW','f8kYWQK','W5/dH8kkWQ/dSdi','W4ddHvpcTe84ca','wCoCl2ZdO8kU','W7KZe8o2','xCoTe8oRa0JcUH8','v8kUw8ka','W4lcGdNdUCoXW4P0WR5ZWPJdT8oaWRS','eY/dNSov','WOr5j8oslSoay8o5WR8rFCovye3cUx/cPSkYWPhdH8opwConra7cKmoeW4a','cvZcMmkeWQWhrCkYheNdTWapcSoKW5S','WPhdM0dcGLRcQW','u8oDjw/dSG','EL0vngZcNwZdJJNdKHddQr7dKZzW','W7ldJNhdJr/dNfFcICkskSk5WRXCfCogW5PD','W6WPgmoHeIZcTmoUWRdcL8ockfZcJWtcLCoYW7C','g3ZcQKhcK8k6W4jhW6VcISoqWPO','tCoskh4','W4lcPZnZo8oJvdn1WPtdLYn2D3hdTKW','W5XPg8o7z8oPfCkWWRi4a8oxbWD7W7JdGa','W7tdUSoD','WR/dU8kIWRez','BmkMxG','5Rob5P+n5yAr5RoJ55IQ5BQI6zgL','W4pcRsTzo8o4Ac5TWQpdII9Y','W6mDW5O','W6axW57dMSo/WQFdJG','Cb4aWOm','W4dcLZ/dKmoS','5lMU5zEt5zg7','W4PNbCo2zCoTaCkJWQK9','W4BcIIddKSoxW4i','W45gW5fEW7uUWOCyW6rvxSkWWR7cU8oXWQ/dSq','bhhcQ1hcTmk6','umkuEt3dR2xcKIC','W4eyWOm','WQn85y6R5yEG5BU86zkq5yAO5RgQ5AET6lEDWPvfemoa','5BEp6k2/572C5B695yIC6lwt5y+L5lQg5yYe5ywP5BID6zkD5yA15RgL','W7tdHtS','heZcKCkWWROTrSkXb3BdSJ8zemoJW5PzWP0','gYxdG8od','WPxdP2hcHmkgWQ7cHstcOSoWjWy5qCkklCkGbmkjn1RcNrldTxZdULW','W4HIW7KO','5y2S5yw15BUG6zgT5yw75Rg25OMv5yMD','dstdLmodW5NdMaxcGLlcVY4','6lAc5yY/5PA/5Pwx','cCkXnCoHig8','tSk1qmkhpXj7W63cQW','cCkOWQbSW5pcPW','WRTaW6JdMmoJWPO','u8oDmM/dUmk9','qCouWRddNG','wI3dSatcL8kxW4HwW4xcJa','W4bmW5XwW78RWQq','W43dPSoFCbfQbrm','5Bwn5ywW5Rg4','AhFcUHi','WQ1sfCoQkCoI','W5GbW4JdM8oqWQhdHSoe','l8kPcsrAaeZcJu/cJxFcI8k4yuvibW','W6P0W5fyb8o6WRdcPCk1WR4','W58jW5e9cr3dJSouW5xdOCk2W5imWRDQkxHywCkOWOfuWP7dHtNcPr7cT8kyWR1CWO3cKa','AmowW4pcO8oXWRe','lSoMtffswWT5WPbwygPQfSoLWQBcJmoMW5hcM8oNDem','k8k8dtK/ra','W5ldRSo7WR7cOJC','5Rg65P2m5PEE6jAG55Up5zEf5zcN','vmkVuCkcjbf3W7G','WRNdUCk/WQGPWOi','W4ffbqChwWK','eCopdmoIWQeqACohWQulDZSu','WOZcSSkMW6hcKbJdMM7cK0a','jXWxiKVcNGnIiSk/WPlcVG','W5hcP33cNG','WOWxW47cSW','wmoXW5O4WPyhW5ZdHG9GWQ0r','BMpcTHrwvmkzWOxcJSoJySk8y8kNfCkmWQHx','5y2P5ywW5zEw5zkD5PAe6jAA5AsB6lsI','W5zTW7mWW4CXt3q','W64xW4tdHq','WO0CW4NcQKu','WRHhW5JdVmo0WOJdN8os','WO/dJ2FcLCk0WOWs','5yYx5y+25ysf','cCkQWPfUW5Xb','tCkvFJNdSv8','hCkGbsy4quxcJq','C3NcTa','CHak','W5/dUmoMWRdcSte','5yY+5ysw5zsi5zgD5PsT6jAF5OQl5yQv','WPOnW5hcT0n4WP/dOCkmW40','CKmwpxFcIG','WPC6s8oycvlcUtNcQmkxgdKGWR3dMtiXAmobWQaKWRVdJ8oKW6S5WOFdNXHWWOxdSH0+W7VcUY0wrCoYW7fqcINcUCktjq','WOW4b8oJ','W4vmW45bW7S+WRi','W6BdQEwnPEwfLUw7VUMrNowfMUAWNUAiKEwlIq','5BwE6k6E57Yy5BYN5yIR6lsA5y6B5lQ15yYf5yEF5zA05zk75PEW6jsq','cx7cPe4','xr0sea','WQ1aW7FdQ8oGWOiBW7pdLmoSEwW/Dt0D','WPtcOLG','W5/cQwdcKq','WQTtdG','ACkuDZxdR0FcHMvstSokAIVdPSoUW47cQSopWQVdOmoYn8oGWQ8Wb8kfWPtdRCoyaqtdGSk1W79sz8oUgCoJW6ZdNCooWPLLpfZdJmowy8kiW4NcT8kDWRvJsdrkrCkmWP3dOaVdUCoFe2OmWRRdRSo4WPHFo8oJdSoDW50rW6DjlKnEWQlcPSkIoIhcQCoaW77dMuZcOYHqW4RcP8o7qCkJW5jAWQNcGH3dVsXOWPNdRu1vW7GmiSkWvMvsl0tdG8k7WO/cL8odmwRdICotCCkgcCk1k8oenSkWWQFcNmoZjqtcJSkKxCkgjq5ujCoTW4DaoSomW4viWO4hW5LjB8oWaCk5WR3dH8oeWPPMESoFtMGDimkKW5igWP84W4tdOLD3WPHYvmo7EbG','pwFcOetcJSkZW4bs','WQCwoCooctJcJb3dN8kPCLzEW43cUWGzgSo8W4LrW4FcQmkpW4eyW67dI3PKW5VdR+s4OowpHUwgV+wxKEwsIEAvJUIwP+EyO+I2HowoNo+9S+wHV+whRmonELxVV4lLPPZKUQNNLzuH5yUu5yIu','W6L9W5XEE8ovWOdcTCkKWR7cSW','W4hdHu7cOfO3','W4dcGXpdMbpdVHddSqhdOa','vaVdJCo7W7CrASkFkMZdTa','W7VdJg7cM8oLWQG4wq','ErOzWQRdQmoVW63cKCk4DfiYWP3cGGhcM8kPsJ0','jCk2eYCxr00','WQlcLNW','EM7cUHi','WP7ORO7MS6pLPAdOTyvE4PYZWOa','B0irowNcShJdLW','v8kpFZxdRuZcJIWE','5Bwm5ysk5Rgj','W4tdICkeWP4','bwFdTvxcOCoRWPGgWPBdLW','CCkiAc7dJuRcII8','smkuAG','zCokW5C','W5LPgSo6xmo3mCkUWRG','W41seXu','BrCcWPBdGmo/','WO7dILZcJedcPetcQKu','bCocdCoaWP8tuSocWQWhycyquSoS','5yYw6ys26k+V5PUaWRldNxexzmkra2hdTa0','CXOEWPxdQmo8W60','4P22WPpMNQtOR6JLUj3PKlpLH5JMSBxLIjtOOBNLPi7OTlzqWP5oFG','W67cJabkgSossW1wWR/dTr9sCLBdMN7cM8ovgX/dIhNdPgZcUSk+W4itBCk25lMY5y+U5yEy5BUQ6zgr5yAH5Roi55Il6lwY5yYC77+R5Aoy5ywjWObIlU+/OowNJUs7OoEvNCkQ5yMY5yUY'];_0x3056=function(){return _0x245a59;};return _0x3056();}const jdCookie=require(_0x4bff64(0x229,'vMy1')),notify=require(_0x4bff64(0x1a6,'i#QI')),common=require(_0x4bff64(0x1bc,'l!PN')),{H5st}=require(_0x4bff64(0x23c,'mfiN'));console[_0x4bff64(0x203,'Mmj6')](''),console[_0x4bff64(0x241,'i#QI')](_0x4bff64(0x1ea,'U%b6')+$[_0x4bff64(0x198,'HN]R')]+_0x4bff64(0x1ff,'5Dmi')),console[_0x4bff64(0x191,'aTm@')](_0x4bff64(0x1e7,'ZT03')),console['log'](_0x4bff64(0x202,'!WXj')),console['log']('=========='+$[_0x4bff64(0x1b0,'hntk')]+_0x4bff64(0x222,'!RUC')),console[_0x4bff64(0x1f9,'B#%$')]('');const pinFilterGoods=(process[_0x4bff64(0x179,'mfiN')][_0x4bff64(0x186,'JIqp')]||'')[_0x4bff64(0x236,'5mku')]('@'),pinFilterShop=(process[_0x4bff64(0x1e4,'JIqp')][_0x4bff64(0x22f,'B#%$')]||'')[_0x4bff64(0x228,'d*lE')]('@'),isNotify=![];let cookie='';const cookiesArr=Object[_0x4bff64(0x185,'GKNG')](jdCookie)[_0x4bff64(0x20f,'*#g7')](_0x569b2c=>jdCookie[_0x569b2c])[_0x4bff64(0x160,'mfiN')](_0x40a914=>_0x40a914);!cookiesArr[0x0]&&($['msg']($['name'],'【提示】请先获取Cookie'),process[_0x4bff64(0x1f0,'Jg2a')](0x1));function _0x1fa1(_0x191898,_0x693ce6){const _0x30563b=_0x3056();return _0x1fa1=function(_0x1fa1b,_0x1c1136){_0x1fa1b=_0x1fa1b-0x153;let _0x1028b9=_0x30563b[_0x1fa1b];if(_0x1fa1['mnuxRL']===undefined){var _0x52dc25=function(_0x40a914){const _0x28be3a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1e1a25='',_0x53d546='';for(let _0x50a0ca=0x0,_0x405ca7,_0x55211f,_0x176e5a=0x0;_0x55211f=_0x40a914['charAt'](_0x176e5a++);~_0x55211f&&(_0x405ca7=_0x50a0ca%0x4?_0x405ca7*0x40+_0x55211f:_0x55211f,_0x50a0ca++%0x4)?_0x1e1a25+=String['fromCharCode'](0xff&_0x405ca7>>(-0x2*_0x50a0ca&0x6)):0x0){_0x55211f=_0x28be3a['indexOf'](_0x55211f);}for(let _0x26124e=0x0,_0x1b2ed8=_0x1e1a25['length'];_0x26124e<_0x1b2ed8;_0x26124e++){_0x53d546+='%'+('00'+_0x1e1a25['charCodeAt'](_0x26124e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x53d546);};const _0x569b2c=function(_0x3c1478,_0xcb150){let _0x5ad6dc=[],_0x684a16=0x0,_0x28d1f2,_0x147297='';_0x3c1478=_0x52dc25(_0x3c1478);let _0x43ce15;for(_0x43ce15=0x0;_0x43ce15<0x100;_0x43ce15++){_0x5ad6dc[_0x43ce15]=_0x43ce15;}for(_0x43ce15=0x0;_0x43ce15<0x100;_0x43ce15++){_0x684a16=(_0x684a16+_0x5ad6dc[_0x43ce15]+_0xcb150['charCodeAt'](_0x43ce15%_0xcb150['length']))%0x100,_0x28d1f2=_0x5ad6dc[_0x43ce15],_0x5ad6dc[_0x43ce15]=_0x5ad6dc[_0x684a16],_0x5ad6dc[_0x684a16]=_0x28d1f2;}_0x43ce15=0x0,_0x684a16=0x0;for(let _0x2f4b16=0x0;_0x2f4b16<_0x3c1478['length'];_0x2f4b16++){_0x43ce15=(_0x43ce15+0x1)%0x100,_0x684a16=(_0x684a16+_0x5ad6dc[_0x43ce15])%0x100,_0x28d1f2=_0x5ad6dc[_0x43ce15],_0x5ad6dc[_0x43ce15]=_0x5ad6dc[_0x684a16],_0x5ad6dc[_0x684a16]=_0x28d1f2,_0x147297+=String['fromCharCode'](_0x3c1478['charCodeAt'](_0x2f4b16)^_0x5ad6dc[(_0x5ad6dc[_0x43ce15]+_0x5ad6dc[_0x684a16])%0x100]);}return _0x147297;};_0x1fa1['CPckCa']=_0x569b2c,_0x191898=arguments,_0x1fa1['mnuxRL']=!![];}const _0x559c55=_0x30563b[0x0],_0x4e9a50=_0x1fa1b+_0x559c55,_0x103e06=_0x191898[_0x4e9a50];return!_0x103e06?(_0x1fa1['eDYWrT']===undefined&&(_0x1fa1['eDYWrT']=!![]),_0x1028b9=_0x1fa1['CPckCa'](_0x1028b9,_0x1c1136),_0x191898[_0x4e9a50]=_0x1028b9):_0x1028b9=_0x103e06,_0x1028b9;},_0x1fa1(_0x191898,_0x693ce6);}!(async()=>{const _0x243514=_0x4bff64;notify[_0x243514(0x180,'#f@g')]({'title':$['name']});for(let _0x28be3a=0x0;_0x28be3a<cookiesArr['length'];_0x28be3a++){$[_0x243514(0x1cd,'fINR')]=_0x28be3a+0x1,cookie=cookiesArr[_0x28be3a],common['setCookie'](cookie),$[_0x243514(0x176,'Gi&h')]=decodeURIComponent(common[_0x243514(0x227,'g67T')](cookie,_0x243514(0x174,'z&hY'))),$[_0x243514(0x1c2,'2u%@')]=notify[_0x243514(0x206,'GKNG')]($[_0x243514(0x189,'#f@g')],$[_0x243514(0x20b,'vMy1')]),$[_0x243514(0x1fb,'2u%@')]=_0x243514(0x21e,'*#g7')+common[_0x243514(0x1fe,'z81F')](0x4,_0x243514(0x22e,'#f@g'))+'_0',$['nickName']='',console[_0x243514(0x1f9,'B#%$')](_0x243514(0x16c,'dCUR')+$['index']+'】'+($['nickName']||$[_0x243514(0x1f7,'3PFd')])+_0x243514(0x1cf,'Mmj6')),await Main(),common[_0x243514(0x1a9,'GKNG')]();if($[_0x243514(0x1ad,']H*Z')])break;await $[_0x243514(0x1f5,'6vkj')](0x7d0);}isNotify&&notify['getMessage']()&&await notify[_0x243514(0x1c7,'QgYF')]();})()['catch'](_0x1e1a25=>$[_0x4bff64(0x17e,'6vkj')](_0x1e1a25))['finally'](()=>$[_0x4bff64(0x181,'z&hY')]());async function Main(){const _0x311ae4=_0x4bff64,_0x53d546=await common['getLoginStatus'](cookie);if(!_0x53d546&&typeof _0x53d546===_0x311ae4(0x218,'fINR')){console['log'](_0x311ae4(0x1aa,'!WXj'));return;}try{if(pinFilterGoods['length']>0x0&&(pinFilterGoods['includes']($[_0x311ae4(0x1b3,'aTm@')])||pinFilterGoods['includes'](encodeURIComponent($[_0x311ae4(0x1d3,'*#g7')]))))console[_0x311ae4(0x193,'l!PN')](_0x311ae4(0x1de,'2u%@'));else{$[_0x311ae4(0x21f,'hntk')]=0x0,$[_0x311ae4(0x190,'NUVf')]=[],await sendRequest(_0x311ae4(0x18c,'z&hY'));if($[_0x311ae4(0x22b,'W@oI')]>0x0){console[_0x311ae4(0x172,'M2xV')]('已收藏'+$['totalNum']+_0x311ae4(0x19a,'aTm@')),$[_0x311ae4(0x17f,'E)E3')][_0x311ae4(0x1d9,'Gi&h')](_0x311ae4(0x205,'B#%$')+$[_0x311ae4(0x15f,'YOCT')]+_0x311ae4(0x15a,'M2xV'));const _0x50a0ca=Math['ceil']($[_0x311ae4(0x235,'cyEr')]/0x1e);for(let _0x405ca7=0x0;_0x405ca7<_0x50a0ca;_0x405ca7++){await $[_0x311ae4(0x157,'HN]R')](0x3e8),$['followProductList']=$[_0x311ae4(0x153,'$cRw')][_0x311ae4(0x160,'mfiN')](_0x55211f=>_0x55211f?.[_0x311ae4(0x1fa,'NUVf')]&&_0x55211f?.[_0x311ae4(0x15c,'HN]R')]&&_0x55211f?.['commId']!=='0');if($['followProductList'][_0x311ae4(0x1e9,'E)E3')]>0x0){const _0x176e5a=$[_0x311ae4(0x19d,'mfiN')][_0x311ae4(0x170,'6vkj')](_0x26124e=>_0x26124e[_0x311ae4(0x1bd,'*#g7')]);console[_0x311ae4(0x16e,'5mku')]('去取关'+_0x176e5a[_0x311ae4(0x1be,'NT!$')]+_0x311ae4(0x21c,'N29(')),$[_0x311ae4(0x1c1,'d*lE')]=_0x176e5a[_0x311ae4(0x183,'dCUR')](','),await sendRequest('delFollowProduct'),await $[_0x311ae4(0x171,'2yMG')](0x7d0);}$[_0x311ae4(0x220,'5Dmi')]=[],$[_0x311ae4(0x19c,'Mmj6')]='',await sendRequest('queryFollowProduct'),await $[_0x311ae4(0x1b5,'Jg2a')](0x1388);}}else console[_0x311ae4(0x226,'S(N6')](_0x311ae4(0x1bf,'YOCT')),$[_0x311ae4(0x1dc,'mfiN')][_0x311ae4(0x1af,'#f@g')](_0x311ae4(0x244,'QgYF'));}console[_0x311ae4(0x177,'ZT03')]('');if(pinFilterShop[_0x311ae4(0x19e,'AOzw')]>0x0&&(pinFilterShop[_0x311ae4(0x1c0,'dCUR')]($[_0x311ae4(0x1b7,'M2xV')])||pinFilterShop[_0x311ae4(0x162,'7ZD@')](encodeURIComponent($[_0x311ae4(0x1e6,'AOzw')]))))console[_0x311ae4(0x1f9,'B#%$')](_0x311ae4(0x1a2,'dCUR'));else{$[_0x311ae4(0x1f2,'Gi&h')]=0x0,$[_0x311ae4(0x166,'3PFd')]='',await sendRequest(_0x311ae4(0x166,'3PFd'));if($[_0x311ae4(0x167,'E@X2')]){if($[_0x311ae4(0x19f,'3PFd')]>0x0){console[_0x311ae4(0x1ef,'5Dmi')](_0x311ae4(0x1f4,'HVih')+$['totalNum']+_0x311ae4(0x21a,'M2xV')),$[_0x311ae4(0x1ee,'*#g7')]['insert'](_0x311ae4(0x1b4,'def[')+$[_0x311ae4(0x240,'vMy1')]+'个店铺');const _0x1b2ed8=Math[_0x311ae4(0x1cc,'M2xV')]($[_0x311ae4(0x173,'Jg2a')]/0x14);for(let _0x3c1478=0x0;_0x3c1478<_0x1b2ed8;_0x3c1478++){let {floorClosedShops:floorClosedShops=[],floorSuperMarketShops:floorSuperMarketShops=[],showShopList:showShopList=[]}=$[_0x311ae4(0x214,'cyEr')]||{};$[_0x311ae4(0x20c,'W@oI')]=[...new Set([...floorSuperMarketShops,...showShopList,...floorClosedShops])],$[_0x311ae4(0x18d,'AOzw')]&&$['showShopList'][_0x311ae4(0x188,'U%b6')]>0x0&&($[_0x311ae4(0x15b,'ZT03')]=$[_0x311ae4(0x16a,'!WXj')][_0x311ae4(0x156,'2yMG')](_0xcb150=>_0xcb150[_0x311ae4(0x1fc,'HN]R')])[_0x311ae4(0x1c6,'i#QI')](','),console[_0x311ae4(0x1f8,'3PFd')](_0x311ae4(0x1d0,'2u%@')+$[_0x311ae4(0x210,'7ZD@')][_0x311ae4(0x1ab,'wndP')]+_0x311ae4(0x230,'HVih')),await $[_0x311ae4(0x1a7,'def[')](0x7d0),await sendRequest(_0x311ae4(0x211,'M2xV'))),$[_0x311ae4(0x216,'z&hY')]=[],await sendRequest(_0x311ae4(0x195,'!WXj')),await $['wait'](0x1388);}}else console[_0x311ae4(0x226,'S(N6')](_0x311ae4(0x194,'$cRw')),$[_0x311ae4(0x17f,'E)E3')][_0x311ae4(0x164,'wndP')]('没有关注的店铺');}else console[_0x311ae4(0x1a3,'N29(')](_0x311ae4(0x155,'cyEr'));}}catch(_0x5ad6dc){console[_0x311ae4(0x232,'wndP')](_0x311ae4(0x249,'2yMG')+_0x5ad6dc);}}async function handleResponse(_0x684a16,_0x28d1f2){const _0x40fac1=_0x4bff64;try{switch(_0x684a16){case _0x40fac1(0x246,'!RUC'):_0x28d1f2['code']==='0'?($[_0x40fac1(0x18f,'!WXj')]=_0x28d1f2[_0x40fac1(0x165,'g67T')]||[],$['totalNum']=parseInt(_0x28d1f2?.[_0x40fac1(0x233,'QgYF')]||0x0)):console[_0x40fac1(0x237,'JIqp')](_0x40fac1(0x163,'!RUC')+(_0x28d1f2?.['errMsg']||JSON[_0x40fac1(0x1fd,'U%b6')](_0x28d1f2)));break;case _0x40fac1(0x247,'$cRw'):_0x28d1f2[_0x40fac1(0x158,'2yMG')]==='0'?(console[_0x40fac1(0x1d5,'HN]R')](_0x40fac1(0x20a,'Gi&h')),$['message'][_0x40fac1(0x217,'5Dmi')](_0x40fac1(0x1d7,'!RUC'))):(console[_0x40fac1(0x1e2,'cyEr')](_0x40fac1(0x21b,'wndP')+(_0x28d1f2?.[_0x40fac1(0x15d,'*#g7')]||JSON['stringify'](_0x28d1f2))),$[_0x40fac1(0x200,'HN]R')][_0x40fac1(0x1d2,'3PFd')](_0x40fac1(0x1ca,'def[')));break;case _0x40fac1(0x207,'vMy1'):_0x28d1f2['code']==='0'?($[_0x40fac1(0x184,'Mmj6')]=_0x28d1f2[_0x40fac1(0x1ae,'W@oI')]||[],$[_0x40fac1(0x239,'5mku')]=parseInt(_0x28d1f2['result']['totalCount']||0x0)):console[_0x40fac1(0x242,'#f@g')](_0x40fac1(0x201,'#f@g')+JSON['stringify'](_0x28d1f2));break;case _0x40fac1(0x1d8,'QgYF'):_0x28d1f2[_0x40fac1(0x1a5,'GKNG')]==='0'?(console[_0x40fac1(0x1f9,'B#%$')](_0x40fac1(0x1dd,'2yMG')),$[_0x40fac1(0x208,'3PFd')][_0x40fac1(0x212,'2yMG')](_0x40fac1(0x1a8,'NUVf'))):(console[_0x40fac1(0x223,'U%b6')](_0x40fac1(0x1a1,'z&hY')+JSON[_0x40fac1(0x1f3,'3PFd')](_0x28d1f2)),$['message'][_0x40fac1(0x1d1,'$cRw')]('取关店铺关注失败'));break;}}catch(_0x147297){console[_0x40fac1(0x226,'S(N6')](_0x40fac1(0x221,'3PFd')+_0x684a16+_0x40fac1(0x243,'Jg2a')+(_0x147297[_0x40fac1(0x17f,'E)E3')]||_0x147297));}}async function sendRequest(_0x43ce15){const _0x48afe4=_0x4bff64;if($[_0x48afe4(0x154,'fINR')]||$['outFlag'])return;let _0x2f4b16='',_0x45e749=null,_0x3cefb2=null,_0x319371='GET',_0x31a5fb={},_0x3bdc13={};switch(_0x43ce15){case _0x48afe4(0x1a4,'5mku'):_0x3bdc13={'appId':'c420a','functionId':_0x48afe4(0x22c,']H*Z'),'appid':_0x48afe4(0x18b,'N29('),'body':{'cp':0x1,'pageSize':0x1e,'category':'','promote':0x0,'cutPrice':0x0,'coupon':0x0,'stock':0x0,'area':$[_0x48afe4(0x161,'U%b6')],'tenantCode':'jgm','bizModelCode':'6','bizModeClientType':'M','externalLoginType':'1'},'version':'4.7','ua':_0x48afe4(0x1e5,'3PFd')},_0x31a5fb=await H5st['getH5st'](_0x3bdc13),_0x2f4b16=_0x48afe4(0x238,'d*lE'),_0x3cefb2=Object['assign']({},_0x31a5fb[_0x48afe4(0x19b,'NUVf')],{'g_ty':_0x48afe4(0x1db,'ZT03'),'loginType':'2','sceneval':'2','g_login_type':'1','appCode':_0x48afe4(0x1f6,'AOzw')});break;case _0x48afe4(0x187,'5mku'):_0x2f4b16='https://api.m.jd.com/api',_0x3cefb2={'appid':'jd-cphdeveloper-m','functionId':_0x48afe4(0x224,'AOzw'),'body':JSON[_0x48afe4(0x1ac,'dCUR')]({'commId':$[_0x48afe4(0x1b6,'JIqp')],'tenantCode':_0x48afe4(0x1a0,'7ZD@'),'bizModelCode':'6','bizModeClientType':'M','externalLoginType':'1'}),'g_ty':_0x48afe4(0x1df,'AOzw'),'loginType':'2','sceneval':'2','g_login_type':'1','appCode':'ms0ca95114'};break;case'getFollowShop':_0x319371=_0x48afe4(0x23f,'Gi&h'),_0x2f4b16=_0x48afe4(0x248,'GKNG'),_0x45e749={'functionId':_0x43ce15,'body':JSON['stringify']({'page':0x1,'activityStatus':0x1,'refresh':![],'pageSize':0x14,'channel':'jg_shop'}),'appid':_0x48afe4(0x1c3,'z81F'),'t':Date[_0x48afe4(0x196,'M2xV')](),'clientVersion':common['getLatestAppVersion'](),'client':_0x48afe4(0x245,'GKNG'),'loginType':0x2,'loginWQBiz':_0x48afe4(0x159,'Gi&h')};break;case'followShop':_0x319371=_0x48afe4(0x169,']H*Z'),_0x2f4b16=_0x48afe4(0x17b,'d*lE'),_0x45e749={'functionId':_0x43ce15,'body':JSON[_0x48afe4(0x15e,'2u%@')]({'shopId':$[_0x48afe4(0x215,'NUVf')],'follow':![],'sourceRpc':_0x48afe4(0x225,'wndP')}),'appid':_0x48afe4(0x20e,'ZT03'),'t':Date['now'](),'clientVersion':common[_0x48afe4(0x1ed,'HN]R')](),'client':'wh5','loginType':0x2,'loginWQBiz':_0x48afe4(0x159,'Gi&h')};break;default:console[_0x48afe4(0x1d4,'Jg2a')](_0x48afe4(0x20d,'M2xV')+_0x43ce15);return;}const _0x4c5107={};_0x45e749&&Object[_0x48afe4(0x1d6,'NT!$')](_0x45e749,_0x4c5107);_0x3cefb2&&Object[_0x48afe4(0x1bb,'B#%$')](_0x3cefb2,_0x4c5107);const _0x386943={'url':_0x2f4b16,'method':_0x319371,'headers':{'Accept':[_0x48afe4(0x1c9,'Jg2a'),_0x48afe4(0x1e1,'W@oI')][_0x48afe4(0x1cb,'def[')](_0x43ce15)?_0x48afe4(0x18a,'Gi&h'):_0x48afe4(0x175,'W@oI'),'Accept-Encoding':_0x48afe4(0x1b8,'*#g7'),'Accept-Language':_0x48afe4(0x1da,'ZT03'),'Connection':'keep-alive','Content-Type':_0x48afe4(0x1ba,'HVih'),'Cookie':cookie,'Origin':_0x48afe4(0x16b,'QgYF'),'Referer':'https://shop.m.jd.com/','Sec-Fetch-Dest':_0x48afe4(0x192,'d*lE'),'Sec-Fetch-Mode':_0x48afe4(0x1e0,'llH)'),'Sec-Fetch-Site':_0x48afe4(0x22a,'#f@g'),'User-Agent':'Mozilla/5.0\x20(iPad;\x20CPU\x20OS\x2016_4_1\x20like\x20Mac\x20OS\x20X)\x20AppleWebKit/605.1.15\x20(KHTML,\x20like\x20Gecko)\x20Mobile/15E148\x20MicroMessenger/8.0.49(0x1800312d)\x20NetType/WIFI\x20Language/zh_CN\x20miniProgram/wx91d27dbf599dff74'},'params':_0x3cefb2,'data':_0x45e749,'timeout':0x7530,'httpsTlsOptions':common[_0x48afe4(0x219,'YOCT')]()};_0x319371==='GET'&&(delete _0x386943[_0x48afe4(0x16f,'llH)')],delete _0x386943[_0x48afe4(0x1b2,'mfiN')]['Content-Type']);const _0x161432=0x1;let _0xee89ce=0x0,_0x593c04=null,_0x56d65c=![];while(_0xee89ce<_0x161432){_0xee89ce>0x0&&await $[_0x48afe4(0x18e,'#f@g')](0x3e8);const _0x4b0d67=await common[_0x48afe4(0x22d,'5Dmi')](_0x386943);if(!_0x4b0d67[_0x48afe4(0x231,'mfiN')]){_0x593c04='🚫\x20'+_0x43ce15+_0x48afe4(0x1f1,'HVih')+_0x4b0d67[_0x48afe4(0x199,'Mmj6')],_0xee89ce++;continue;}if(!_0x4b0d67[_0x48afe4(0x1e3,'i#QI')]){_0x593c04='🚫\x20'+_0x43ce15+_0x48afe4(0x234,'E)E3'),_0xee89ce++;continue;}await handleResponse(_0x43ce15,_0x4b0d67[_0x48afe4(0x213,'NT!$')]),_0x56d65c=![];break;}_0xee89ce>=_0x161432&&(console[_0x48afe4(0x17d,']H*Z')](_0x593c04),_0x56d65c&&($[_0x48afe4(0x16d,'HVih')]=!![],$[_0x48afe4(0x197,'M2xV')]&&$[_0x48afe4(0x23a,'$cRw')][_0x48afe4(0x23e,'2u%@')](_0x593c04)));}
// prettier-ignore
function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s}`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) }