diff --git a/bjxd.js b/bjxd.js new file mode 100644 index 0000000..35ad528 --- /dev/null +++ b/bjxd.js @@ -0,0 +1,26 @@ +/* +北京现代 +有问题联系3288588344 +频道 +https://pd.qq.com/s/672fku8ge +积分换实物,积分涨的比较慢,自己决定跑不跑吧 + +捉域名bm2-api.bluemembers.com.cn任意包的token填到bjxdCookie里,多账户换行隔开 +安卓CK需要在对应的CK后面加上#android +不加默认为IOS CK,不通用 + +重写:打开APP获取 +[task_local] +#北京现代 +58 0,9-22/4 * * * https://raw.githubusercontent.com/leafTheFish/DeathNote/main/bjxd.js, tag=北京现代, enabled=true +[rewrite_local] +https://bm2-api.bluemembers.com.cn/v1/app/white/lovecar/banner url script-request-header https://raw.githubusercontent.com/leafTheFish/DeathNote/main/bjxd.js +[MITM] +hostname = bm2-api.bluemembers.com.cn + +定时:一天一两次 +cron: 36 7,20 * * * + +const $ = new Env("北京现代") +*/ +function _0x5721(){const _0x1e7f1b=['\x64\x5f\x72\x65\x70','\u7b7e\u5230\u6210\u529f','\x69\x6f\x6e\x73\x5f','\x67\x65\x74','\x6d\x54\x73\x59\x50','\x46\x6f\x72\x4b\x65','\x69\x6f\x6e\x5f\x69','\x74\x65\x6e\x74','\x59\x6e\x4d\x4e\x58','\x77\x52\x65\x64\x69','\x2f\x62\x61\x6e\x6e','\x74\x61\x73\x6b\x4c','\x3a\x2f\x2f\x62\x6d','\x6a\x75\x52\x50\x65','\x61\x70\x70\x53\x63','\x31\x32\x38\x32\x34\x39\x31\x4e\x61\x66\x61\x65\x56','\u8868\u5931\u8d25\uff1a','\x59\x7a\x4d\x64\x74','\x6a\x6f\x69\x6e','\u672a\u627e\u5230\x43\x4b','\x55\x73\x65\x72\x2d','\uff0c\u5171\u8fd0\u884c\u4e86','\u4e2a\u8d26\u53f7','\u56de\u7b54\u5931\u8d25\uff1a','\x6e\x33\x39','\x74\x69\x6d\x65','\x3d\x3d\x3d\x3d\x20','\x38\x2e\x31\x30\x2e','\x3d\x3d\x3d\x3d\x3d','\x72\x73\x2e\x63\x6f','\x61\x6c\x69\x76\x65','\x64\x61\x46\x68\x54','\x69\x73\x53\x69\x67','\x6f\x62\x6a\x65\x63','\u52b1\u4fe1\u606f\u5931\u8d25','\x69\x73\x4e\x65\x65','\x6e\x2f\x6a\x73\x6f','\x61\x73\x73\x69\x67','\x6e\x6f\x74\x69\x66','\x66\x69\x6e\x61\x6c','\x57\x53\x68\x64\x47','\x70\x54\x54\x4b\x58','\x69\x73\x53\x75\x72','\u7684\u8bf7\u6c42\uff0c\u5c0f','\x4a\x4c\x4d\x6e\x4c','\x6c\x68\x68\x62\x72','\x75\x4c\x45\x4b\x54','\x63\x74\x69\x6f\x6e','\x61\x73\x6b\x5f\x69','\x2e\x2f\x73\x65\x6e','\x69\x73\x4e\x6f\x64','\x6e\x61\x6d\x65','\x71\x75\x65\x72\x79','\x65\x72\x72\x6f\x72','\x6d\x6b\x47\x50\x72','\x75\x6e\x6c\x53\x69','\x65\x78\x65\x63','\x34\x35\x36\x37\x38','\x6b\x47\x46\x61\x52','\x6e\x4e\x6f\x74\x69','\x6e\x63\x65','\x70\x2f\x75\x73\x65','\x4d\x6f\x64\x65\x72','\x37\x32\x37\x33\x34\x34\x30\x74\x63\x74\x6c\x48\x6c','\x31\x32\x75\x54\x68\x6d\x6f\x59','\x79\x53\x74\x72','\x73\x65\x6e\x64\x4e','\x70\x68\x6f\x6e\x65','\u5317\u4eac\u73b0\u4ee3','\x45\x62\x78\x65\x6c','\u5171\u627e\u5230','\x67\x6f\x74','\x61\x70\x70\x6c\x69','\x74\x65\x73\x74','\x2e\x63\x6f\x64\x69','\x6f\x70\x65\x6e\x55','\x41\x65\x76\x46\x68','\x74\x70\u65b9\u6cd5\uff1a','\x4f\x47\x70\x4d\x68','\x6c\x6f\x67\x41\x6e','\x7c\x35\x7c\x31','\x70\x2f\x77\x68\x69','\x67\x65\x2d\x53\x6b','\x73\x6d\x5f\x64\x65','\x61\x63\x74\x69\x6f','\x73\x74\x61\x74\x75','\x66\x5a\x5a\x64\x6f','\x5f\x76\x61\x6c\x75','\x71\x71\x46\x53\x45','\x63\x6d\x43\x77\x79','\x75\x73\x65\x72\x54','\x36\x32\x30\x58\x54\x6b\x79\x64\x72','\x52\x6c\x6a\x46\x48','\x5d\u6ca1\u6709\u8fd4\u56de','\x51\x4e\x49\x4f\x79','\x6f\x6e\x65','\x57\x55\x42\x4c\x5a','\x20\x69\x4f\x53\x20','\x6f\x72\x65','\x78\x63\x79\x2f\x70','\x4a\x6a\x55\x46\x63','\x64\x65\x73','\x6d\x73\x67','\x6d\x2e\x63\x6e\x2f','\x77\x77\x2d\x66\x6f','\x48\x4a\x4b\x62\x71','\x75\x72\x73','\x6f\x74\x69\x66\x79','\x3d\x3d\x3d\x3d','\x69\x73\x51\x75\x61','\x6e\x73\x65','\x63\x72\x6b\x48\x79','\x48\x6f\x73\x74','\u56de\u7b54\u9519\u8bef','\x6e\x74\x2d\x54\x79','\x5d\u6210\u529f\uff0c\u83b7','\x48\x6e\x4f\x41\x55','\x67\x65\x74\x48\x6f','\u65e0\u6548\u7684\x68\x74','\u4eca\u65e5\u5df2\u5b8c\u6210','\x2e\x62\x6c\x75\x65','\x31\x37\x30\x38\x34\x33\x37\x62\x59\x4c\x43\x7a\x4a','\x68\x5f\x73\x65\x74','\x41\x7a\x5a\x48\x43','\x4d\x64\x64','\x4d\x64\x69\x59\x57','\x6a\x65\x63\x74\x50','\x73\x43\x6f\x64\x65','\x69\x6e\x63\x6c\x75','\x42\x79\x70\x6d\x5a','\x61\x74\x61','\x73\x74\x72','\x63\x61\x74\x63\x68','\x54\x42\x73\x78\x49','\x5a\x67\x61\x51\x46','\x73\x75\x62\x73\x74','\x43\x53\x4d\x6b\x64','\x6f\x70\x65\x6e\x2d','\x74\x68\x54\x69\x6d','\x2f\x61\x73\x6b\x5f','\x71\x75\x65\x73\x74','\x75\x6e\x64\x65\x66','\x74\x2f\x76\x61\x6c','\x63\x61\x74\x69\x6f','\u79ef\u5206\uff1a','\x44\x79\x72\x70\x4f','\x65\x65\x56\x63\x6b','\x72\x65\x73\x75\x6c','\x67\x65\x74\x44\x61','\x31\x35\x2e\x30\x3b','\x63\x6f\x6e\x64\x73','\x6a\x73\x6f\x6e\x32','\x47\x49\x54\x48\x55','\x0a\x3d\x3d\x3d\x3d','\x51\x66\x55\x54\x46','\x2d\x75\x72\x6c','\x67\x65\x74\x53\x65','\x67\x65\x74\x4d\x69','\x6d\x69\x78\x50\x68','\x72\x2f\x72\x65\x77','\x6e\x73\x77\x65\x72','\x76\x31\x2f\x61\x70','\u83b7\u53d6\u4efb\u52a1\u5217','\x73\x72\x79\x47\x42','\x57\x56\x72\x6c\x66','\x68\x6f\x49\x6a\x47','\x61\x73\x6b','\x4b\x74\x6d\x48\x47','\x6d\x65\x64\x69\x61','\x4d\x6e\x59\x4e\x55','\x6e\x67\x74\x68','\x6c\x69\x73\x74','\x6b\x62\x42\x77\x70','\x49\x66\x74\x7a\x66','\x61\x6e\x73\x77\x65','\x6c\x6f\x67','\x69\x66\x5f\x73\x69','\x46\x6b\x4d\x45\x50','\x75\x6c\x4e\x4a\x41','\x56\x59\x79\x59\x58','\x76\x65\x63\x61\x72','\x61\x72\x64\x5f\x6c','\x6e\x62\x62\x42\x6a','\x67\x65\x74\x4d\x6f','\uff0c\u6700\u65b0\u811a\u672c','\x6c\x67\x4f\x59\x42','\x43\x6f\x64\x65\x2f','\u83b7\u53d6\u7b7e\u5230\u5956','\x65\x78\x70\x6f\x72','\x64\x5f\x6c\x69\x73','\x6f\x75\x6e\x74\x2f','\x5d\u5df2\u5b8c\u6210\u8fc7','\x72\x61\x6e\x64\x6f','\x68\x54\x69\x6d\x65','\x69\x73\x4c\x6f\x6f','\x72\x65\x73\x70','\x6d\x65\x74\x68\x6f','\x76\x69\x63\x65\x49','\x79\x59\x75\x44\x76','\x77\x72\x69\x74\x65','\x6e\x43\x61\x72\x2f','\u7248\u672c\uff1a','\x7a\x4d\x41\x53\x72','\x69\x6e\x64\x65\x78','\x33\x31\x36\x33\x35\x35\x39\x46\x4d\x47\x61\x62\x44','\x6f\x70\x74\x73','\x72\x65\x70\x6c\x61','\x65\x72\x49\x6e\x66','\x64\x4e\x6f\x74\x69','\x44\x42\x61\x74\x72','\u4e2a\u8d26\u6237\x43\x4b','\x52\x63\x7a\x5a\x6c','\x67\x65\x74\x55\x73','\x6d\x4c\x69\x73\x74','\x74\x6f\x55\x70\x70','\x68\x68\x3a\x6d\x6d','\x2f\x69\x6e\x66\x6f','\x70\x6f\x73\x74','\x75\x72\x6c','\x69\x6e\x65\x64','\x2a\x2a\x2a\x2a','\x63\x68\x61\x72\x41','\x69\x73\x74','\x6c\x6f\x61\x64\x64','\x66\x49\x55\x55\x6f','\x20\u8fd0\u884c\u7ed3\u675f','\x4e\x4d\x67\x76\x6e','\x4b\x66\x55\x65\x76','\x74\x70\x53\x68\x55','\x64\x52\x65\x77\x72','\x72\x65\x73\x70\x6f','\x66\x69\x6c\x74\x65','\x69\x59\x50\x63\x6a','\x6c\x75\x65\x46\x6f','\x61\x62\x63\x64\x65','\x64\x65\x76\x69\x63','\x69\x6e\x66\x6f','\x6d\x53\x74\x72\x69','\x46\x43\x59\x43\x4a','\x65\x70\x6f\x74\x2f','\x65\x70\x6f\x72\x74','\x79\x64\x58\x46\x7a','\x57\x77\x71\x76\x4f','\x68\x67\x78\x57\x4e','\x61\x72\x61\x6d','\x57\x44\x75\x7a\x57','\x69\x4f\x53','\u83b7\u53d6\u7b2c','\x62\x6f\x64\x79','\x63\x69\x61\x6c\x2f','\x57\x43\x72\x47\x76','\x61\x73\x6b\x5f\x61','\x35\x36\x4e\x79\x6d\x50\x66\x4d','\x6c\x6f\x67\x57\x69','\x72\x73\x65\x74\x3d','\x65\x78\x74\x65\x6e','\x74\x69\x6d\x65\x6f','\x67\x65\x74\x53\x63','\x67\x69\x66\x79','\u670d\u52a1\u5668\u9519\u8bef','\x47\x56\x51\x62\x6a','\x6d\x65\x6d\x62\x65','\x39\x7c\x30\x7c\x33','\u8d26\u53f7\x5b','\u884c\u7b7e\u5230','\x6a\x5a\x76\x78\x44','\x20\u79d2\uff01','\x73\x63\x6f\x72\x65','\x61\x72\x64\x5f\x72','\u67e5\u8be2\u79ef\u5206\u5931','\x72\x2f\x74\x61\x73','\x68\x5f\x67\x65\x74','\x74\x61\x73\x6b\x41','\x70\x75\x73\x68','\x65\x2f\x33\x2e\x30','\x67\x44\x4f\x4c\x4f','\x65\x4d\x73\x67','\x65\x6e\x76','\x68\x69\x64','\u7cfb\u7edf\u901a\u77e5\x20','\x6e\x69\x63\x6b\x6e','\x6c\x6c\x69\x73\x65','\x45\x75\x71\x64\x66','\x68\x74\x74\x70\x73','\x70\x61\x72\x73\x65','\x4b\x77\x46\x50\x46','\x5d\x20\x3d\x3d\x3d','\x51\x41\x54\x76\x71','\x63\x6f\x6d\x6d\x6f','\x6e\x2f\x78\x2d\x77','\x68\x65\x61\x64\x65','\x2f\x75\x73\x65\x72','\x72\x65\x73\x6f\x6c','\x57\x48\x75\x4b\x7a','\x43\x41\x66\x58\x64','\x66\x6c\x6f\x6f\x72','\x73\x74\x61\x74\x65','\x55\x55\x52\x65\x62','\x48\x55\x55\x47\x77','\x62\x6a\x78\x64','\x66\x30\x31\x32\x33','\x73\x65\x74\x76\x61','\x67\x65\x74\x64\x61','\x69\x70\x2d\x53\x63','\x76\x61\x6c\x75\x65','\x4f\x44\x6a\x4d\x64','\x5d\uff0c\u91cd\u8bd5\x2e','\x6c\x61\x74\x65\x73','\x74\x6f\x6b\x65\x6e','\x61\x62\x61\x57\x56','\x6a\x73\x6f\x6e','\x3d\x3d\x3d','\x69\x6f\x6e','\x67\x65\x74\x76\x61','\x7c\x34\x7c\x32\x7c','\x61\x66\x78\x63\x79','\x6e\x67\x2e\x6e\x65','\x69\x6e\x73\x74\x61','\x75\x72\x6c\x4f\x62','\x67\x65\x74\x54\x69','\x74\x68\x65\x6e','\x61\x78\x6a\x6d\x77','\x73\x70\x6c\x69\x74','\x6c\x6f\x64\x61\x73','\x6c\x6c\x59\x65\x61','\x6e\x75\x6c\x6c','\x64\x6f\x6e\x65','\x75\x73\x65\x72\x73','\x67\x69\x74\x2f\x62','\x6e\x69\x64','\u5230\u53d8\u91cf\x5b','\x65\x72\x6e','\x69\x64\x63\x6f\x64','\x43\x6f\x6e\x74\x65','\u56de\u7b54\u6b63\u786e\uff0c','\x6b\x77\x75\x4d\x48','\x4a\x55\x72\x56\x6e','\x32\x2d\x61\x70\x69','\x73\x68\x6f\x77\x6d','\x64\x65\x6c\x65\x74','\x6c\x65\x6e\x63\x6f','\x56\x53\x6f\x6b\x78','\x70\x2f\x61\x63\x63','\u4efb\u52a1\x5b','\x78\x41\x6d\x79\x44','\x67\x6e\x65\x64\x5f','\x65\x72\x72','\x6c\x67\x4d\x4d\x59','\x79\x78\x44\x65\x6d','\x54\x69\x6d\x65','\x6e\x4d\x73\x67','\x65\x78\x69\x74','\u7684\u8bf7\u6c42\uff0c\u6ee1','\x37\x7c\x38\x7c\x36','\x61\x4e\x58\x6d\x52','\x72\x50\x61\x72\x61','\u624b\u673a\uff1a','\x73\x65\x74\x64\x61','\x73\x6c\x69\x63\x65','\x53\x71\x71\x4d\x6d','\x6e\x7a\x4e\x4c\x72','\x77\x61\x69\x74','\x64\x61\x74\x61','\x57\x4c\x6b\x72\x49','\x48\x4b\x4b\x68\x61','\x63\x6f\x64\x65','\x64\x6b\x79\x74\x50','\x52\x68\x61\x46\x6d','\x31\x34\x33\x38\x35\x36\x32\x6b\x47\x70\x77\x44\x4e','\x55\x72\x6c','\x6e\x74\x2d\x4c\x65','\x3a\x2f\x2f\x6c\x65','\x32\x31\x38\x33\x32\x32\x36\x66\x64\x42\x6d\x4e\x71','\x77\x63\x67\x41\x52','\x6f\x70\x74\x69\x6f','\x6c\x65\x6e\x67\x74','\x50\x61\x72\x61\x6d','\x64\x61\x69\x6c\x79','\x73\x74\x61\x72\x74','\x20\u5f00\u59cb\u8fd0\u884c','\x72\x69\x70\x74\x69','\x6f\x72\x74','\x41\x67\x65\x6e\x74','\x75\x74\x66\x2d\x38','\x78\x6c\x46\x57\x64','\u6635\u79f0\uff1a','\x72\x65\x64\x2d\x64','\x63\x6f\x6e\x74\x65','\x34\x39\x30\x32\x35\x4d\x73\x58\x47\x65\x47','\x66\x6f\x6c\x6c\x6f','\x6e\x66\x6f','\x68\x61\x73\x68','\x67\x65\x74\x46\x75','\x66\x65\x74\x63\x68','\x73\x65\x6e\x64','\x6b\x65\x65\x70\x2d','\x6b\x65\x79\x73','\x6e\x74\x68','\x76\x61\x6c\x69\x64','\x64\x48\x61\x73\x68','\x69\x73\x5f\x73\x74','\x5d\u5931\u8d25\uff1a','\x65\x72\x43\x61\x73','\x72\x65\x77\x61\x72','\u5b8c\u6210\u4efb\u52a1\x5b','\x70\x61\x64\x53\x74','\x3a\x73\x73\x2e\x53','\x73\x74\x72\x69\x6e','\x70\x2f\x73\x63\x6f','\x6e\x3b\x63\x68\x61','\x74\x2f\x61\x70\x69','\x65\x2f\x73\x68\x61'];_0x5721=function(){return _0x1e7f1b;};return _0x5721();}const _0x52877=_0x203e;(function(_0x30cdc3,_0x10122b){const _0x1d2b49=_0x203e,_0x54e660=_0x30cdc3();while(!![]){try{const _0xff4d47=parseInt(_0x1d2b49(0x1a5))/(0x237a+0x15ef+-0x3968)+parseInt(_0x1d2b49(0x1a9))/(-0x171f*-0x1+-0x1*-0x2131+-0x384e*0x1)+-parseInt(_0x1d2b49(0x24a))/(-0x52a*0x5+-0x2076+0x3a4b)+parseInt(_0x1d2b49(0x22c))/(0x2210+0x1a3c+0x3c48*-0x1)*(parseInt(_0x1d2b49(0x1b9))/(-0xb83+-0x12d8+0xa2*0x30))+-parseInt(_0x1d2b49(0x211))/(-0x267+-0x1b*-0xd+-0x5*-0x36)*(parseInt(_0x1d2b49(0x101))/(0x851*0x3+-0x21be+0x469*0x2))+parseInt(_0x1d2b49(0x131))/(0x209*0xb+-0x1feb+0x990)*(-parseInt(_0x1d2b49(0x1e0))/(0xb21+0x5d4+-0x5a4*0x3))+-parseInt(_0x1d2b49(0x210))/(-0x19c2+0x17a0+0x22c);if(_0xff4d47===_0x10122b)break;else _0x54e660['push'](_0x54e660['shift']());}catch(_0x1b755f){_0x54e660['push'](_0x54e660['shift']());}}}(_0x5721,0x8a0f4+0xa*0x2919a+0x2aa39*-0x8));const _0x8716db=new _0x4cda8f(_0x52877(0x215));let _0x268653=['\x0a'],_0x2fdc9f='\x62\x6a\x78\x64\x43'+'\x6f\x6f\x6b\x69\x65',_0x219a02=(_0x8716db[_0x52877(0x203)+'\x65']()?process[_0x52877(0x14a)][_0x2fdc9f]:_0x8716db[_0x52877(0x163)+'\x74\x61'](_0x2fdc9f))||'',_0x2d9559=[],_0x2c43fb=0x1*0x83c+-0xd39*-0x2+-0x22ae,_0x1b86b6=0x16f6+-0x9*0x97+0x11a7*-0x1,_0x30fc44=_0x52877(0x219)+_0x52877(0x260)+_0x52877(0x1f5)+_0x52877(0x1ce)+_0x52877(0x133)+_0x52877(0x1b4),_0x1d8bc9=_0x52877(0x20f)+_0x52877(0xfd)+_0x52877(0x1ec)+'\x30\x20\x28\x69\x50'+'\x68\x6f\x6e\x65\x3b'+_0x52877(0x232)+_0x52877(0x266)+'\x20\x53\x63\x61\x6c'+_0x52877(0x147)+'\x30\x29',_0x8c33cb=_0x52877(0x12b),_0x5403e8=-0xf4*-0x22+-0x218+-0x1e49,_0x32da0f=0x208b+0x159f+-0x215*0x1a,_0x1a4387=-0x3*0x635+-0x1813+0x2bde,_0x491d53=-0x3*0x805+0x31*0xb3+-0x326*0x2,_0x49a9ae=0x1c81*-0x1+-0x28d*-0xe+-0x734+0.020000000000000018,_0x1c6e5c=![],_0x194108=_0x52877(0x160),_0x6567ed=_0x52877(0x150)+_0x52877(0x1a8)+_0x52877(0x170)+_0x52877(0x21b)+_0x52877(0x171)+_0x52877(0x1cf)+_0x52877(0x158)+'\x2f\x6c\x65\x61\x66'+_0x52877(0x234)+'\x72\x6f\x6a\x65\x63'+_0x52877(0x25f)+_0x52877(0x181)+_0x52877(0x1d0)+_0x52877(0x1b7)+_0x52877(0x124)+_0x52877(0x1c3)+_0x52877(0x28b)+_0x52877(0x17d)+'\x6c\x6f\x62\x2f\x6d'+'\x61\x73\x74\x65\x72'+'\x2f\x63\x6f\x64\x65'+'\x2e\x6a\x73\x6f\x6e';class _0x4c27a8{constructor(_0x17c2ed){const _0x5eae87=_0x52877;this[_0x5eae87(0x100)]=++_0x2c43fb,this[_0x5eae87(0x204)]=this['\x69\x6e\x64\x65\x78'],this[_0x5eae87(0x1c3)]=![];let _0x465c2e=_0x17c2ed[_0x5eae87(0x177)]('\x23');this[_0x5eae87(0x169)]=_0x465c2e[-0x4*0x2f0+0x24f1+0x1*-0x1931],this['\x64\x65\x76\x69\x63'+'\x65']=_0x465c2e[0x1*-0xc67+-0x54*-0xd+0x209*0x4]||_0x8c33cb;}async[_0x52877(0x145)+'\x70\x69'](_0x3967b8={}){const _0x47146c=_0x52877,_0x47812b={'\x79\x64\x58\x46\x7a':function(_0x5c737a,_0x2d41eb){return _0x5c737a+_0x2d41eb;},'\x57\x55\x42\x4c\x5a':_0x47146c(0x1c0)+_0x47146c(0x1ef),'\x4f\x44\x6a\x4d\x64':_0x47146c(0x182)+_0x47146c(0x243)+'\x70\x65','\x52\x6c\x6a\x46\x48':_0x47146c(0x1f2)+'\x74','\x4d\x6e\x59\x4e\x55':_0x47146c(0x16b),'\x49\x73\x7a\x72\x79':function(_0x5850b8,_0x5de848){return _0x5850b8===_0x5de848;},'\x4d\x73\x74\x66\x69':function(_0x2defec,_0x186276,_0x578909){return _0x2defec(_0x186276,_0x578909);},'\x64\x55\x48\x7a\x41':function(_0x534be9,_0x2906fd){return _0x534be9!=_0x2906fd;},'\x4e\x4d\x67\x76\x6e':function(_0x46abc2,_0x265d81){return _0x46abc2===_0x265d81;}};let _0x4dd0e8={};try{let _0x1c0362=_0x3967b8[_0x47146c(0x10f)][_0x47146c(0x103)+'\x63\x65']('\x2f\x2f','\x2f')[_0x47146c(0x177)]('\x2f')[0xd33+0x1bf0+-0xf*0x2be],_0x1e768b=_0x3967b8['\x75\x72\x6c'];if(_0x3967b8[_0x47146c(0x205)+_0x47146c(0x1ad)])_0x1e768b+=_0x47812b[_0x47146c(0x126)]('\x3f',_0x8716db[_0x47146c(0x268)+_0x47146c(0x254)](_0x3967b8[_0x47146c(0x205)+_0x47146c(0x1ad)],'\x26',!![]));const _0x206c16={};_0x206c16[_0x47146c(0x241)]=_0x1c0362,_0x206c16['\x43\x6f\x6e\x6e\x65'+_0x47146c(0x200)]=_0x47812b[_0x47146c(0x231)],_0x206c16[_0x47146c(0x169)]=this['\x74\x6f\x6b\x65\x6e'],_0x206c16[_0x47146c(0x1e5)+_0x47146c(0x1b3)]=_0x1d8bc9,_0x206c16[_0x47146c(0x120)+'\x65']=this['\x64\x65\x76\x69\x63'+'\x65'];const _0x35520c={};_0x35520c[_0x47146c(0x10f)]=_0x1e768b,_0x35520c[_0x47146c(0x157)+'\x72\x73']=_0x206c16,_0x35520c[_0x47146c(0x135)+'\x75\x74']=0x1388;let _0x47c42e=_0x35520c;if(_0x3967b8[_0x47146c(0x12d)]){_0x47c42e[_0x47146c(0x157)+'\x72\x73'][_0x47812b[_0x47146c(0x166)]]=_0x3967b8[_0x47812b[_0x47146c(0x166)]]||_0x30fc44;if(typeof _0x3967b8[_0x47146c(0x12d)]===_0x47812b[_0x47146c(0x22d)]){if(_0x47c42e['\x68\x65\x61\x64\x65'+'\x72\x73']['\x43\x6f\x6e\x74\x65'+'\x6e\x74\x2d\x54\x79'+'\x70\x65'][_0x47146c(0x251)+_0x47146c(0x236)](_0x47812b[_0x47146c(0x27a)]))_0x47c42e[_0x47146c(0x12d)]=JSON['\x73\x74\x72\x69\x6e'+'\x67\x69\x66\x79'](_0x3967b8[_0x47146c(0x12d)]);else{for(let _0x35ecf0 in _0x3967b8[_0x47146c(0x12d)]){_0x47812b['\x49\x73\x7a\x72\x79'](typeof _0x3967b8['\x62\x6f\x64\x79'][_0x35ecf0],_0x47146c(0x1f2)+'\x74')&&(_0x3967b8[_0x47146c(0x12d)][_0x35ecf0]=JSON['\x73\x74\x72\x69\x6e'+_0x47146c(0x137)](_0x3967b8[_0x47146c(0x12d)][_0x35ecf0]));}_0x47c42e['\x62\x6f\x64\x79']=_0x8716db[_0x47146c(0x268)+_0x47146c(0x254)](_0x3967b8['\x62\x6f\x64\x79'],'\x26');}}else _0x47c42e[_0x47146c(0x12d)]=_0x3967b8['\x62\x6f\x64\x79'];}if(_0x3967b8['\x75\x72\x6c\x4f\x62'+_0x47146c(0x24f)+_0x47146c(0x129)])Object[_0x47146c(0x1f6)+'\x6e'](_0x47c42e,_0x3967b8[_0x47146c(0x173)+_0x47146c(0x24f)+_0x47146c(0x129)]);if(_0x3967b8[_0x47146c(0x157)+_0x47146c(0x198)+'\x6d'])Object[_0x47146c(0x1f6)+'\x6e'](_0x47c42e['\x68\x65\x61\x64\x65'+'\x72\x73'],_0x3967b8[_0x47146c(0x157)+_0x47146c(0x198)+'\x6d']);_0x4dd0e8=Object['\x61\x73\x73\x69\x67'+'\x6e']({},await _0x47812b['\x4d\x73\x74\x66\x69'](_0x521f1c,_0x3967b8[_0x47146c(0x295)+'\x64'],_0x47c42e)),_0x4dd0e8[_0x47146c(0x226)+_0x47146c(0x250)]=_0x4dd0e8?.['\x65\x72\x72']?.[_0x47146c(0x11b)+_0x47146c(0x23f)]?.[_0x47146c(0x226)+_0x47146c(0x250)]||_0x4dd0e8?.[_0x47146c(0x294)]?.[_0x47146c(0x226)+_0x47146c(0x250)];_0x47812b['\x64\x55\x48\x7a\x41'](_0x4dd0e8['\x73\x74\x61\x74\x75'+'\x73\x43\x6f\x64\x65'],0x12b6*0x1+-0x2*0x119f+0x1150)&&console['\x6c\x6f\x67']('\x5b'+_0x3967b8['\x66\x6e']+'\x5d\u8fd4\u56de\x5b'+_0x4dd0e8[_0x47146c(0x226)+_0x47146c(0x250)]+'\x5d');if(_0x4dd0e8?.[_0x47146c(0x294)]?.[_0x47146c(0x12d)]){if(_0x47812b[_0x47146c(0x117)](typeof _0x4dd0e8[_0x47146c(0x294)]['\x62\x6f\x64\x79'],_0x47812b[_0x47146c(0x22d)]))_0x4dd0e8[_0x47146c(0x264)+'\x74']=_0x4dd0e8[_0x47146c(0x294)][_0x47146c(0x12d)];else try{_0x4dd0e8[_0x47146c(0x264)+'\x74']=JSON[_0x47146c(0x151)](_0x4dd0e8[_0x47146c(0x294)][_0x47146c(0x12d)]);}catch(_0x3866e6){console[_0x47146c(0x280)]('\x5b'+_0x3967b8['\x66\x6e']+(_0x47146c(0x22e)+'\x6a\x73\x6f\x6e\u6570'+'\u636e')),_0x4dd0e8[_0x47146c(0x264)+'\x74']=_0x4dd0e8[_0x47146c(0x294)][_0x47146c(0x12d)];}}}catch(_0x1e3872){console[_0x47146c(0x280)](_0x1e3872);}finally{return Promise[_0x47146c(0x159)+'\x76\x65'](_0x4dd0e8);}}async[_0x52877(0x109)+'\x65\x72\x49\x6e\x66'+'\x6f'](){const _0x16e94d=_0x52877,_0x2dd093={};_0x2dd093[_0x16e94d(0x15a)]=_0x16e94d(0x109)+'\x65\x72\x49\x6e\x66'+'\x6f',_0x2dd093[_0x16e94d(0x19c)]=_0x16e94d(0x1d4),_0x2dd093[_0x16e94d(0x22a)]=function(_0x5d7f46,_0x1cd399){return _0x5d7f46===_0x1cd399;},_0x2dd093[_0x16e94d(0x13e)]=_0x16e94d(0x1f2)+'\x74',_0x2dd093[_0x16e94d(0x275)]=function(_0x3eb268,_0x3af266){return _0x3eb268==_0x3af266;},_0x2dd093[_0x16e94d(0x24c)]=function(_0x1debea,_0x4fb848){return _0x1debea+_0x4fb848;},_0x2dd093[_0x16e94d(0x22f)]=_0x16e94d(0x111);const _0x33a855=_0x2dd093;let _0x38b266={};try{const _0x2c6f90={};_0x2c6f90['\x66\x6e']=_0x33a855[_0x16e94d(0x15a)],_0x2c6f90[_0x16e94d(0x295)+'\x64']=_0x33a855[_0x16e94d(0x19c)],_0x2c6f90['\x75\x72\x6c']=_0x16e94d(0x150)+_0x16e94d(0x1dd)+'\x32\x2d\x61\x70\x69'+'\x2e\x62\x6c\x75\x65'+'\x6d\x65\x6d\x62\x65'+_0x16e94d(0x1ee)+_0x16e94d(0x238)+'\x76\x31\x2f\x61\x70'+_0x16e94d(0x18b)+'\x6f\x75\x6e\x74\x2f'+_0x16e94d(0x17c)+_0x16e94d(0x10d);let _0xcaf926=_0x2c6f90;_0x38b266=Object[_0x16e94d(0x1f6)+'\x6e']({},await this[_0x16e94d(0x145)+'\x70\x69'](_0xcaf926));if(_0x33a855[_0x16e94d(0x22a)](typeof _0x38b266?.['\x72\x65\x73\x75\x6c'+'\x74'],_0x33a855[_0x16e94d(0x13e)])){let _0x4299a4=_0x38b266[_0x16e94d(0x264)+'\x74'];if(_0x33a855[_0x16e94d(0x275)](_0x4299a4['\x63\x6f\x64\x65'],0xcab+-0x7dc+0x4cf*-0x1)){const _0x11457f=(_0x16e94d(0x13b)+_0x16e94d(0x16f)+_0x16e94d(0x196)+_0x16e94d(0x221))['\x73\x70\x6c\x69\x74']('\x7c');let _0x1e0ac4=-0x15a+-0x1*0xd0a+0x4*0x399;while(!![]){switch(_0x11457f[_0x1e0ac4++]){case'\x30':this[_0x16e94d(0x14b)]=_0x4299a4[_0x16e94d(0x19f)][_0x16e94d(0x14b)];continue;case'\x31':_0x8716db[_0x16e94d(0x220)+_0x16e94d(0x105)+'\x66\x79'](_0x16e94d(0x199)+this['\x6d\x69\x78\x50\x68'+_0x16e94d(0x230)]);continue;case'\x32':this[_0x16e94d(0x26f)+'\x6f\x6e\x65']=_0x33a855['\x41\x7a\x5a\x48\x43'](this['\x70\x68\x6f\x6e\x65'][_0x16e94d(0x19b)](0x1b62*-0x1+-0xd54+0x28b6,0x286*-0x1+-0x2223+0x24ac)+_0x33a855[_0x16e94d(0x22f)],this[_0x16e94d(0x214)]['\x73\x6c\x69\x63\x65'](-0x189f+0xc*-0x147+-0x7*-0x5b6,-0xa3*0x31+-0x50e+-0x2*-0x1227));continue;case'\x33':this[_0x16e94d(0x204)]=_0x4299a4['\x64\x61\x74\x61'][_0x16e94d(0x14d)+'\x61\x6d\x65'];continue;case'\x34':this[_0x16e94d(0x214)]=_0x4299a4[_0x16e94d(0x19f)]['\x70\x68\x6f\x6e\x65'];continue;case'\x35':_0x8716db['\x6c\x6f\x67\x41\x6e'+_0x16e94d(0x105)+'\x66\x79'](_0x16e94d(0x1b6)+this['\x6e\x61\x6d\x65']);continue;case'\x36':this['\x69\x73\x53\x69\x67'+'\x6e']=_0x4299a4[_0x16e94d(0x19f)][_0x16e94d(0x281)+_0x16e94d(0x18e)+'\x69\x6e'];continue;case'\x37':this[_0x16e94d(0x17e)]=_0x4299a4[_0x16e94d(0x19f)][_0x16e94d(0x17e)];continue;case'\x38':this['\x73\x63\x6f\x72\x65']=_0x4299a4[_0x16e94d(0x19f)]['\x73\x63\x6f\x72\x65'+_0x16e94d(0x228)+'\x65'];continue;case'\x39':this[_0x16e94d(0x1c3)]=!![];continue;}break;}}else _0x8716db[_0x16e94d(0x220)+_0x16e94d(0x105)+'\x66\x79']('\u767b\u5f55\u5931\u8d25\uff1a'+_0x4299a4['\x6d\x73\x67']);}}catch(_0x304632){console[_0x16e94d(0x280)](_0x304632);}finally{return Promise[_0x16e94d(0x159)+'\x76\x65'](_0x38b266);}}async[_0x52877(0x136)+_0x52877(0x233)](){const _0x331e42=_0x52877,_0x3f17d8={};_0x3f17d8[_0x331e42(0x1d5)]='\x67\x65\x74\x53\x63'+_0x331e42(0x233),_0x3f17d8[_0x331e42(0x297)]='\x67\x65\x74',_0x3f17d8[_0x331e42(0x1fe)]=function(_0x5f08a5,_0x496199){return _0x5f08a5===_0x496199;},_0x3f17d8[_0x331e42(0x139)]=_0x331e42(0x1f2)+'\x74',_0x3f17d8[_0x331e42(0x184)]=function(_0x44bdc1,_0x205af2){return _0x44bdc1==_0x205af2;};const _0x414901=_0x3f17d8;let _0x12fb1e={};try{const _0x58462f={};_0x58462f['\x66\x6e']=_0x414901[_0x331e42(0x1d5)],_0x58462f['\x6d\x65\x74\x68\x6f'+'\x64']=_0x414901[_0x331e42(0x297)],_0x58462f[_0x331e42(0x10f)]=_0x331e42(0x150)+'\x3a\x2f\x2f\x62\x6d'+_0x331e42(0x186)+_0x331e42(0x249)+_0x331e42(0x13a)+_0x331e42(0x1ee)+_0x331e42(0x238)+_0x331e42(0x272)+_0x331e42(0x18b)+_0x331e42(0x28f)+_0x331e42(0x17c)+_0x331e42(0x10d);let _0x43a101=_0x58462f;_0x12fb1e=Object[_0x331e42(0x1f6)+'\x6e']({},await this[_0x331e42(0x145)+'\x70\x69'](_0x43a101));if(_0x414901['\x6c\x68\x68\x62\x72'](typeof _0x12fb1e?.[_0x331e42(0x264)+'\x74'],_0x414901[_0x331e42(0x139)])){let _0x332edd=_0x12fb1e[_0x331e42(0x264)+'\x74'];_0x414901[_0x331e42(0x184)](_0x332edd['\x63\x6f\x64\x65'],0x1*0x299+-0x184a*0x1+0x15b1)?(this['\x73\x63\x6f\x72\x65']=_0x332edd[_0x331e42(0x19f)][_0x331e42(0x140)+_0x331e42(0x228)+'\x65'],_0x8716db[_0x331e42(0x220)+_0x331e42(0x105)+'\x66\x79'](_0x331e42(0x261)+this['\x73\x63\x6f\x72\x65'])):console[_0x331e42(0x280)](_0x331e42(0x142)+'\u8d25\uff1a'+_0x332edd[_0x331e42(0x237)]);}}catch(_0x163403){console['\x6c\x6f\x67'](_0x163403);}finally{return Promise[_0x331e42(0x159)+'\x76\x65'](_0x12fb1e);}}async[_0x52877(0x1c8)+_0x52877(0x28e)+'\x74'](){const _0x134587=_0x52877,_0x5d144b={};_0x5d144b[_0x134587(0x15b)]=_0x134587(0x1d4),_0x5d144b['\x70\x6b\x48\x4d\x75']=function(_0x5ec58a,_0x1cb450){return _0x5ec58a===_0x1cb450;},_0x5d144b[_0x134587(0x207)]=function(_0x3a253a,_0x5972b3){return _0x3a253a==_0x5972b3;},_0x5d144b[_0x134587(0x263)]=function(_0x380688,_0x1d29a5){return _0x380688>=_0x1d29a5;};const _0x33018e=_0x5d144b;let _0x3f6116={};try{const _0x118716={};_0x118716['\x66\x6e']=_0x134587(0x1c8)+_0x134587(0x28e)+'\x74',_0x118716['\x6d\x65\x74\x68\x6f'+'\x64']=_0x33018e[_0x134587(0x15b)],_0x118716['\x75\x72\x6c']=_0x134587(0x150)+'\x3a\x2f\x2f\x62\x6d'+'\x32\x2d\x61\x70\x69'+_0x134587(0x249)+_0x134587(0x13a)+_0x134587(0x1ee)+_0x134587(0x238)+'\x76\x31\x2f\x61\x70'+_0x134587(0x20e)+_0x134587(0x270)+_0x134587(0x286)+_0x134587(0x113);let _0xe5198f=_0x118716;_0x3f6116=Object[_0x134587(0x1f6)+'\x6e']({},await this['\x74\x61\x73\x6b\x41'+'\x70\x69'](_0xe5198f));if(_0x33018e['\x70\x6b\x48\x4d\x75'](typeof _0x3f6116?.['\x72\x65\x73\x75\x6c'+'\x74'],_0x134587(0x1f2)+'\x74')){let _0x56041=_0x3f6116[_0x134587(0x264)+'\x74'];if(_0x33018e['\x6d\x6b\x47\x50\x72'](_0x56041[_0x134587(0x1a2)],0x932+0x1934+0x22*-0x103)){let _0x2fbcf1=_0x56041[_0x134587(0x19f)][_0x134587(0x27c)][_0x134587(0x11c)+'\x72'](_0x5ae0ff=>_0x5ae0ff[_0x134587(0x14b)]==_0x56041[_0x134587(0x19f)]['\x68\x69\x64']),_0x4a8869=_0x2fbcf1[-0x3a1*0x2+-0x16*0x67+0x101c][_0x134587(0x140)];_0x33018e[_0x134587(0x263)](_0x4a8869,_0x5403e8)?(console[_0x134587(0x280)]('\u83b7\u53d6\u5230\u7b7e\u5230'+'\u79ef\u5206'+_0x4a8869+(_0x134587(0x195)+'\u8db3\u95e8\u69db\uff0c\u8fdb'+_0x134587(0x13d))),await this['\x72\x65\x77\x61\x72'+_0x134587(0x1d1)+_0x134587(0x1b2)](_0x56041[_0x134587(0x19f)]),this['\x69\x73\x53\x69\x67'+'\x6e']=!![]):console[_0x134587(0x280)]('\u83b7\u53d6\u5230\u7b7e\u5230'+'\u79ef\u5206'+_0x4a8869+(_0x134587(0x1fc)+'\u4e8e\u95e8\u69db\uff0c\u4e0d'+'\u8fdb\u884c\u7b7e\u5230'));}else console[_0x134587(0x280)](_0x134587(0x28c)+_0x134587(0x1f3)+'\uff1a'+_0x56041[_0x134587(0x237)]);}}catch(_0x64bff7){console[_0x134587(0x280)](_0x64bff7);}finally{return Promise[_0x134587(0x159)+'\x76\x65'](_0x3f6116);}}async[_0x52877(0x1c8)+_0x52877(0x1d1)+_0x52877(0x1b2)](_0x589132){const _0x14e786=_0x52877,_0x442e16={};_0x442e16[_0x14e786(0x1a1)]=_0x14e786(0x1c8)+_0x14e786(0x1d1)+'\x6f\x72\x74',_0x442e16['\x57\x43\x72\x47\x76']=_0x14e786(0x1f2)+'\x74',_0x442e16['\x4f\x47\x70\x4d\x68']=function(_0x555df6,_0x1b7b2c){return _0x555df6==_0x1b7b2c;};const _0x44bf0e=_0x442e16;let _0x46c394={};try{const _0x34c67b={};_0x34c67b[_0x14e786(0x14b)]=_0x589132[_0x14e786(0x14b)],_0x34c67b[_0x14e786(0x1bc)]=_0x589132[_0x14e786(0x1c8)+_0x14e786(0x1c4)],_0x34c67b[_0x14e786(0x224)+_0x14e786(0x296)+'\x64']='';const _0x492fab={};_0x492fab['\x66\x6e']=_0x44bf0e[_0x14e786(0x1a1)],_0x492fab['\x6d\x65\x74\x68\x6f'+'\x64']=_0x14e786(0x10e),_0x492fab['\x75\x72\x6c']=_0x14e786(0x150)+_0x14e786(0x1dd)+'\x32\x2d\x61\x70\x69'+_0x14e786(0x249)+_0x14e786(0x13a)+'\x72\x73\x2e\x63\x6f'+_0x14e786(0x238)+_0x14e786(0x272)+_0x14e786(0x20e)+'\x72\x2f\x72\x65\x77'+_0x14e786(0x141)+_0x14e786(0x125),_0x492fab[_0x14e786(0x12d)]=_0x34c67b;let _0x4c6530=_0x492fab;_0x46c394=Object[_0x14e786(0x1f6)+'\x6e']({},await this[_0x14e786(0x145)+'\x70\x69'](_0x4c6530));if(typeof _0x46c394?.[_0x14e786(0x264)+'\x74']===_0x44bf0e[_0x14e786(0x12f)]){let _0x435e80=_0x46c394['\x72\x65\x73\x75\x6c'+'\x74'];_0x44bf0e[_0x14e786(0x21f)](_0x435e80[_0x14e786(0x1a2)],0x1c9*0x5+-0x139+-0x7b4)?console[_0x14e786(0x280)](_0x14e786(0x1d2)):console[_0x14e786(0x280)]('\u7b7e\u5230\u5931\u8d25\uff1a'+_0x435e80['\x6d\x73\x67']);}}catch(_0x149902){console['\x6c\x6f\x67'](_0x149902);}finally{return Promise[_0x14e786(0x159)+'\x76\x65'](_0x46c394);}}async[_0x52877(0x1dc)+'\x69\x73\x74'](){const _0x706b9c=_0x52877,_0x5a8ea9={};_0x5a8ea9[_0x706b9c(0x119)]=_0x706b9c(0x1d4),_0x5a8ea9[_0x706b9c(0x1a3)]=function(_0x509b17,_0x51e4b1){return _0x509b17===_0x51e4b1;},_0x5a8ea9[_0x706b9c(0x28a)]='\x6f\x62\x6a\x65\x63'+'\x74';const _0x41bef6=_0x5a8ea9;let _0x17e315={};try{const _0xa3d25c={};_0xa3d25c['\x66\x6e']='\x74\x61\x73\x6b\x4c'+_0x706b9c(0x113),_0xa3d25c[_0x706b9c(0x295)+'\x64']=_0x41bef6[_0x706b9c(0x119)],_0xa3d25c[_0x706b9c(0x10f)]=_0x706b9c(0x150)+_0x706b9c(0x1dd)+_0x706b9c(0x186)+_0x706b9c(0x249)+'\x6d\x65\x6d\x62\x65'+_0x706b9c(0x1ee)+_0x706b9c(0x238)+_0x706b9c(0x272)+_0x706b9c(0x20e)+_0x706b9c(0x143)+'\x6b\x2f\x6c\x69\x73'+'\x74';let _0x4b8eca=_0xa3d25c;_0x17e315=Object[_0x706b9c(0x1f6)+'\x6e']({},await this[_0x706b9c(0x145)+'\x70\x69'](_0x4b8eca));if(_0x41bef6[_0x706b9c(0x1a3)](typeof _0x17e315?.[_0x706b9c(0x264)+'\x74'],_0x41bef6[_0x706b9c(0x28a)])){let _0x537fef=_0x17e315[_0x706b9c(0x264)+'\x74'];_0x537fef[_0x706b9c(0x1a2)]==0x1*-0x13ba+0x17d1+-0x3*0x15d?(!_0x537fef[_0x706b9c(0x19f)][_0x706b9c(0x225)+'\x6e\x31\x32'][_0x706b9c(0x226)+'\x73']&&await this[_0x706b9c(0x1df)+_0x706b9c(0x233)](0x1*-0x12f5+0x3*0x7df+-0x49c),!_0x537fef[_0x706b9c(0x19f)][_0x706b9c(0x225)+_0x706b9c(0x1e9)]['\x73\x74\x61\x74\x75'+'\x73']&&await this[_0x706b9c(0x201)+_0x706b9c(0x1bb)]()):console[_0x706b9c(0x280)](_0x706b9c(0x273)+_0x706b9c(0x1e1)+_0x537fef[_0x706b9c(0x237)]);}}catch(_0x217171){console[_0x706b9c(0x280)](_0x217171);}finally{return Promise['\x72\x65\x73\x6f\x6c'+'\x76\x65'](_0x17e315);}}async[_0x52877(0x1df)+_0x52877(0x233)](_0x2e08b2){const _0x3c5e8c=_0x52877,_0x2ee153={'\x57\x53\x68\x64\x47':'\x61\x70\x70\x53\x63'+_0x3c5e8c(0x233),'\x76\x7a\x4a\x50\x50':'\x70\x6f\x73\x74','\x41\x65\x76\x46\x68':function(_0x43fad4,_0x559e0d){return _0x43fad4(_0x559e0d);},'\x44\x79\x56\x6a\x4b':function(_0x270254,_0x4b97e0){return _0x270254===_0x4b97e0;},'\x4a\x6a\x55\x46\x63':function(_0x4f13b4,_0xf8ad10){return _0x4f13b4==_0xf8ad10;}};let _0x56f9a9={};try{let _0x139670={'\x66\x6e':_0x2ee153[_0x3c5e8c(0x1f9)],'\x6d\x65\x74\x68\x6f\x64':_0x2ee153['\x76\x7a\x4a\x50\x50'],'\x75\x72\x6c':_0x3c5e8c(0x150)+_0x3c5e8c(0x1dd)+'\x32\x2d\x61\x70\x69'+_0x3c5e8c(0x249)+_0x3c5e8c(0x13a)+'\x72\x73\x2e\x63\x6f'+_0x3c5e8c(0x238)+_0x3c5e8c(0x272)+_0x3c5e8c(0x1cd)+'\x72\x65','\x62\x6f\x64\x79':{'\x61\x63\x74\x69\x6f\x6e':_0x2ee153[_0x3c5e8c(0x21d)](Number,_0x2e08b2)}};_0x56f9a9=Object[_0x3c5e8c(0x1f6)+'\x6e']({},await this[_0x3c5e8c(0x145)+'\x70\x69'](_0x139670));if(_0x2ee153['\x44\x79\x56\x6a\x4b'](typeof _0x56f9a9?.[_0x3c5e8c(0x264)+'\x74'],_0x3c5e8c(0x1f2)+'\x74')){let _0x2398d7=_0x56f9a9[_0x3c5e8c(0x264)+'\x74'];_0x2ee153[_0x3c5e8c(0x235)](_0x2398d7[_0x3c5e8c(0x1a2)],-0xa4*0x1c+-0x1a6a+0x2c5a)?_0x2398d7[_0x3c5e8c(0x19f)][_0x3c5e8c(0x1c5)+'\x6f\x70']?console[_0x3c5e8c(0x280)](_0x3c5e8c(0x1c9)+_0x2e08b2+(_0x3c5e8c(0x244)+'\u5f97')+_0x2398d7['\x64\x61\x74\x61'][_0x3c5e8c(0x140)]+'\u79ef\u5206'):console[_0x3c5e8c(0x280)](_0x3c5e8c(0x18c)+_0x2e08b2+_0x3c5e8c(0x290)):console['\x6c\x6f\x67'](_0x3c5e8c(0x1c9)+_0x2e08b2+_0x3c5e8c(0x1c6)+_0x2398d7[_0x3c5e8c(0x237)]);}}catch(_0x4aaf25){console[_0x3c5e8c(0x280)](_0x4aaf25);}finally{return Promise['\x72\x65\x73\x6f\x6c'+'\x76\x65'](_0x56f9a9);}}async[_0x52877(0x201)+_0x52877(0x1bb)](){const _0x1c8cb1=_0x52877,_0x4c3094={};_0x4c3094[_0x1c8cb1(0x1aa)]=_0x1c8cb1(0x201)+_0x1c8cb1(0x1bb),_0x4c3094[_0x1c8cb1(0x287)]=_0x1c8cb1(0x1d4),_0x4c3094[_0x1c8cb1(0x20b)]='\x79\x79\x79\x79\x4d'+_0x1c8cb1(0x24d),_0x4c3094[_0x1c8cb1(0x256)]=function(_0x5e238d,_0x44d803){return _0x5e238d===_0x44d803;},_0x4c3094[_0x1c8cb1(0x1ff)]='\x6f\x62\x6a\x65\x63'+'\x74',_0x4c3094[_0x1c8cb1(0x1e2)]=function(_0x21eb5b,_0x2a1342){return _0x21eb5b==_0x2a1342;},_0x4c3094[_0x1c8cb1(0x1d9)]=function(_0x3f0732,_0xd6708a){return _0x3f0732==_0xd6708a;};const _0x3112d9=_0x4c3094;let _0x8f513e={};try{let _0x2a7cc6={'\x66\x6e':_0x3112d9['\x77\x63\x67\x41\x52'],'\x6d\x65\x74\x68\x6f\x64':_0x3112d9[_0x1c8cb1(0x287)],'\x75\x72\x6c':_0x1c8cb1(0x150)+_0x1c8cb1(0x1dd)+'\x32\x2d\x61\x70\x69'+'\x2e\x62\x6c\x75\x65'+_0x1c8cb1(0x13a)+_0x1c8cb1(0x1ee)+'\x6d\x2e\x63\x6e\x2f'+_0x1c8cb1(0x272)+'\x70\x2f\x73\x70\x65'+_0x1c8cb1(0x12e)+_0x1c8cb1(0x1ae)+'\x2f\x61\x73\x6b\x5f'+_0x1c8cb1(0x121),'\x71\x75\x65\x72\x79\x50\x61\x72\x61\x6d':{'\x64\x61\x74\x65':_0x8716db['\x74\x69\x6d\x65'](_0x3112d9[_0x1c8cb1(0x20b)])}};_0x8f513e=Object[_0x1c8cb1(0x1f6)+'\x6e']({},await this[_0x1c8cb1(0x145)+'\x70\x69'](_0x2a7cc6));if(_0x3112d9[_0x1c8cb1(0x256)](typeof _0x8f513e?.[_0x1c8cb1(0x264)+'\x74'],_0x3112d9[_0x1c8cb1(0x1ff)])){let _0x5469c5=_0x8f513e[_0x1c8cb1(0x264)+'\x74'];if(_0x3112d9[_0x1c8cb1(0x1e2)](_0x5469c5[_0x1c8cb1(0x1a2)],0x1763+-0x56*-0x7+-0x19bd)){if(_0x3112d9[_0x1c8cb1(0x1d9)](_0x5469c5[_0x1c8cb1(0x19f)][_0x1c8cb1(0x15d)],0x141f+-0x20ea+0xc*0x111)){console[_0x1c8cb1(0x280)]('\u5f00\u59cb\u7b54\u9898\uff1a'),console[_0x1c8cb1(0x280)](_0x5469c5[_0x1c8cb1(0x19f)][_0x1c8cb1(0x25d)+_0x1c8cb1(0x1d7)+'\x6e\x66\x6f'][_0x1c8cb1(0x1b8)+'\x6e\x74']);for(let _0x296803 of _0x5469c5['\x64\x61\x74\x61'][_0x1c8cb1(0x25d)+_0x1c8cb1(0x1d7)+_0x1c8cb1(0x1bb)]['\x6f\x70\x74\x69\x6f'+'\x6e']){console['\x6c\x6f\x67'](_0x296803['\x6f\x70\x74\x69\x6f'+'\x6e']+'\x3a\x20'+_0x296803[_0x1c8cb1(0x1ab)+'\x6e\x5f\x63\x6f\x6e'+_0x1c8cb1(0x1d8)]);}await this[_0x1c8cb1(0x130)+_0x1c8cb1(0x271)](_0x5469c5[_0x1c8cb1(0x19f)]['\x71\x75\x65\x73\x74'+'\x69\x6f\x6e\x5f\x69'+'\x6e\x66\x6f']);}else console[_0x1c8cb1(0x280)](_0x1c8cb1(0x248)+'\u7b54\u9898');}else console[_0x1c8cb1(0x280)](_0x1c8cb1(0x273)+_0x1c8cb1(0x1e1)+_0x5469c5[_0x1c8cb1(0x237)]);}}catch(_0x45d564){console[_0x1c8cb1(0x280)](_0x45d564);}finally{return Promise[_0x1c8cb1(0x159)+'\x76\x65'](_0x8f513e);}}async[_0x52877(0x130)+_0x52877(0x271)](_0x4ee39a){const _0x205b46=_0x52877,_0x363c26={};_0x363c26[_0x205b46(0xff)]=_0x205b46(0x130)+_0x205b46(0x271),_0x363c26['\x45\x62\x78\x65\x6c']=_0x205b46(0x10e),_0x363c26[_0x205b46(0x128)]=function(_0x189707,_0x147e36){return _0x189707===_0x147e36;},_0x363c26[_0x205b46(0x127)]='\x6f\x62\x6a\x65\x63'+'\x74';const _0x27ced4=_0x363c26;let _0x320116={};try{let _0x16af4f=_0x8716db[_0x205b46(0x291)+_0x205b46(0x10a)](_0x4ee39a[_0x205b46(0x1ab)+'\x6e']);console[_0x205b46(0x280)]('\u968f\u673a\u9009\u62e9\x5b'+_0x16af4f[_0x205b46(0x1ab)+'\x6e']+'\x5d');const _0x5c6056={};_0x5c6056[_0x205b46(0x27f)+'\x72']=_0x16af4f[_0x205b46(0x1ab)+'\x6e'],_0x5c6056[_0x205b46(0x25d)+'\x69\x6f\x6e\x73\x5f'+_0x205b46(0x14b)]=_0x4ee39a['\x71\x75\x65\x73\x74'+_0x205b46(0x1d3)+'\x68\x69\x64'];const _0x17ec0d={};_0x17ec0d['\x66\x6e']=_0x27ced4['\x7a\x4d\x41\x53\x72'],_0x17ec0d[_0x205b46(0x295)+'\x64']=_0x27ced4[_0x205b46(0x216)],_0x17ec0d[_0x205b46(0x10f)]='\x68\x74\x74\x70\x73'+_0x205b46(0x1dd)+_0x205b46(0x186)+_0x205b46(0x249)+_0x205b46(0x13a)+_0x205b46(0x1ee)+_0x205b46(0x238)+_0x205b46(0x272)+'\x70\x2f\x73\x70\x65'+_0x205b46(0x12e)+_0x205b46(0x1ae)+_0x205b46(0x25c)+_0x205b46(0x27f)+'\x72',_0x17ec0d[_0x205b46(0x12d)]=_0x5c6056;let _0x237782=_0x17ec0d;_0x320116=Object[_0x205b46(0x1f6)+'\x6e']({},await this['\x74\x61\x73\x6b\x41'+'\x70\x69'](_0x237782));if(_0x27ced4[_0x205b46(0x128)](typeof _0x320116?.[_0x205b46(0x264)+'\x74'],_0x27ced4['\x57\x77\x71\x76\x4f'])){let _0x30d161=_0x320116[_0x205b46(0x264)+'\x74'];_0x30d161[_0x205b46(0x1a2)]==-0x5f*0xb+0x1*0x806+-0x1*0x3f1?_0x30d161[_0x205b46(0x19f)][_0x205b46(0x15d)]==0x6bb+-0x174f+0x1096?console[_0x205b46(0x280)](_0x205b46(0x183)+'\u83b7\u5f97'+_0x30d161[_0x205b46(0x19f)][_0x205b46(0x27f)+'\x72\x5f\x73\x63\x6f'+'\x72\x65']+'\u79ef\u5206'):console['\x6c\x6f\x67'](_0x205b46(0x242)):console['\x6c\x6f\x67'](_0x205b46(0x1e8)+_0x30d161[_0x205b46(0x237)]);}}catch(_0x26cc04){console['\x6c\x6f\x67'](_0x26cc04);}finally{return Promise[_0x205b46(0x159)+'\x76\x65'](_0x320116);}}async[_0x52877(0x22b)+'\x61\x73\x6b'](){const _0x4d16d0=_0x52877,_0x3b62f5={};_0x3b62f5[_0x4d16d0(0x1b5)]=function(_0x279f57,_0x1bf20c){return _0x279f57<_0x1bf20c;};const _0xa67084=_0x3b62f5;let _0x4937de={};try{_0x8716db[_0x4d16d0(0x220)+_0x4d16d0(0x105)+'\x66\x79']('\x0a\x3d\x3d\x3d\x3d'+_0x4d16d0(0x1ed)+_0x4d16d0(0x1eb)+_0x4d16d0(0x13c)+this[_0x4d16d0(0x100)]+(_0x4d16d0(0x153)+'\x3d\x3d\x3d\x3d\x3d'+_0x4d16d0(0x1ed))),await this[_0x4d16d0(0x109)+_0x4d16d0(0x104)+'\x6f']();if(!this[_0x4d16d0(0x1c3)])return;for(let _0x50258e=0x1639*-0x1+0xb96*-0x1+-0x1*-0x21cf;_0xa67084[_0x4d16d0(0x1b5)](_0x50258e,0xbf8*0x3+-0x41d+-0x1*0x1f99)&&!this[_0x4d16d0(0x1f1)+'\x6e'];_0x50258e++){await this[_0x4d16d0(0x1c8)+'\x64\x5f\x6c\x69\x73'+'\x74']();}await this[_0x4d16d0(0x1dc)+_0x4d16d0(0x113)](),await this['\x67\x65\x74\x53\x63'+_0x4d16d0(0x233)]();}catch(_0x5859d2){console[_0x4d16d0(0x280)](_0x5859d2);}finally{return Promise[_0x4d16d0(0x159)+'\x76\x65'](_0x4937de);}}}function _0x203e(_0x3eef5e,_0x42f429){const _0x228951=_0x5721();return _0x203e=function(_0xd7a3bd,_0x219d09){_0xd7a3bd=_0xd7a3bd-(-0x11*-0x1ca+-0x2*-0xf76+-0x89f*0x7);let _0x159a62=_0x228951[_0xd7a3bd];return _0x159a62;},_0x203e(_0x3eef5e,_0x42f429);}!(async()=>{const _0x18d697=_0x52877,_0x3e364e={'\x5a\x67\x61\x51\x46':function(_0x2a60cb,_0xd4b547){return _0x2a60cb!==_0xd4b547;},'\x61\x62\x61\x57\x56':_0x18d697(0x25e)+_0x18d697(0x110),'\x4d\x79\x65\x76\x68':function(_0x55aa6e){return _0x55aa6e();}};if(_0x3e364e[_0x18d697(0x257)](typeof $request,_0x3e364e[_0x18d697(0x16a)]))await _0x14afab();else{if(!await _0x3e364e['\x4d\x79\x65\x76\x68'](_0x2b9e78))return;if(!_0x3e364e['\x4d\x79\x65\x76\x68'](_0x5783c6))return;for(let _0x446442 of _0x2d9559){await _0x446442[_0x18d697(0x22b)+_0x18d697(0x277)]();}}})()['\x63\x61\x74\x63\x68'](_0x2a23c4=>console[_0x52877(0x280)](_0x2a23c4))[_0x52877(0x1f8)+'\x6c\x79'](()=>_0x8716db[_0x52877(0x17b)]());async function _0x14afab(){const _0x48e147=_0x52877;if($request['\x75\x72\x6c']['\x69\x6e\x63\x6c\x75'+_0x48e147(0x236)]('\x76\x31\x2f\x61\x70'+_0x48e147(0x222)+'\x74\x65\x2f\x6c\x6f'+_0x48e147(0x285)+_0x48e147(0x1db)+'\x65\x72'))try{let _0x13b4b6=$request[_0x48e147(0x157)+'\x72\x73'][_0x48e147(0x169)],_0x4dcfbd=_0x268653[-0xa65+0x489*-0x4+0x3*0x983];for(let _0x44475f of _0x268653){if(_0x219a02?.[_0x48e147(0x251)+_0x48e147(0x236)](_0x44475f)){_0x4dcfbd=_0x44475f;break;}}if(!_0x219a02?.['\x69\x6e\x63\x6c\x75'+_0x48e147(0x236)](_0x13b4b6)){let _0x1b71ef=_0x219a02?_0x219a02[_0x48e147(0x177)](_0x4dcfbd):[];_0x1b71ef['\x70\x75\x73\x68'](_0x13b4b6),_0x219a02=_0x1b71ef[_0x48e147(0x1e3)](_0x4dcfbd),_0x8716db[_0x48e147(0x19a)+'\x74\x61'](_0x219a02,_0x2fdc9f),_0x8716db[_0x48e147(0x237)](_0x48e147(0x12c)+_0x1b71ef[_0x48e147(0x1ac)+'\x68']+(_0x48e147(0x107)+'\u6210\u529f\uff0c\u4fdd\u5b58'+_0x48e147(0x17f))+_0x2fdc9f+'\x5d\x3a\x20'+_0x13b4b6);}}catch(_0x4cf3b5){}}function _0x5783c6(){const _0x5a8d38=_0x52877,_0x3c3bd3={};_0x3c3bd3['\x42\x79\x70\x6d\x5a']=function(_0x4c2142,_0x249747){return _0x4c2142>_0x249747;};const _0x99d53b=_0x3c3bd3;if(_0x219a02){let _0x3f061f=_0x268653[-0x1*-0x225d+0x43e+-0x1*0x269b];for(let _0x4cde89 of _0x268653){if(_0x99d53b[_0x5a8d38(0x252)](_0x219a02[_0x5a8d38(0x100)+'\x4f\x66'](_0x4cde89),-(0x1d*-0x2b+-0x213*0x2+0x906))){_0x3f061f=_0x4cde89;break;}}for(let _0x442d1d of _0x219a02[_0x5a8d38(0x177)](_0x3f061f)){if(_0x442d1d)_0x2d9559[_0x5a8d38(0x146)](new _0x4c27a8(_0x442d1d));}_0x1b86b6=_0x2d9559[_0x5a8d38(0x1ac)+'\x68'];}else return console[_0x5a8d38(0x280)](_0x5a8d38(0x1e4)+'\x3a\x20'+_0x2fdc9f),![];return console['\x6c\x6f\x67'](_0x5a8d38(0x217)+_0x1b86b6+_0x5a8d38(0x1e7)),!![];}async function _0x2b9e78(_0x52f9ac=-0x1*-0x11a7+0x1b8e+-0x2d35){const _0x1f509f=_0x52877,_0x3aca90={'\x6a\x75\x52\x50\x65':function(_0x494599,_0x248f5b,_0x2e37f7){return _0x494599(_0x248f5b,_0x2e37f7);},'\x56\x53\x6f\x6b\x78':_0x1f509f(0x1d4),'\x45\x75\x71\x64\x66':function(_0x4261ef,_0x360255){return _0x4261ef<_0x360255;},'\x44\x42\x61\x74\x72':function(_0x3dc28b,_0x461b05){return _0x3dc28b+_0x461b05;},'\x73\x45\x66\x5a\x6a':function(_0x166b8b,_0x4975e8){return _0x166b8b(_0x4975e8);},'\x46\x43\x59\x43\x4a':function(_0x46dc13,_0x246e10){return _0x46dc13>_0x246e10;},'\x64\x61\x46\x68\x54':function(_0x1bcaa9,_0x5e671f){return _0x1bcaa9==_0x5e671f;},'\x6e\x71\x51\x55\x6c':function(_0xbccfed,_0x33a960){return _0xbccfed>=_0x33a960;}};let _0x454209=![];try{const _0x2fca12={};_0x2fca12[_0x1f509f(0x10f)]=_0x6567ed,_0x2fca12[_0x1f509f(0x135)+'\x75\x74']=0x1388;let _0x20d7ff=_0x2fca12,_0x239829=null,_0x457fa9=await _0x3aca90[_0x1f509f(0x1de)](_0x521f1c,_0x3aca90[_0x1f509f(0x18a)],_0x20d7ff);if(_0x457fa9[_0x1f509f(0x18f)])console['\x6c\x6f\x67'](_0x1f509f(0x138)+'\x5b'+_0x457fa9?.['\x72\x65\x73\x70']?.[_0x1f509f(0x226)+_0x1f509f(0x250)]+(_0x1f509f(0x167)+'\x2e\x2e'));else try{_0x239829=JSON[_0x1f509f(0x151)](_0x457fa9['\x72\x65\x73\x70']['\x62\x6f\x64\x79']),_0x239829?.[_0x1f509f(0x1a2)]==0x6e*-0x19+0xb8*-0x2+0x1*0xc2e&&(_0x239829=JSON['\x70\x61\x72\x73\x65'](_0x239829[_0x1f509f(0x19f)]['\x66\x69\x6c\x65']['\x64\x61\x74\x61']));}catch(_0x5d759c){}if(!_0x239829){if(_0x3aca90[_0x1f509f(0x14f)](_0x52f9ac,_0x32da0f)){let _0x22b7e=_0x3aca90[_0x1f509f(0x106)](Math['\x66\x6c\x6f\x6f\x72'](Math[_0x1f509f(0x291)+'\x6d']()*_0x491d53),_0x1a4387);_0x454209=await _0x3aca90['\x73\x45\x66\x5a\x6a'](_0x2b9e78,++_0x52f9ac);}}else{_0x239829?.[_0x1f509f(0x155)+_0x1f509f(0x20c)+'\x66\x79']&&_0x239829[_0x1f509f(0x155)+'\x6e\x4e\x6f\x74\x69'+'\x66\x79'][_0x1f509f(0x1ac)+'\x68']>0x12a8*0x2+0x47*-0x67+-0x8bf*0x1&&_0x8716db[_0x1f509f(0x220)+_0x1f509f(0x105)+'\x66\x79'](_0x239829[_0x1f509f(0x155)+_0x1f509f(0x20c)+'\x66\x79']['\x6a\x6f\x69\x6e']('\x0a')+'\x0a');_0x239829?.['\x63\x6f\x6d\x6d\x6f'+'\x6e\x4d\x73\x67']&&_0x3aca90[_0x1f509f(0x123)](_0x239829[_0x1f509f(0x155)+_0x1f509f(0x193)]['\x6c\x65\x6e\x67\x74'+'\x68'],0x1*-0x21e7+-0x17b*0x5+0x294e)&&console[_0x1f509f(0x280)](_0x239829[_0x1f509f(0x155)+'\x6e\x4d\x73\x67'][_0x1f509f(0x1e3)]('\x0a')+'\x0a');if(_0x239829[_0x194108]){let _0x1d6833=_0x239829[_0x194108];_0x3aca90[_0x1f509f(0x1f0)](_0x1d6833[_0x1f509f(0x226)+'\x73'],0x1*0x9c2+-0x1*0x102b+-0x1*-0x669)?_0x3aca90['\x6e\x71\x51\x55\x6c'](_0x49a9ae,_0x1d6833['\x76\x65\x72\x73\x69'+'\x6f\x6e'])?(_0x454209=!![],console[_0x1f509f(0x280)](_0x1d6833[_0x1f509f(0x237)][_0x1d6833[_0x1f509f(0x226)+'\x73']]),console['\x6c\x6f\x67'](_0x1d6833['\x75\x70\x64\x61\x74'+_0x1f509f(0x149)]),console[_0x1f509f(0x280)]('\u73b0\u5728\u8fd0\u884c\u7684'+'\u811a\u672c\u7248\u672c\u662f'+'\uff1a'+_0x49a9ae+(_0x1f509f(0x289)+_0x1f509f(0xfe))+_0x1d6833[_0x1f509f(0x168)+'\x74\x56\x65\x72\x73'+_0x1f509f(0x16d)])):console[_0x1f509f(0x280)](_0x1d6833['\x76\x65\x72\x73\x69'+'\x6f\x6e\x4d\x73\x67']):console[_0x1f509f(0x280)](_0x1d6833['\x6d\x73\x67'][_0x1d6833[_0x1f509f(0x226)+'\x73']]);}else console['\x6c\x6f\x67'](_0x239829[_0x1f509f(0x206)+'\x4d\x73\x67']);}}catch(_0x3f1377){console[_0x1f509f(0x280)](_0x3f1377);}finally{return Promise[_0x1f509f(0x159)+'\x76\x65'](_0x454209);}}async function _0x521f1c(_0x263b8f,_0x513b4c){const _0x56472a={'\x4a\x54\x4e\x67\x44':function(_0x57a3f2,_0xcec4d8){return _0x57a3f2(_0xcec4d8);}};return new Promise(_0x40a2b3=>{const _0x4ec2df=_0x203e,_0x18b577={'\x57\x4c\x6b\x72\x49':function(_0x5ae73d,_0x2703ee){return _0x56472a['\x4a\x54\x4e\x67\x44'](_0x5ae73d,_0x2703ee);}};_0x8716db[_0x4ec2df(0x1bf)](_0x263b8f,_0x513b4c,async(_0x6e577d,_0x129293,_0xf085c6)=>{const _0x3ffa15=_0x4ec2df,_0x348782={};_0x348782['\x65\x72\x72']=_0x6e577d,_0x348782['\x72\x65\x71']=_0x129293,_0x348782[_0x3ffa15(0x294)]=_0xf085c6,_0x18b577[_0x3ffa15(0x1a0)](_0x40a2b3,_0x348782);});});}function _0x4cda8f(_0x1e4724,_0xff6f77){const _0x4b3094=_0x52877,_0x4dc461={'\x76\x77\x6a\x55\x79':function(_0x5ba7d6,_0x120e1d){return _0x5ba7d6!=_0x120e1d;},'\x70\x54\x54\x4b\x58':_0x4b3094(0x25e)+_0x4b3094(0x110),'\x46\x6b\x4d\x45\x50':function(_0x1ee5dd,_0x5d5eb9){return _0x1ee5dd!=_0x5d5eb9;},'\x51\x66\x55\x54\x46':function(_0x42ad93,_0x1bc227){return _0x42ad93==_0x1bc227;},'\x43\x53\x4d\x6b\x64':function(_0x72cb5d,_0x441d86){return _0x72cb5d!=_0x441d86;},'\x49\x54\x64\x42\x4d':function(_0x3d9420,_0x406a32){return _0x3d9420===_0x406a32;},'\x78\x65\x6d\x56\x59':_0x4b3094(0x17a),'\x78\x41\x6d\x79\x44':function(_0x36b4ea,_0x2e09c5){return _0x36b4ea||_0x2e09c5;},'\x69\x59\x50\x63\x6a':function(_0xfb86b1,_0x5e6c9e,_0xb173fd,_0x4fb1b1){return _0xfb86b1(_0x5e6c9e,_0xb173fd,_0x4fb1b1);},'\x6e\x79\x55\x70\x6b':function(_0xad0294,_0x3ad648,_0x547c27,_0x27f7d1){return _0xad0294(_0x3ad648,_0x547c27,_0x27f7d1);},'\x67\x44\x4f\x4c\x4f':_0x4b3094(0x1d4),'\x51\x41\x54\x76\x71':function(_0x11e3a0,_0x192e33){return _0x11e3a0!=_0x192e33;},'\x4b\x66\x55\x65\x76':function(_0x422139,_0x4d58a5){return _0x422139!=_0x4d58a5;},'\x4b\x74\x6d\x48\x47':'\x70\x75\x74','\x68\x6f\x49\x6a\x47':_0x4b3094(0x188)+'\x65','\x61\x4e\x58\x6d\x52':_0x4b3094(0x182)+_0x4b3094(0x243)+'\x70\x65','\x52\x68\x61\x46\x6d':_0x4b3094(0x182)+_0x4b3094(0x1a7)+_0x4b3094(0x27b),'\x53\x65\x6c\x4a\x4e':_0x4b3094(0x219)+_0x4b3094(0x260)+_0x4b3094(0x156)+_0x4b3094(0x239)+'\x72\x6d\x2d\x75\x72'+_0x4b3094(0x189)+'\x64\x65\x64','\x79\x78\x44\x65\x6d':function(_0x1969a5,_0x52d9a9){return _0x1969a5==_0x52d9a9;},'\x66\x49\x55\x55\x6f':_0x4b3094(0x218),'\x55\x55\x52\x65\x62':function(_0x3655e7,_0x20bbb0){return _0x3655e7+_0x20bbb0;},'\x4f\x57\x79\x49\x70':function(_0x5248c6,_0x142d0d){return _0x5248c6/_0x142d0d;},'\x52\x63\x7a\x5a\x6c':function(_0x3ebf62,_0x12f457){return _0x3ebf62==_0x12f457;},'\x54\x57\x77\x64\x64':'\x20\u8fd0\u884c\u901a\u77e5'+'\x0a\x0a','\x73\x72\x79\x47\x42':_0x4b3094(0x202)+_0x4b3094(0x105)+'\x66\x79','\x48\x4a\x4b\x62\x71':_0x4b3094(0x26a)+_0x4b3094(0x1ed)+_0x4b3094(0x1ed)+'\x20\u63a8\u9001\x20\x3d'+_0x4b3094(0x1ed)+'\x3d\x3d\x3d\x3d\x3d'+_0x4b3094(0x16c),'\x56\x59\x79\x59\x58':function(_0xdc4684,_0x42914b){return _0xdc4684+_0x42914b;},'\x75\x6c\x4e\x4a\x41':function(_0x290673,_0x32a217){return _0x290673+_0x32a217;},'\x56\x47\x48\x64\x4c':_0x4b3094(0x10c)+_0x4b3094(0x1cb),'\x63\x72\x6b\x48\x79':_0x4b3094(0x1cc)+'\x67','\x48\x6e\x4f\x41\x55':_0x4b3094(0x1f2)+'\x74','\x4d\x64\x69\x59\x57':'\x6f\x70\x65\x6e\x2d'+_0x4b3094(0x10f),'\x71\x71\x46\x53\x45':_0x4b3094(0x279)+_0x4b3094(0x26c),'\x49\x66\x74\x7a\x66':function(_0x2948fa,_0x104660,_0x5b3293,_0x5b57da,_0x7cd2ae){return _0x2948fa(_0x104660,_0x5b3293,_0x5b57da,_0x7cd2ae);},'\x4a\x55\x72\x56\x6e':function(_0x47b492,_0x3b43fe){return _0x47b492(_0x3b43fe);},'\x6c\x67\x4d\x4d\x59':_0x4b3094(0x1ed)+_0x4b3094(0x1ed)+'\x3d\x3d\x3d\x3d\x20'+_0x4b3094(0x14c)+_0x4b3094(0x1ed)+_0x4b3094(0x1ed)+_0x4b3094(0x23d),'\x57\x44\x75\x7a\x57':function(_0x292755,_0x3a46f1){return _0x292755(_0x3a46f1);},'\x50\x66\x53\x4a\x57':function(_0xc27063,_0x1fb474){return _0xc27063>_0x1fb474;},'\x66\x5a\x5a\x64\x6f':function(_0x2e1399,_0x56d457){return _0x2e1399-_0x56d457;},'\x44\x79\x72\x70\x4f':function(_0x24e7e9,_0x5e5bb9){return _0x24e7e9<_0x5e5bb9;},'\x4b\x77\x46\x50\x46':function(_0x2b82c8,_0x3d73dc){return _0x2b82c8&&_0x3d73dc;},'\x48\x55\x55\x47\x77':function(_0x56646c,_0x2b85b6){return _0x56646c+_0x2b85b6;},'\x42\x68\x68\x57\x54':function(_0xa803db,_0x358ca9){return _0xa803db(_0x358ca9);},'\x6e\x7a\x4e\x4c\x72':function(_0x3b60b7,_0x6751ad){return _0x3b60b7<_0x6751ad;},'\x6b\x62\x42\x77\x70':function(_0x2d1e2a,_0x22342f){return _0x2d1e2a*_0x22342f;},'\x75\x6e\x6c\x53\x69':function(_0x237923,_0x931402){return _0x237923/_0x931402;},'\x79\x51\x65\x4d\x4c':function(_0x5e762d,_0x109be6){return _0x5e762d-_0x109be6;},'\x4a\x4c\x4d\x6e\x4c':_0x4b3094(0x269)+'\x42'};return _0x4dc461[_0x4b3094(0x282)](_0x4dc461['\x70\x54\x54\x4b\x58'],typeof process)&&JSON[_0x4b3094(0x1cc)+_0x4b3094(0x137)](process[_0x4b3094(0x14a)])[_0x4b3094(0x100)+'\x4f\x66'](_0x4dc461[_0x4b3094(0x1fd)])>-(-0x1f69+0x318*0xa+0x7a)&&process[_0x4b3094(0x194)](0x3*-0x4f2+0x21d3+-0x12fd),new class{constructor(_0x4178f5,_0x2ac14c){const _0x45198f=_0x4b3094,_0x3b28de=('\x31\x7c\x33\x7c\x30'+'\x7c\x32\x7c\x34')[_0x45198f(0x177)]('\x7c');let _0x4385c4=0x43*-0x7b+0x1fda+0x57;while(!![]){switch(_0x3b28de[_0x4385c4++]){case'\x30':this[_0x45198f(0x1af)+'\x54\x69\x6d\x65']=new Date()[_0x45198f(0x174)+'\x6d\x65']();continue;case'\x31':this[_0x45198f(0x204)]=_0x4178f5;continue;case'\x32':Object[_0x45198f(0x1f6)+'\x6e'](this,_0x2ac14c);continue;case'\x33':this[_0x45198f(0x1f7)+_0x45198f(0x212)]='';continue;case'\x34':console['\x6c\x6f\x67'](this[_0x45198f(0x204)]+(_0x45198f(0x1b0)+'\uff1a\x0a'));continue;}break;}}[_0x4b3094(0x203)+'\x65'](){const _0x53ca5a=_0x4b3094;return _0x4dc461['\x76\x77\x6a\x55\x79'](_0x4dc461[_0x53ca5a(0x1fa)],typeof module)&&!!module[_0x53ca5a(0x28d)+'\x74\x73'];}[_0x4b3094(0x23e)+'\x6e\x58'](){const _0x1e2ffb=_0x4b3094;return _0x4dc461[_0x1e2ffb(0x1fa)]!=typeof $task;}[_0x4b3094(0x1fb)+'\x67\x65'](){const _0x5294e3=_0x4b3094;return _0x4dc461[_0x5294e3(0x282)](_0x4dc461[_0x5294e3(0x1fa)],typeof $httpClient)&&_0x4dc461[_0x5294e3(0x26b)](_0x4dc461['\x70\x54\x54\x4b\x58'],typeof $loon);}[_0x4b3094(0x293)+'\x6e'](){const _0x431edf=_0x4b3094;return _0x4dc461[_0x431edf(0x259)](_0x4dc461[_0x431edf(0x1fa)],typeof $loon);}[_0x4b3094(0x163)+'\x74\x61'](_0x4fefce){const _0x8cdf54=_0x4b3094;let _0x3782e9=this[_0x8cdf54(0x16e)+'\x6c'](_0x4fefce);if(/^@/['\x74\x65\x73\x74'](_0x4fefce)){const [,_0x34b308,_0x48c0c3]=/^@(.*?)\.(.*?)$/[_0x8cdf54(0x209)](_0x4fefce),_0x31bfd6=_0x34b308?this[_0x8cdf54(0x16e)+'\x6c'](_0x34b308):'';if(_0x31bfd6)try{const _0x479c6a=JSON[_0x8cdf54(0x151)](_0x31bfd6);_0x3782e9=_0x479c6a?this[_0x8cdf54(0x178)+_0x8cdf54(0x144)](_0x479c6a,_0x48c0c3,''):_0x3782e9;}catch(_0x4facad){_0x3782e9='';}}return _0x3782e9;}['\x73\x65\x74\x64\x61'+'\x74\x61'](_0x4beabf,_0x590b04){const _0x15e7d2=_0x4b3094;let _0x38fc86=!(0x1bb0+-0xba7*-0x1+-0x2756);if(/^@/[_0x15e7d2(0x21a)](_0x590b04)){const [,_0x20017f,_0x55f66f]=/^@(.*?)\.(.*?)$/[_0x15e7d2(0x209)](_0x590b04),_0x3e34f7=this[_0x15e7d2(0x16e)+'\x6c'](_0x20017f),_0x3a6458=_0x20017f?_0x4dc461['\x49\x54\x64\x42\x4d'](_0x4dc461['\x78\x65\x6d\x56\x59'],_0x3e34f7)?null:_0x4dc461[_0x15e7d2(0x18d)](_0x3e34f7,'\x7b\x7d'):'\x7b\x7d';try{const _0x2b471b=JSON[_0x15e7d2(0x151)](_0x3a6458);this[_0x15e7d2(0x178)+'\x68\x5f\x73\x65\x74'](_0x2b471b,_0x55f66f,_0x4beabf),_0x38fc86=this[_0x15e7d2(0x162)+'\x6c'](JSON[_0x15e7d2(0x1cc)+_0x15e7d2(0x137)](_0x2b471b),_0x20017f);}catch(_0x1494d0){const _0xd89f1b={};this[_0x15e7d2(0x178)+_0x15e7d2(0x24b)](_0xd89f1b,_0x55f66f,_0x4beabf),_0x38fc86=this[_0x15e7d2(0x162)+'\x6c'](JSON[_0x15e7d2(0x1cc)+_0x15e7d2(0x137)](_0xd89f1b),_0x20017f);}}else _0x38fc86=this[_0x15e7d2(0x162)+'\x6c'](_0x4beabf,_0x590b04);return _0x38fc86;}[_0x4b3094(0x16e)+'\x6c'](_0x54eb3e){const _0x35927e=_0x4b3094;return this['\x69\x73\x53\x75\x72'+'\x67\x65']()||this['\x69\x73\x4c\x6f\x6f'+'\x6e']()?$persistentStore['\x72\x65\x61\x64'](_0x54eb3e):this['\x69\x73\x51\x75\x61'+'\x6e\x58']()?$prefs[_0x35927e(0x165)+_0x35927e(0x1d6)+'\x79'](_0x54eb3e):this[_0x35927e(0x203)+'\x65']()?(this['\x64\x61\x74\x61']=this['\x6c\x6f\x61\x64\x64'+_0x35927e(0x253)](),this[_0x35927e(0x19f)][_0x54eb3e]):this[_0x35927e(0x19f)]&&this[_0x35927e(0x19f)][_0x54eb3e]||null;}[_0x4b3094(0x162)+'\x6c'](_0x491870,_0x2145f6){const _0x5e5d83=_0x4b3094;return this[_0x5e5d83(0x1fb)+'\x67\x65']()||this[_0x5e5d83(0x293)+'\x6e']()?$persistentStore[_0x5e5d83(0x298)](_0x491870,_0x2145f6):this[_0x5e5d83(0x23e)+'\x6e\x58']()?$prefs['\x73\x65\x74\x56\x61'+_0x5e5d83(0x11e)+'\x72\x4b\x65\x79'](_0x491870,_0x2145f6):this[_0x5e5d83(0x203)+'\x65']()?(this[_0x5e5d83(0x19f)]=this[_0x5e5d83(0x114)+_0x5e5d83(0x253)](),this['\x64\x61\x74\x61'][_0x2145f6]=_0x491870,this['\x77\x72\x69\x74\x65'+'\x64\x61\x74\x61'](),!(0x270d+-0x83*-0x2+-0x1*0x2813)):this[_0x5e5d83(0x19f)]&&this['\x64\x61\x74\x61'][_0x2145f6]||null;}['\x73\x65\x6e\x64'](_0x30ed81,_0x46cad7,_0x1cc856=()=>{}){const _0x42e629=_0x4b3094,_0x3b4cbd={'\x61\x78\x6a\x6d\x77':function(_0x13822c,_0x3bdc25,_0x30d948,_0x29ca02){const _0x20a22e=_0x203e;return _0x4dc461[_0x20a22e(0x11d)](_0x13822c,_0x3bdc25,_0x30d948,_0x29ca02);}};if(_0x4dc461[_0x42e629(0x282)](_0x30ed81,_0x4dc461[_0x42e629(0x148)])&&_0x4dc461[_0x42e629(0x154)](_0x30ed81,_0x42e629(0x10e))&&_0x4dc461[_0x42e629(0x118)](_0x30ed81,_0x4dc461[_0x42e629(0x278)])&&_0x4dc461[_0x42e629(0x259)](_0x30ed81,_0x4dc461[_0x42e629(0x276)])){console[_0x42e629(0x280)](_0x42e629(0x247)+_0x42e629(0x21e)+_0x30ed81);return;}if(_0x30ed81==_0x4dc461[_0x42e629(0x148)]&&_0x46cad7[_0x42e629(0x157)+'\x72\x73'])delete _0x46cad7['\x68\x65\x61\x64\x65'+'\x72\x73'][_0x4dc461[_0x42e629(0x197)]],delete _0x46cad7[_0x42e629(0x157)+'\x72\x73'][_0x4dc461[_0x42e629(0x1a4)]];else{if(_0x46cad7[_0x42e629(0x12d)]&&_0x46cad7[_0x42e629(0x157)+'\x72\x73']){if(!_0x46cad7['\x68\x65\x61\x64\x65'+'\x72\x73'][_0x4dc461['\x61\x4e\x58\x6d\x52']])_0x46cad7[_0x42e629(0x157)+'\x72\x73']['\x43\x6f\x6e\x74\x65'+_0x42e629(0x243)+'\x70\x65']=_0x4dc461['\x53\x65\x6c\x4a\x4e'];}}if(this['\x69\x73\x53\x75\x72'+'\x67\x65']()||this[_0x42e629(0x293)+'\x6e']()){if(this[_0x42e629(0x1fb)+'\x67\x65']()&&this[_0x42e629(0x1f4)+_0x42e629(0x11a)+'\x69\x74\x65']){_0x46cad7[_0x42e629(0x157)+'\x72\x73']=_0x46cad7[_0x42e629(0x157)+'\x72\x73']||{};const _0x26fc4f={};_0x26fc4f['\x58\x2d\x53\x75\x72'+_0x42e629(0x223)+_0x42e629(0x164)+_0x42e629(0x1b1)+'\x6e\x67']=!(0x1*-0x731+-0x15ae+-0xe0*-0x21),Object[_0x42e629(0x1f6)+'\x6e'](_0x46cad7['\x68\x65\x61\x64\x65'+'\x72\x73'],_0x26fc4f);}const _0x3a24fc={};_0x3a24fc['\x6d\x65\x74\x68\x6f'+'\x64']=_0x30ed81,_0x3a24fc[_0x42e629(0x10f)]=_0x46cad7[_0x42e629(0x10f)],_0x3a24fc[_0x42e629(0x157)+'\x72\x73']=_0x46cad7[_0x42e629(0x157)+'\x72\x73'],_0x3a24fc[_0x42e629(0x135)+'\x75\x74']=_0x46cad7[_0x42e629(0x135)+'\x75\x74'],_0x3a24fc[_0x42e629(0x19f)]=_0x46cad7[_0x42e629(0x12d)];let _0x5bc71d=_0x3a24fc;if(_0x4dc461[_0x42e629(0x191)](_0x30ed81,_0x42e629(0x1d4)))delete _0x5bc71d[_0x42e629(0x19f)];$axios(_0x5bc71d)[_0x42e629(0x175)](_0x5bd58f=>{const _0x574c5c=_0x42e629,{status:_0x170536,request:_0x1e7cb3,headers:_0x468f75,data:_0x580b03}=_0x5bd58f,_0x571f3c={};_0x571f3c[_0x574c5c(0x226)+_0x574c5c(0x250)]=_0x170536,_0x571f3c[_0x574c5c(0x157)+'\x72\x73']=_0x468f75,_0x571f3c[_0x574c5c(0x12d)]=_0x580b03,_0x4dc461[_0x574c5c(0x11d)](_0x1cc856,null,_0x1e7cb3,_0x571f3c);})[_0x42e629(0x255)](_0x4bda4a=>console[_0x42e629(0x280)](_0x4bda4a));}else{if(this[_0x42e629(0x23e)+'\x6e\x58']()){const _0x327740={};_0x327740['\x68\x69\x6e\x74\x73']=!(-0x1*-0xd2e+-0x1327*-0x1+-0x2054),(_0x46cad7[_0x42e629(0x295)+'\x64']=_0x30ed81[_0x42e629(0x10b)+_0x42e629(0x1c7)+'\x65'](),this[_0x42e629(0x1f4)+_0x42e629(0x11a)+'\x69\x74\x65']&&(_0x46cad7[_0x42e629(0x102)]=_0x46cad7['\x6f\x70\x74\x73']||{},Object[_0x42e629(0x1f6)+'\x6e'](_0x46cad7[_0x42e629(0x102)],_0x327740)),$task[_0x42e629(0x1be)](_0x46cad7)[_0x42e629(0x175)](_0x54076a=>{const _0x511b12=_0x42e629,{statusCode:_0x1a879b,request:_0x425de9,headers:_0x3d8419,body:_0x40f74b}=_0x54076a,_0x206c23={};_0x206c23['\x73\x74\x61\x74\x75'+_0x511b12(0x250)]=_0x1a879b,_0x206c23[_0x511b12(0x157)+'\x72\x73']=_0x3d8419,_0x206c23['\x62\x6f\x64\x79']=_0x40f74b,_0x4dc461['\x6e\x79\x55\x70\x6b'](_0x1cc856,null,_0x425de9,_0x206c23);},_0x3c58de=>_0x1cc856(_0x3c58de)));}else{if(this[_0x42e629(0x203)+'\x65']()){this[_0x42e629(0x218)]=this[_0x42e629(0x218)]?this[_0x42e629(0x218)]:require(_0x4dc461[_0x42e629(0x115)]);const {url:_0x5838e9,..._0x4db42f}=_0x46cad7,_0x527bb1={};_0x527bb1[_0x42e629(0x1ba)+_0x42e629(0x1da)+'\x72\x65\x63\x74']=![],this['\x69\x6e\x73\x74\x61'+_0x42e629(0x20d)]=this[_0x42e629(0x218)][_0x42e629(0x134)+'\x64'](_0x527bb1),this[_0x42e629(0x172)+_0x42e629(0x20d)][_0x30ed81](_0x5838e9,_0x4db42f)['\x74\x68\x65\x6e'](_0x5339a9=>{const _0x1506ae=_0x42e629,{statusCode:_0x3bc338,request:_0x576247,headers:_0x6e3fd4,body:_0x1a837a}=_0x5339a9,_0x420bc3={};_0x420bc3[_0x1506ae(0x226)+_0x1506ae(0x250)]=_0x3bc338,_0x420bc3[_0x1506ae(0x157)+'\x72\x73']=_0x6e3fd4,_0x420bc3['\x62\x6f\x64\x79']=_0x1a837a,_0x3b4cbd[_0x1506ae(0x176)](_0x1cc856,null,_0x576247,_0x420bc3);},_0x86d1ba=>{const {message:_0x53d502,request:_0x507dc9,response:_0x598f0c}=_0x86d1ba;_0x1cc856(_0x53d502,_0x507dc9,_0x598f0c);});}}}}[_0x4b3094(0x1ea)](_0x2ef619,_0x16db29=null){const _0x18bb10=_0x4b3094;let _0x2c3750=_0x16db29?new Date(_0x16db29):new Date(),_0x5cd64f={'\x4d\x2b':_0x4dc461[_0x18bb10(0x15e)](_0x2c3750[_0x18bb10(0x288)+_0x18bb10(0x1c2)](),-0x1*0x14fb+-0x7*0x275+0x262f),'\x64\x2b':_0x2c3750[_0x18bb10(0x265)+'\x74\x65'](),'\x68\x2b':_0x2c3750[_0x18bb10(0x246)+_0x18bb10(0x23b)](),'\x6d\x2b':_0x2c3750['\x67\x65\x74\x4d\x69'+'\x6e\x75\x74\x65\x73'](),'\x73\x2b':_0x2c3750[_0x18bb10(0x26d)+_0x18bb10(0x267)](),'\x71\x2b':Math[_0x18bb10(0x15c)](_0x4dc461['\x4f\x57\x79\x49\x70'](_0x4dc461['\x55\x55\x52\x65\x62'](_0x2c3750[_0x18bb10(0x288)+'\x6e\x74\x68'](),-0x3*0x755+-0x31*-0x1f+0x1013),-0x2*0x80d+0x4ea+0x3d*0x2f)),'\x53':_0x2c3750[_0x18bb10(0x26e)+_0x18bb10(0x14e)+_0x18bb10(0x267)]()};/(y+)/[_0x18bb10(0x21a)](_0x2ef619)&&(_0x2ef619=_0x2ef619[_0x18bb10(0x103)+'\x63\x65'](RegExp['\x24\x31'],_0x4dc461[_0x18bb10(0x15e)](_0x2c3750[_0x18bb10(0x1bd)+_0x18bb10(0x179)+'\x72'](),'')[_0x18bb10(0x258)+'\x72'](-0xc73+-0x4*0x8bd+0x2f6b-RegExp['\x24\x31'][_0x18bb10(0x1ac)+'\x68'])));for(let _0x4ccae2 in _0x5cd64f)new RegExp(_0x4dc461[_0x18bb10(0x15e)](_0x4dc461[_0x18bb10(0x15e)]('\x28',_0x4ccae2),'\x29'))[_0x18bb10(0x21a)](_0x2ef619)&&(_0x2ef619=_0x2ef619[_0x18bb10(0x103)+'\x63\x65'](RegExp['\x24\x31'],_0x4dc461[_0x18bb10(0x108)](-0x1*0x2441+0x1*-0x1ff1+0x403*0x11,RegExp['\x24\x31'][_0x18bb10(0x1ac)+'\x68'])?_0x5cd64f[_0x4ccae2]:('\x30\x30'+_0x5cd64f[_0x4ccae2])[_0x18bb10(0x258)+'\x72'](_0x4dc461[_0x18bb10(0x15e)]('',_0x5cd64f[_0x4ccae2])[_0x18bb10(0x1ac)+'\x68'])));return _0x2ef619;}async[_0x4b3094(0x187)+'\x73\x67'](){const _0x4571e4=_0x4b3094;if(!this[_0x4571e4(0x1f7)+'\x79\x53\x74\x72'])return;let _0x69a576=_0x4dc461[_0x4571e4(0x15e)](this['\x6e\x61\x6d\x65']+_0x4dc461['\x54\x57\x77\x64\x64'],this[_0x4571e4(0x1f7)+'\x79\x53\x74\x72']);if(_0x8716db['\x69\x73\x4e\x6f\x64'+'\x65']()){var _0x4ded0f=require(_0x4dc461[_0x4571e4(0x274)]);console[_0x4571e4(0x280)](_0x4dc461[_0x4571e4(0x23a)]),await _0x4ded0f[_0x4571e4(0x213)+_0x4571e4(0x23c)](this[_0x4571e4(0x204)],_0x69a576);}else this[_0x4571e4(0x237)](_0x69a576);}[_0x4b3094(0x220)+_0x4b3094(0x105)+'\x66\x79'](_0x5d20e5){const _0x589734=_0x4b3094;console['\x6c\x6f\x67'](_0x5d20e5),this['\x6e\x6f\x74\x69\x66'+_0x589734(0x212)]+=_0x5d20e5,this[_0x589734(0x1f7)+'\x79\x53\x74\x72']+='\x0a';}[_0x4b3094(0x220)+_0x4b3094(0x105)+'\x66\x79\x57\x69\x74'+_0x4b3094(0x292)](_0x13c259){const _0x4a4ff3=_0x4b3094;let _0x5d180a=_0x4dc461[_0x4a4ff3(0x284)](_0x4dc461[_0x4a4ff3(0x283)]('\x5b',this[_0x4a4ff3(0x1ea)](_0x4dc461['\x56\x47\x48\x64\x4c']))+'\x5d',_0x13c259);console['\x6c\x6f\x67'](_0x5d180a),this[_0x4a4ff3(0x1f7)+_0x4a4ff3(0x212)]+=_0x5d180a,this['\x6e\x6f\x74\x69\x66'+_0x4a4ff3(0x212)]+='\x0a';}[_0x4b3094(0x132)+_0x4b3094(0x25b)+'\x65'](_0xe9e4ad){const _0x1f40d2=_0x4b3094;console[_0x1f40d2(0x280)](_0x4dc461[_0x1f40d2(0x15e)](_0x4dc461['\x56\x59\x79\x59\x58']('\x5b',this[_0x1f40d2(0x1ea)](_0x4dc461['\x56\x47\x48\x64\x4c'])),'\x5d')+_0xe9e4ad);}[_0x4b3094(0x237)](_0x281b91=t,_0x2a5e45='',_0x441be7='',_0xd75caf){const _0x530959=_0x4b3094,_0x3c126f=_0xf16ff0=>{const _0x287fcb=_0x203e;if(!_0xf16ff0)return _0xf16ff0;if(_0x4dc461[_0x287fcb(0x240)]==typeof _0xf16ff0)return this[_0x287fcb(0x293)+'\x6e']()?_0xf16ff0:this['\x69\x73\x51\x75\x61'+'\x6e\x58']()?{'\x6f\x70\x65\x6e\x2d\x75\x72\x6c':_0xf16ff0}:this['\x69\x73\x53\x75\x72'+'\x67\x65']()?{'\x75\x72\x6c':_0xf16ff0}:void(-0x977+0xdc0+-0x449);if(_0x4dc461['\x52\x63\x7a\x5a\x6c'](_0x4dc461[_0x287fcb(0x245)],typeof _0xf16ff0)){if(this['\x69\x73\x4c\x6f\x6f'+'\x6e']()){let _0x2fda6e=_0xf16ff0[_0x287fcb(0x21c)+'\x72\x6c']||_0xf16ff0[_0x287fcb(0x10f)]||_0xf16ff0[_0x4dc461['\x4d\x64\x69\x59\x57']],_0x1bd995=_0xf16ff0[_0x287fcb(0x279)+_0x287fcb(0x1a6)]||_0xf16ff0[_0x4dc461[_0x287fcb(0x229)]];const _0x5d7302={};return _0x5d7302['\x6f\x70\x65\x6e\x55'+'\x72\x6c']=_0x2fda6e,_0x5d7302[_0x287fcb(0x279)+_0x287fcb(0x1a6)]=_0x1bd995,_0x5d7302;}if(this[_0x287fcb(0x23e)+'\x6e\x58']()){let _0x5464ef=_0xf16ff0[_0x4dc461[_0x287fcb(0x24e)]]||_0xf16ff0[_0x287fcb(0x10f)]||_0xf16ff0[_0x287fcb(0x21c)+'\x72\x6c'],_0x3b60b5=_0xf16ff0[_0x287fcb(0x279)+'\x2d\x75\x72\x6c']||_0xf16ff0[_0x287fcb(0x279)+_0x287fcb(0x1a6)];const _0x3f7c94={};return _0x3f7c94[_0x287fcb(0x25a)+_0x287fcb(0x10f)]=_0x5464ef,_0x3f7c94[_0x287fcb(0x279)+_0x287fcb(0x26c)]=_0x3b60b5,_0x3f7c94;}if(this[_0x287fcb(0x1fb)+'\x67\x65']()){let _0x4f4b61=_0xf16ff0['\x75\x72\x6c']||_0xf16ff0[_0x287fcb(0x21c)+'\x72\x6c']||_0xf16ff0[_0x4dc461[_0x287fcb(0x24e)]];const _0x40f4f2={};return _0x40f4f2[_0x287fcb(0x10f)]=_0x4f4b61,_0x40f4f2;}}};this['\x69\x73\x4d\x75\x74'+'\x65']||(this[_0x530959(0x1fb)+'\x67\x65']()||this[_0x530959(0x293)+'\x6e']()?$notification['\x70\x6f\x73\x74'](_0x281b91,_0x2a5e45,_0x441be7,_0x3c126f(_0xd75caf)):this[_0x530959(0x23e)+'\x6e\x58']()&&_0x4dc461[_0x530959(0x27e)]($notify,_0x281b91,_0x2a5e45,_0x441be7,_0x4dc461[_0x530959(0x185)](_0x3c126f,_0xd75caf)));let _0x3eabf5=['',_0x4dc461[_0x530959(0x190)]];_0x3eabf5['\x70\x75\x73\x68'](_0x281b91),_0x2a5e45&&_0x3eabf5[_0x530959(0x146)](_0x2a5e45),_0x441be7&&_0x3eabf5[_0x530959(0x146)](_0x441be7),console[_0x530959(0x280)](_0x3eabf5[_0x530959(0x1e3)]('\x0a'));}[_0x4b3094(0x26e)+'\x6e'](_0x15962f,_0x2a34e2){return _0x15962f<_0x2a34e2?_0x15962f:_0x2a34e2;}['\x67\x65\x74\x4d\x61'+'\x78'](_0x10b5c9,_0xd6c9d7){return _0x10b5c9<_0xd6c9d7?_0xd6c9d7:_0x10b5c9;}[_0x4b3094(0x1ca)+'\x72'](_0x3b72ab,_0x3e7ee5,_0x173b51='\x30'){const _0x3e05fb=_0x4b3094;let _0x444bd6=_0x4dc461[_0x3e05fb(0x12a)](String,_0x3b72ab),_0x5a80d4=_0x4dc461['\x50\x66\x53\x4a\x57'](_0x3e7ee5,_0x444bd6[_0x3e05fb(0x1ac)+'\x68'])?_0x4dc461[_0x3e05fb(0x227)](_0x3e7ee5,_0x444bd6[_0x3e05fb(0x1ac)+'\x68']):0x2469*-0x1+0x24ba+-0x9*0x9,_0xbedc9d='';for(let _0x3f8956=0x1083+-0x2299+0x1216*0x1;_0x4dc461[_0x3e05fb(0x262)](_0x3f8956,_0x5a80d4);_0x3f8956++){_0xbedc9d+=_0x173b51;}return _0xbedc9d+=_0x444bd6,_0xbedc9d;}[_0x4b3094(0x268)+_0x4b3094(0x254)](_0x4cb5d6,_0x36e3c5,_0x2ec4bc=![]){const _0x3007a8=_0x4b3094;let _0x4d114d=[];for(let _0x207106 of Object[_0x3007a8(0x1c1)](_0x4cb5d6)['\x73\x6f\x72\x74']()){let _0x3811eb=_0x4cb5d6[_0x207106];if(_0x4dc461[_0x3007a8(0x152)](_0x3811eb,_0x2ec4bc))_0x3811eb=_0x4dc461[_0x3007a8(0x12a)](encodeURIComponent,_0x3811eb);_0x4d114d[_0x3007a8(0x146)](_0x4dc461[_0x3007a8(0x15f)](_0x4dc461[_0x3007a8(0x15e)](_0x207106,'\x3d'),_0x3811eb));}return _0x4d114d[_0x3007a8(0x1e3)](_0x36e3c5);}['\x73\x74\x72\x32\x6a'+'\x73\x6f\x6e'](_0x153294,_0x4b27fb=![]){const _0x38c10d=_0x4b3094;let _0x593ed4={};for(let _0xdc7f24 of _0x153294[_0x38c10d(0x177)]('\x26')){if(!_0xdc7f24)continue;let _0x221d9d=_0xdc7f24[_0x38c10d(0x100)+'\x4f\x66']('\x3d');if(_0x4dc461[_0x38c10d(0x191)](_0x221d9d,-(0x16df+-0x2*-0xa3+0x609*-0x4)))continue;let _0x48bba3=_0xdc7f24[_0x38c10d(0x258)+'\x72'](0x2*0xb06+-0x514*-0x5+-0x2f70,_0x221d9d),_0x2a45fc=_0xdc7f24[_0x38c10d(0x258)+'\x72'](_0x4dc461['\x56\x59\x79\x59\x58'](_0x221d9d,-0xe5*-0x15+-0x1a2*0x15+0xf82));if(_0x4b27fb)_0x2a45fc=_0x4dc461['\x42\x68\x68\x57\x54'](decodeURIComponent,_0x2a45fc);_0x593ed4[_0x48bba3]=_0x2a45fc;}return _0x593ed4;}['\x72\x61\x6e\x64\x6f'+'\x6d\x50\x61\x74\x74'+_0x4b3094(0x180)](_0x39c9a4,_0x782889='\x61\x62\x63\x64\x65'+_0x4b3094(0x161)+_0x4b3094(0x20a)+'\x39'){const _0x1bd907=_0x4b3094;let _0x167a1='';for(let _0x4c9048 of _0x39c9a4){if(_0x4dc461[_0x1bd907(0x108)](_0x4c9048,'\x78'))_0x167a1+=_0x782889['\x63\x68\x61\x72\x41'+'\x74'](Math[_0x1bd907(0x15c)](Math['\x72\x61\x6e\x64\x6f'+'\x6d']()*_0x782889[_0x1bd907(0x1ac)+'\x68']));else _0x4dc461[_0x1bd907(0x191)](_0x4c9048,'\x58')?_0x167a1+=_0x782889[_0x1bd907(0x112)+'\x74'](Math[_0x1bd907(0x15c)](Math[_0x1bd907(0x291)+'\x6d']()*_0x782889[_0x1bd907(0x1ac)+'\x68']))[_0x1bd907(0x10b)+_0x1bd907(0x1c7)+'\x65']():_0x167a1+=_0x4c9048;}return _0x167a1;}[_0x4b3094(0x291)+_0x4b3094(0x122)+'\x6e\x67'](_0x600a62,_0x1be07f=_0x4b3094(0x11f)+_0x4b3094(0x161)+_0x4b3094(0x20a)+'\x39'){const _0x1bba95=_0x4b3094;let _0x23158e='';for(let _0x1ed705=-0x1*-0x67b+0x7b4*-0x1+0x1*0x139;_0x4dc461[_0x1bba95(0x19d)](_0x1ed705,_0x600a62);_0x1ed705++){_0x23158e+=_0x1be07f[_0x1bba95(0x112)+'\x74'](Math['\x66\x6c\x6f\x6f\x72'](Math[_0x1bba95(0x291)+'\x6d']()*_0x1be07f[_0x1bba95(0x1ac)+'\x68']));}return _0x23158e;}[_0x4b3094(0x291)+'\x6d\x4c\x69\x73\x74'](_0x4acba4){const _0x509ea0=_0x4b3094;let _0x91a694=Math['\x66\x6c\x6f\x6f\x72'](_0x4dc461[_0x509ea0(0x27d)](Math[_0x509ea0(0x291)+'\x6d'](),_0x4acba4['\x6c\x65\x6e\x67\x74'+'\x68']));return _0x4acba4[_0x91a694];}[_0x4b3094(0x19e)](_0x530f72){return new Promise(_0x3e7b59=>setTimeout(_0x3e7b59,_0x530f72));}async[_0x4b3094(0x17b)](_0x5b659f={}){const _0x1ee570=_0x4b3094;await this[_0x1ee570(0x187)+'\x73\x67']();const _0x1541e5=new Date()['\x67\x65\x74\x54\x69'+'\x6d\x65'](),_0x2fa0de=_0x4dc461[_0x1ee570(0x208)](_0x4dc461['\x79\x51\x65\x4d\x4c'](_0x1541e5,this[_0x1ee570(0x1af)+_0x1ee570(0x192)]),-0x1a1b+-0x1*0x1cef+0x3af2);console[_0x1ee570(0x280)]('\x0a'+this[_0x1ee570(0x204)]+(_0x1ee570(0x116)+_0x1ee570(0x1e6)+'\x20')+_0x2fa0de+_0x1ee570(0x13f));if(this['\x69\x73\x53\x75\x72'+'\x67\x65']()||this[_0x1ee570(0x23e)+'\x6e\x58']()||this['\x69\x73\x4c\x6f\x6f'+'\x6e']())$done(_0x5b659f);}}(_0x1e4724,_0xff6f77);} \ No newline at end of file diff --git a/gacmotor.js b/gacmotor.js new file mode 100644 index 0000000..add381d --- /dev/null +++ b/gacmotor.js @@ -0,0 +1,1406 @@ +/** + *有问题联系3288588344 + *频道:https://pd.qq.com/s/672fku8ge + * cron 56 8 * * * gacmotor.js + * Show:广汽传祺 评论 分享(转发) 签到 发表文章 + * @author https://github.com/smallfawn/QLScriptPublic + * @tips 本脚本适用于广汽传祺5.0.0以上的版本 + * @update 2024/1/17 新增 广汽传祺年度报告抽奖 + * 文件内基本格式 [{"AT":"","RT":""},{"AT":"","RT":""}] 仓库( https://github.com/3288588344/toulu/blob/main/GacmotorCookies.json )里面有基本模板 使用前必须填写COOKIE + * 提供三种获取变量COOKIE方式 + * 1.手动抓https://next.gacmotor.com/app + * (refreshTokenn和accessToken 在登录时候抓包 https://next.gacmotor.com/app/app-api/sms/sendSmsCodeV2 响应里面) APP有效期都是7天 需要填写refreshToken来刷新COOKIE有效时间 + * 2.通过网页一键获取 https://gqcq.leafxxx.win/gqcq/login.html + * 变量示例 AT-11111-ASASASASASASASASASAS填入AT里面 RT-11111-BSBSBSBSBSBSBS填入RT里面 + * 开启发贴 gacmotorPost=false 默认关闭发表文章功能 true为开启(此功能存在风控检测,谨慎开启) 目前没适配 小心扣豆子 + * 开启评论 gacmotorComment=false 默认关闭评论功能 true为开启(此功能存在风控检测,谨慎开启) 目前没适配 小心扣豆子 + * 每日抽奖 gacmotorLuckyDram=1 抽奖次数[1-10] 不写默认抽奖一次(首次免费) 以后每次花费2G豆抽奖 每天上限10次 + * + */ +let GacmotorCookies = './GacmotorCookies.json';//指定文件目录 +const $ = new Env("广汽传祺"); +const notify = $.isNode() ? require('./sendNotify') : ''; +//const { updateEnv11, getEnvs, updateEnv } = require("./ql") +const appVersion = "5.1.12" +//let ckName = "gacmotorToken"; +//let envSplitor = ["@", "\n"]; //多账号分隔符 +let strSplitor = "#"; //多变量分隔符 +let userIdx = 0; +let userList = []; +const fs = require('fs'); +let TempAccount = []; + + +function ReadFiles(filename) { + let Fileexists = fs.existsSync(filename);//检测文件是否存在 + if (Fileexists) {//如果存在 + console.log("检测到广汽传祺GacmotorCookies.json,载入..."); + TempAccount = fs.readFileSync(filename, 'utf-8'); + if (TempAccount) { + TempAccount = TempAccount.toString(); + TempAccount = JSON.parse(TempAccount); + } + }else{ + console.log("未检测到广汽传祺GacmotorCookies.json..."); + } +} +async function writeFile(fileName, data) { + return new Promise((resolve, reject) => { + fs.writeFile(fileName, data, 'utf8', (err) => { + if (err) { + reject(err); // 如果写入操作出错,将错误传递给调用者 + return; + } + resolve(); // 写入操作成功,没有错误 + }); + }); +} +class UserInfo { + constructor(str) { + this.index = ++userIdx; + this.ck = str.split(strSplitor)[0]; //单账号多变量分隔符 + this.refreshToken = str.split(strSplitor)[1]; //单账号多变量分隔符 + this.ckStatus = true; + this.deviceCode = ""; + this.registrationID = ""; + //this.mallToken = str.split(strSplitor)[2]; + this.signInStatus = false//默认签到状态false + this.userIdStr = "" + this.name = "" + this.GDouNum = "" + this.postList = []//自己 + this.applatestlist = []//最新帖子列表 + this.titleList = []// + this.contentList = []// + this.commentList = [] + this.BeiJingTime = "" + this.powerList = [] + this.mobile = [] + this.accessToken = [] + this.powerId = ""//助力ID + this.questionId = "" + this.userAnswerList = [] + this.answerIdList = [] + this.userAnswer = "" + this.questionTaskId = '' + this.luckyDrawNum = 0 //抽奖次数 + this.postNotFinishedNum = 0//发帖未完成次数 + this.commentNotFinishedNum = 0//评论未完成次数 + this.sharenNotFinishedNum = 0//转发未完成次数 + this.refreshStatus = false + this.commenttext = "" + this.signInCaptchaId = null + this.signInRequestId = null + this.lotteryRequestId = null + this.shareCaptchaId = null + this.shareRequestId = null + + } + async main() { + $.log(`==============开始第${this.index}个账号==============`) + await this._userInfo(); + + if (this.ckStatus == true) { + await this.mainTask() + } else { + if (this.refreshToken !== undefined) { + $.log(`尝试刷新TOKEN`) + await this._refreshToken() + if (this.refreshStatus) { + await this._userInfo(); + await this.mainTask() + } + } + } + + + + } + async mainTask() { + if (process.env["gacmotorLuckyDram"] == undefined) { + await this._luckyDrawNum()//获取抽奖次数 + if (this.luckyDrawNum > 1) { + await this._luckyDraw() + } + } else if (process.env["gacmotorLuckyDram"] && Number(process.env["gacmotorLuckyDram"]) !== NaN) { + if (process.env["gacmotorLuckyDram"] !== 0) { + if (Number(process.env["gacmotorLuckyDram"]) > 10) { + console.log(`每天最高抽10次哦`); + await this._luckyDrawNum()//获取抽奖次数 + if (this.luckyDrawNum < 10) { + for (let i = 0; i < this.luckyDrawNum; i++) { + $.wait(1000) + await this._luckyDraw() + $.wait(2000) + } + } else if (this.luckyDrawNum = 10) { + for (let index = 0; index < 10; index++) { + $.wait(1000) + await this._luckyDraw() + $.wait(2000) + } + } + + } else { + await this._luckyDrawNum()//获取抽奖次数 + if (this.luckyDrawNum < Number(process.env["gacmotorLuckyDram"])) { + for (let i = 0; i < this.luckyDrawNum; i++) { + $.wait(1000) + await this._luckyDraw() + $.wait(2000) + } + } else if (this.luckyDrawNum > Number(process.env["gacmotorLuckyDram"])) { + for (let index = 0; index < Number(process.env["gacmotorLuckyDram"]); index++) { + $.wait(1000) + await this._luckyDraw() + $.wait(2000) + } + } else if (this.luckyDrawNum == Number(process.env["gacmotorLuckyDram"])) { + for (let index = 0; index < Number(process.env["gacmotorLuckyDram"]); index++) { + $.wait(1000) + await this._luckyDraw() + $.wait(2000) + } + } + + } + } else { + + + } + + + } + await this._getGDou() + await this._signInStatus() + await this._signInCounts() + if (this.signInStatus == false) { + await this._signIn() + } + await this._taskList() + /*if (this.postNotFinishedNum !== 0 && this.postNotFinishedNum >= 1 || this.commentNotFinishedNum !== 0 && this.commentNotFinishedNum >= 1) { + if (process.env["gacmotorPost"] == "true" || process.env["gacmotorComment"] == "true") { + console.log(`正在远程获取15条随机评论~请等待15-20秒`) + await this._getText() + } + }*/ + + if (process.env["gacmotorPost"] == "true") { + + if (this.postNotFinishedNum !== 0 && this.postNotFinishedNum >= 1) { + console.log(`正在远程获取15条随机一言~请等待10-15秒`) + await this._getText() + await this._post(this.titleList[0], this.contentList[0])//可能需要图片 + console.log(`等待10s`) + await $.wait(10000) + await this._postlist() + for (let postId of this.postList) { + await this._delete(postId) + } + } + + } + await this._applatestlist() + if (this.sharenNotFinishedNum !== 0 && this.sharenNotFinishedNum >= 1) { + for (let postId of this.applatestlist) { + await this._forward(postId) + } + } + + if (process.env["gacmotorComment"] == "true") { + if (this.commentNotFinishedNum !== 0 && this.commentNotFinishedNum >= 1) { + this._getText1() + for (let postId of this.applatestlist) { + await this._add(postId, this.commenttext) + } + } + + } + + if (process.env["gacmotorComment"] == "true") { + if (this.commentNotFinishedNum !== 0 && this.commentNotFinishedNum >= 1) { + console.log(`等待10s`) + await $.wait(10000) + console.log(`检测评论列表`); + await this._commentlist() + if (this.commentList.length > 0) { + for (let commentId of this.commentList) { + await this._commentdelete(commentId) + } + } + } + + } + + //await this._activity_lotter_common({ "activityId": "531", "channel": "carapp_channel" }) + //await this._getChinaTime() + /*console.log(`11/26截止 Do - 广州车展活动 奖品活动结束后14日内发放`); + if (this.BeiJingTime < 1701014400000) { + //{"activityId":"467","channel":"carapp_channel"} + // await this._activity_lotter_common({ "activityId": "467", "channel": "carapp_channel" }) + }*/ + /*每天助力 gacmotorPower="" (抓这个需要手动做一次任务,我的-超级合伙人-每日任务-分享,微信自己点击自己分享的文章一次) +* 微信抓gmp.spgacmotorsc.com/partner/api-content/base/content/trafficStatistics? +* 后面的openId的值例如:oQzIW0jx-DbassAsaQgpGsasqXqCWI*/ + /*if (process.env["gacmotorPower"]) { + console.log(`已设置开启每日助力`); + await this._power_auth()//登录活动 获取accessToken + await this._power_list()//获取任务列表 + if (this.powerList.length > 0) { + for (let taskId of this.powerList) { + await this._join_power(taskId)//加入任务 + await this._get_power_id(taskId)//获取助力的utid + await $.wait(2000) + await this._share_power(taskId)//分享 + await $.wait(2000) + if (this.powerId !== "") { + await this._power(this.powerId) + } + } + } + }*/ + /*if (this.mallToken == undefined) { + this.mallToken = `DS-${this.ck}` + console.log(`执行答题&抽奖 并且尝试获取mallToken(如果不是WoolWeb获取的变量 可能执行失败)`); + //获取答题活动列表 + await this._question_list({ "activityId": 464 }) + if (this.questionTaskId !== "") { + //获取题目 + await this._question_info({ "activityId": 464, "taskId": this.questionTaskId, "userSubmit": false }) + //答题 + await this._submit_answer({ "activityId": 464, "taskId": this.questionTaskId, "userSubmitAnswerVoList": [{ "questionId": this.questionId, "userAnswer": this.userAnswer, "answerIdList": this.answerIdList }] }) + //抽奖 + let lotterId = "465" + if (this.questionTaskId == 8) { + lotterId = "484" + } else if (this.questionTaskId == 9) { + lotterId = "498" + } else if (this.questionTaskId == 10) { + lotterId = "511" + } else if (this.questionTaskId == 11) { + lotterId = "522" + } else if (this.questionTaskId == 12) { + lotterId = "523" + } + await this._activity_lotter_mall({ "activityId": lotterId, "channel": "wx_channel" }) + //console.log(`目测30天内自动到账`) + console.log(`请微信打开链接截查看中奖规则 https://mall.gacmotor.com/act/turntable?id=${lotterId}`); + console.log(`加客服的地址 https://mall.gacmotor.com/act/answer-activity?id=464`); + } else { + console.log(`本周答题完成或未到活动时间`); + } + }*/ + } + async _refreshToken() { + try { + let options = { + fn: "刷新token", + method: "post", + url: `https://next.gacmotor.com/app/app-api/login/refreshAt`, + headers: this._getHeaders("post"), + body: JSON.stringify({ refreshToken: this.refreshToken }) + } + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.resultCode == "0") { + $.log(`重置accessToken [${result.data.accessToken}] 重置refeshToken [${result.data.refreshToken}]`) + //调用青龙API + //change:2023/12/27 不再调用青龙API 选择修改文件方式 + //删除原变量 + //let originalValue = this.cookies + //let newValue = [result.data.accessToken, result.data.refreshToken] + TempAccount.forEach((TempAccount) => { + if (TempAccount.AT === this.ck) { + TempAccount.AT = result.data.accessToken; + TempAccount.RT = result.data.refreshToken; + } + }); + await writeFile(GacmotorCookies, JSON.stringify(TempAccount, null, 2)) + this.ck = result.data.accessToken + this.refreshStatus = true + + //console.log(arr); + /*if (this.mallToken !== undefined) { + newValue = `${result.data.accessToken}${strSplitor}${result.data.refreshToken}${strSplitor}${this.mallToken}` + } else { + newValue = `${result.data.accessToken}${strSplitor}${result.data.refreshToken}` + }*/ + /*let env = await getEnvs(ckName) + if (env[0].value.indexOf(originalValue) !== -1) { + let newEnv = env[0].value.replaceAll(originalValue, newValue) + if (process.env["QLVersion"] == "old") { + await updateEnv(newEnv, env[0].id, null, ckName) + } else { + await updateEnv11(newEnv, env[0].id, null, ckName) + } + this.refreshStatus = true + }*/ + + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + this.ckStatus = false + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + + async _getChinaTime() { + try { + let options = { + fn: "获取北京时间", + method: "get", + url: `http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp`, + } + let { body: result } = await httpRequest(options) + result = JSON.parse(result) + this.BeiJingTime = result.data.t + } catch (e) { + console.log(e); + } + } + async _activity_lotter_common(body) { + try { + let options = { + fn: "活动抽奖", + method: "post", + url: `https://next.gacmotor.com/mall/activity-app/customer/activityPrize/lotter?notip=true`, + headers: { + "Host": "next.gacmotor.com", + "Connection": "keep-alive", + "Accept": "application/json, text/plain, */*", + "User-Agent": "Mozilla/5.0 (Linux; Android 10; MI 8 Lite Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/81.0.4044.138 Mobile Safari/537.36 WindVane/8.5.0 StatusBarHeight/31 channel/GACClient", + "token": this.ck, + "Content-Type": "application/json;charset=UTF-8", + "Origin": "https://next.gacmotor.com", + "X-Requested-With": "com.cloudy.component", + "Sec-Fetch-Site": "same-origin", + "Sec-Fetch-Mode": "cors", + "Sec-Fetch-Dest": "empty", + "Referer": "https://next.gacmotor.com/mall/act/turntable?id=467", + "Accept-Encoding": "gzip, deflate", + "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7" + }, + body: JSON.stringify(body) + } + //console.log(options) + let { body: result } = await httpRequest(options) + result = JSON.parse(result) + if (result.code == "0000") { + $.log(`抽奖成功获得[${result.data.name}]`) + } else { + console.log(`抽奖失败`); + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + async _activity_lotter_mall(body) { + try { + let options = { + fn: "活动抽奖(mall)", + method: "post", + url: `https://mall.gacmotor.com/activity-app/customer/activityPrize/lotter?notip=true`, + headers: this._getHeaders_mall("post"), + body: JSON.stringify(body) + } + //console.log(options) + let { body: result } = await httpRequest(options) + result = JSON.parse(result) + if (result.code == "0000") { + $.log(`答题活动抽奖成功 获得[${result.data.name}]`) + } else { + console.log(`抽奖失败`); + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + + async _question_list(body) { + try { + let options = { + fn: "获取答题活动列表", + method: "post", + url: `https://mall.gacmotor.com/e-small-bff/fronted/activityAnswer/queryAnswerActivityInfo`, + headers: this._getHeaders_mall("post"), + body: JSON.stringify(body) + } + //console.log(options) + let { body: result } = await httpRequest(options) + result = JSON.parse(result) + if (result.code == "0000") { + for (let id of result.data.taskInfoList) { + if (id.endTime > this.BeiJingTime && this.BeiJingTime > id.startTime && id.userSubmit == false) { + this.questionTaskId = id.id + } + } + } else { + console.log(`获取问题和选项失败`); + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + + + async _question_info(body) { + try { + let options = { + fn: "获取问题和选项", + method: "post", + url: `https://mall.gacmotor.com/e-small-bff/fronted/activityAnswer/queryQuestionInfo`, + headers: this._getHeaders_mall("post"), + body: JSON.stringify(body) + } + //console.log(options) + let { body: result } = await httpRequest(options) + result = JSON.parse(result) + if (result.code == "0000") { + this.questionId = result.data.questionInfoList[0].id + this.answerIdList = [] + for (let answer of result.data.questionInfoList[0].answerInfoList) { + this.answerIdList.push(answer.id) + this.userAnswerList.push(answer.answerDesc) + } + this.userAnswer = this.userAnswerList.join(';'); + } else { + console.log(`获取问题和选项失败`); + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + + + async _submit_answer(body) { + try { + let options = { + fn: "回答问题", + method: "post", + url: `https://mall.gacmotor.com/e-small-bff/fronted/activityAnswer/submitAnswer`, + headers: this._getHeaders_mall("post"), + body: JSON.stringify(body) + } + //console.log(options) + let { body: result } = await httpRequest(options) + result = JSON.parse(result) + if (result.code == "0000") { + console.log(`回答问题` + result.success); + } else { + console.log(`回答问题失败`); + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + async _getText() { + try { + let textList = [] + let options = { + fn: "获取随机一言", + method: "get", + url: `https://v1.hitokoto.cn/?c=e`, + } + for (let i = 0; i < 10; i++) { + await $.wait(1000) + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.hitokoto["length"] > 10) { + textList.push(result.hitokoto) + } + this.titleList = [textList[0]] + this.contentList = [textList[1]] + } + } catch (e) { + console.log(e); + } + } + _getText1() { + try { + let textList = [ + `好看好用,我也想拥有同款!`, + `好看好开猴赛雷,广汽传祺YYDS!`, + `打破0回复,帮你顶个楼!`, + `人间自有真情在,给个点赞最实在!`, + `实力顶帖,为君打call!`] + + this.commenttext = [textList[Math.floor(Math.random() * 5)]] + + } catch (e) { + console.log(e); + } + } + + async _join_power(taskId) { + try { + let options = { + fn: "加入助力", + method: "post", + url: `https://gmp.spgacmotorsc.com/partner/api-content/app/tasks/joinTask`, + headers: this._getHeaders_gmp("post"), + body: `taskId=${taskId}&companyCode=CHUANQI&phone=${this.mobile}` + } + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.errorCode == "0") { + console.log(`添加助力任务成功`); + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + async _power_list() { + try { + let options = { + fn: "助力任务列表获取", + method: "get", + url: `https://gmp.spgacmotorsc.com/partner/api-content/app/tasks/list?page=0&size=10&channelType=WEIXIN&taskType=SHARE&companyCode=CHUANQI&phone=${this.mobile}`, + headers: this._getHeaders_gmp("get"), + } + //console.log(options); + let { body: result } = await httpRequest(options); + result = JSON.parse(result); + //console.log(result); + if (result.errorCode == "0") { + for (let i of result.body.rows) { + if (i.isFinish == 1) { + this.powerList.push(i.taskId) + } + } + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(`请先手动完成一次任务`); + //console.log(e); + } + } + + async _power_auth() { + try { + let headers = this._getHeaders("get") + headers["Host"] = `gmp.spgacmotorsc.com` + let options = { + fn: "助力任务登录", + method: "get", + url: `https://gmp.spgacmotorsc.com/partner/api-user/app/auth/judge?phone=${this.mobile}&companyCode=CHUANQI`, + headers: headers, + } + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.body.isAuth == true) { + this.accessToken = result.body.user.accessToken; + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(`请先手动完成一次任务`); + //console.log(e); + } + } + + async _get_power_id(taskId) { + try { + let options = { + fn: "助力任务ID获取", + method: "get", + url: `https://gmp.spgacmotorsc.com/partner/api-content/app/tasks/detail?taskId=${taskId}&companyCode=CHUANQI&phone=${this.mobile}`, + headers: this._getHeaders_gmp("get"), + } + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.errorCode == "0") { + let shareUrl = result.body.shareUrl + var regex = /utId=([^&]+)/; + var match = shareUrl.match(regex); + if (match) { + this.powerId = match[1]; + console.log(`助力ID获取成功${this.powerId}`); + } else { + console.log("未找到utId的值"); + } + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + + async _share_power(taskId) { + try { + let options = { + fn: "助力任务分享", + method: "post", + url: `https://gmp.spgacmotorsc.com/partner/api-content/app/tasks/backFillH5`, + headers: this._getHeaders_gmp("post"), + body: `taskId=${taskId}&companyCode=CHUANQI&phone=${this.mobile}` + } + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.errorCode == "0") { + console.log(result.body); + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + async _power() { + try { + let options = { + fn: "助力", + method: "get", + url: `https://gmp.spgacmotorsc.com/partner/api-content/base/content/trafficStatistics?id=11131879&openId=` + process.env["gacmotorPower"], + headers: { + "Host": "gmp.spgacmotorsc.com", + "Connection": "keep-alive", + "Accept": "application/json, text/plain, */*", + "User-Agent": "Mozilla/5.0 (Linux; Android 10; MI 8 Lite Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/1110017 MMWEBSDK/20230405 MMWEBID/2585 MicroMessenger/8.0.35.2360(0x2800235D) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64", + "X-Requested-With": "com.tencent.mm", + "Sec-Fetch-Site": "same-origin", + "Sec-Fetch-Mode": "cors", + "Sec-Fetch-Dest": "empty", + "Referer": "https://gmp.spgacmotorsc.com/h5/partner/", + "Accept-Encoding": "gzip, deflate", + "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7" + }, + } + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.errorCode == "0") { + $.log(`助力执行成功 可能助力失败 正常情况`) + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + async _userInfo() { + try { + let options = { + fn: "信息查询", + method: "post", + url: `https://next.gacmotor.com/app/app-api/user/getLoginUser`, + headers: this._getHeaders("post"), + body: `` + } + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.resultCode == "0") { + this.mobile = Buffer.from(result.data.ms, 'base64').toString('utf-8'); + Buffer.from(result.data.ms, 'base64').toString('utf-8'); + $.log(`[${result.data.mobile}][${result.data.nickname}][${result.data.userIdStr}]`) + this.name = `昵称 [${result.data.nickname}]` + this.userIdStr = result.data.userIdStr; + this.ckStatus = true + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + this.ckStatus = false + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + async _taskList() { + try { + let options = { + fn: "任务情况查询", + method: "get", + url: `https://next.gacmotor.com/app/community-api/user/mission/getUserMissionList?place=1`, + headers: this._getHeaders("get"), + } + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.resultCode == "0") { + //result.data[0].total - result.data[0].finishedNum//签到 + this.postNotFinishedNum = Number(result.data[1].total) - Number(result.data[1].finishedNum)//发帖 + this.commentNotFinishedNum = Number(result.data[2].total) - Number(result.data[2].finishedNum)//评论 + this.sharenNotFinishedNum = Number(result.data[3].total) - Number(result.data[3].finishedNum)//分享 + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + this.ckStatus = false + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + async _luckyDrawNum() { + try { + let options = { + fn: "抽奖次数查询", + method: "get", + url: `https://next.gacmotor.com/app/activity/shopDraw/getchances?activityCode=shop-draw`, + headers: this._getHeaders("get"), + } + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.resultCode == "0") { + this.luckyDrawNum = result.data + console.log(`抽奖次数剩余${this.luckyDrawNum}次`); + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + this.ckStatus = false + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + async _luckyDraw() { + await this.get_lastReq("lottery") + try { + let options = { + fn: "抽奖", + method: "post", + //https://next.gacmotor.com/app/activity/shopDraw/luckyDraw + url: `https://next.gacmotor.com/app/activity/shopDraw/luckyDrawHc`, + headers: this._getHeaders("post"), + //body: JSON.stringify({ "activityCode": "shop-draw", "repeatcheck": true }) + body: JSON.stringify({ + "activityCode": "shop-draw", + "repeatcheck": true, + "lastReq": this.lotteryRequestId + }) + } + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.resultCode == "0") { + $.log(`抽奖成功获得[${result.data.medalName}]`) + + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + this.ckStatus = false + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + async _getGDou() { + try { + let options = { + fn: "G豆查询", + method: "get", + url: `https://next.gacmotor.com/app/app-api/user/getUserGdou`, + headers: this._getHeaders("get"), + } + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.resultCode == "0") { + this.GDouNum = `G豆 [${result.data}]` + $.log(`当前G豆数量[${result.data}]`) + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + + async _applatestlist() { + try { + let options = { + fn: "最新帖子列表", + method: "get", + url: `https://next.gacmotor.com/app/community-api/community/api/post/applatestlist?pageNum=1&pageSize=10`, + headers: this._getHeaders("get"), + } + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.resultCode == "0") { + this.applatestlist = [result.data.list[0].postVo.postId] + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + async _signInStatus() { + try { + let options = { + fn: "签到查询", + method: "get", + url: `https://next.gacmotor.com/app/app-api/sign/signStatus`, + headers: this._getHeaders("get"), + } + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.resultCode == "0") { + if (result.data == true) { + //已签 + this.signInStatus = true; + } else { + //未签 + this.signInStatus = false + } + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + + async _signInCounts() { + try { + let options = { + fn: "签到信息", + method: "get", + url: `https://next.gacmotor.com/app/app-api/sign/countSignDays`, + headers: this._getHeaders("get"), + } + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.resultCode == "0") { + $.log(`已经连续签到${result.data}天`) + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + async get_lastReq(event) { + let options = { + fn: "获取参数", + method: "get", + url: `https://next.gacmotor.com/app/app-api/common/hcRiskControl/getRiskLevelCommon?eventId=${event}`, + headers: this._getHeaders("get"), + + } + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.resultCode == "0") { + if (event == "signIn") { + this.signInCaptchaId = result.data.captchaId + this.signInRequestId = result.data.requestId + } + if (event == "lottery") { + this.lotteryRequestId = result.data.requestId + } + if (event == "share") { + this.shareCaptchaId = result.data.captchaId + this.shareRequestId = result.data.requestId + } + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + console.log(JSON.stringify(result)); + } + } + async _signIn() { + await this.get_lastReq("signIn") + try { + /*let options = { + fn: "签到执行", + method: "get", + url: `https://next.gacmotor.com/app/app-api/sign/submit`, + headers: this._getHeaders("get"), + }*/ + let options = { + fn: "签到执行", + method: "post", + url: `https://next.gacmotor.com/app/app-api/sign/submitHc`, + headers: this._getHeaders("post"), + body: JSON.stringify({ + "captchaId": this.signInCaptchaId, + "lastReq": this.signInRequestId + }) + } + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.resultCode == "0") { + $.log(`签到[${result.resultMsg}]`) + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + + async _forward(postId) { + await this.get_lastReq("share") + try { + /*let options = { + fn: "转发", + method: "post", + url: `https://next.gacmotor.com/app/community-api/community/api/post/forward`, + headers: this._getHeaders("post"), + body: JSON.stringify({ "postId": postId }) + }*/ + let options = { + fn: "转发", + method: "post", + url: `https://next.gacmotor.com/app/community-api/community/api/post/forwardHc`, + headers: this._getHeaders("post"), + body: JSON.stringify({ "postId": postId, "captchaId": this.shareCaptchaId, "lastReq": this.shareRequestId }) + } + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.resultCode == "0") { + console.log(`转发[${result.resultMsg}]`); + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + + async _add(postId, commentContent) { + try { + let options = { + fn: "评论", + method: "post", + url: `https://next.gacmotor.com/app/community-api/community/api/comment/add`, + headers: this._getHeaders("post"), + body: JSON.stringify({ "commentType": 0, "postId": postId, "commentContent": commentContent, "isReplyComment": 1, "commentImg": "" }) + } + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.resultCode == "0") { + console.log(`评论[${result.resultMsg}]`); + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + + async _commentlist() { + try { + let options = { + fn: "获取评论列表", + method: "post", + url: `https://next.gacmotor.com/app/community-api/community/api/comment/post`, + headers: this._getHeaders("post"), + body: JSON.stringify({ "pageNum": 1, "pageSize": 10, "userIdStr": this.userIdStr }) + } + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.resultCode == "0") { + if (result["data"].length > 0) { + this.commentList = [result.data[0].commentId] + } + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + async _commentdelete(commentId) { + try { + let options = { + fn: "删除评论", + method: "post", + url: `https://next.gacmotor.com/app/community-api/community/api/comment/delete`, + headers: this._getHeaders("post"), + body: JSON.stringify({ "commentId": `${commentId}` }) + } + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.resultCode == "0") { + console.log(`删除评论[${result.resultMsg}]`); + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + async _post(postTitle, postContent) { + try { + let options = { + fn: "发表文章", + method: "post", + url: `https://next.gacmotor.com/app/community-api/community/api/post/appsavepost`, + headers: this._getHeaders("post"), + body: JSON.stringify({ "address": "", "channelInfoId": "", "cityId": "", "columnId": "", "commodityId": "", "commodityMainImage": "", "commodityName": "", "commodityType": "", "contentImgNums": 0, "contentWords": postContent, "coverImg": "", "customCover": "https://pic-gsp.gacmotor.com/app/a7b1a896-4f92-449f-859e-5e238d131ea3.jpg", "detailAddress": "", "lat": "", "lng": "", "orderId": "", "orderPrice": "", "orderSn": "", "orderType": "", "postContent": `[{\"text\":\"${postContent}\"}]`, "postTitle": postTitle, "postType": "2", "rankTotal": "", "topicId": "", "vin": "", "weekRank": "" }) + } + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.resultCode == "0") { + console.log(`发表文章[${result.resultMsg}]`); + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + + async _delete(postId) { + try { + let options = { + fn: "删除文章", + method: "post", + url: `https://next.gacmotor.com/app/community-api/community/api/post/delete`, + headers: this._getHeaders("post"), + body: JSON.stringify({ "postId": postId.toString() }) + } + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.resultCode == "0") { + console.log(`删除文章[${result.resultMsg}]`); + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + + async _postlist() { + try { + let options = { + fn: "文章列表", + method: "post", + url: `https://next.gacmotor.com/app/community-api/community/api/post/querylist`, + headers: this._getHeaders("post"), + body: JSON.stringify({ "pageNum": 1, "pageSize": 10, "userIdStr": this.userIdStr, "userId": this.userIdStr, "myHome": true }) + } + let { body: result } = await httpRequest(options); + //console.log(options); + result = JSON.parse(result); + //console.log(result); + if (result.resultCode == "0") { + //文章ID result.data.list[0].postId + this.postList = [result.data.list[0].postId]; + } else { + console.log(`❌${options.fn}状态[${result.resultMsg}]`); + console.log(JSON.stringify(result)); + } + } catch (e) { + console.log(e); + } + } + _MD5(str) { + const crypto = require("crypto"); + return crypto.createHash("md5").update(str).digest("hex"); + } + _getHeaders(method) { + let timestamp1 = new Date().getTime(); + let timestamp2 = new Date().getTime(); + let nonce = Math.floor(100000 + Math.random() * 900000); + let appid = `8c4131ff-e326-43ea-b333-decb23936673` + let key = `46856407-b211-4a10-9cb2-5a9b94361614` + let sig = this._MD5(`${timestamp1}${nonce}${appid}${key}`) + let apiSignKey = `a361588rt20dpol` + let apiSign = (this._MD5(`${timestamp2}${apiSignKey}`)).toUpperCase() + if (method == "get") { + return { + "Accept": "application/json", + "appToken": this.ck, + "deviceCode": this.deviceCode, + "current-time": timestamp2, + "deviceId": this.registrationID, + "version": appVersion, + "nonce": nonce, + "token": this.ck, + "Authorization": `Bearer ${this.ck}`, + "sig": sig, + "platformNo": "Android", + "osVersion": 10, + "operateSystem": "android", + "appId": appid, + "registrationID": this.registrationID, + "api-sign": apiSign, + "deviceModel": "IQOO 10", + "timestamp": timestamp1, + //"Content-Type": "application/json; charset=UTF-8", + //"Content-Length": 24, + "Host": "next.gacmotor.com", + "Connection": "Keep-Alive", + "Accept-Encoding": "gzip", + "User-Agent": "okhttp/4.8.1" + } + } else { + return { + "Accept": "application/json", + "appToken": this.ck, + "deviceCode": this.deviceCode, + "current-time": timestamp2, + "deviceId": this.registrationID, + "version": appVersion, + "nonce": nonce, + "token": this.ck, + "Authorization": `Bearer ${this.ck}`, + "sig": sig, + "platformNo": "Android", + "osVersion": 10, + "operateSystem": "android", + "appId": appid, + "registrationID": this.registrationID, + "api-sign": apiSign, + "deviceModel": "IQOO 10", + "timestamp": timestamp1, + "Content-Type": "application/json; charset=UTF-8", + //"Content-Length": 24, + "Host": "next.gacmotor.com", + "Connection": "Keep-Alive", + "Accept-Encoding": "gzip", + "User-Agent": "okhttp/4.8.1" + } + } + } + _getHeaders_gmp(method) { + let timestamp2 = new Date().getTime(); + let apiSignKey = `a361588rt20dpol` + let apiSign = (this._MD5(`${timestamp2}${apiSignKey}`)).toUpperCase() + if (method == "get") { + return { + "Host": "gmp.spgacmotorsc.com", + "Connection": "keep-alive", + "accessToken": this.accessToken, + "User-Agent": "Mozilla/5.0 (Linux; Android 10; MI 8 Lite Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/81.0.4044.138 Mobile Safari/537.36 WindVane/8.5.0 StatusBarHeight/31 channel/GACClient", + "client": "app", + "Content-Type": "application/x-www-form-urlencoded", + "current-time": timestamp2, + "companyCode": "CHUANQI", + "api-sign": apiSign, + "ver": "20220513", + "Accept": `*/*`, + "Origin": "https://gmp.spgacmotorsc.com", + "X-Requested-With": "com.cloudy.component", + "Sec-Fetch-Site": "same-origin", + "Sec-Fetch-Mode": "cors", + "Sec-Fetch-Dest": "empty", + "Accept-Encoding": "gzip, deflate", + "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", + } + } else { + return { + "Host": "gmp.spgacmotorsc.com", + "Connection": "keep-alive", + "accessToken": this.accessToken, + "User-Agent": "Mozilla/5.0 (Linux; Android 10; MI 8 Lite Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/81.0.4044.138 Mobile Safari/537.36 WindVane/8.5.0 StatusBarHeight/31 channel/GACClient", + "client": "app", + "Content-Type": "application/x-www-form-urlencoded", + "current-time": timestamp2, + "companyCode": "CHUANQI", + "api-sign": apiSign, + "ver": "20220513", + "Accept": "*/*", + "Origin": "https://gmp.spgacmotorsc.com", + "X-Requested-With": "com.cloudy.component", + "Sec-Fetch-Site": "same-origin", + "Sec-Fetch-Mode": "cors", + "Sec-Fetch-Dest": "empty", + "Accept-Encoding": "gzip, deflate", + "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", + } + } + } + _getHeaders_mall(method) { + if (method == "get") { + return { + "Host": "mall.gacmotor.com", + "Connection": "keep-alive", + "Accept": "application/json, text/plain, */*", + "User-Agent": "Mozilla/5.0 (Linux; Android 10; MI 8 Lite Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/1110017 MMWEBSDK/20230405 MMWEBID/2585 MicroMessenger/8.0.35.2360(0x2800235D) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64", + "token": this.mallToken, + "Content-Type": "application/json;charset=UTF-8", + "Origin": "https://mall.gacmotor.com", + "X-Requested-With": "com.tencent.mm", + "Sec-Fetch-Site": "same-origin", + "Sec-Fetch-Mode": "cors", + "Sec-Fetch-Dest": "empty", + "Referer": "https://mall.gacmotor.com/act/answer-activity-detail?id=464&taskId=7&userSubmit=0", + "Accept-Encoding": "gzip, deflate", + "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7" + } + } else { + return { + "Host": "mall.gacmotor.com", + "Connection": "keep-alive", + "Accept": "application/json, text/plain, */*", + "User-Agent": "Mozilla/5.0 (Linux; Android 10; MI 8 Lite Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/1110017 MMWEBSDK/20230405 MMWEBID/2585 MicroMessenger/8.0.35.2360(0x2800235D) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64", + "token": this.mallToken, + "Content-Type": "application/json;charset=UTF-8", + "Origin": "https://mall.gacmotor.com", + "X-Requested-With": "com.tencent.mm", + "Sec-Fetch-Site": "same-origin", + "Sec-Fetch-Mode": "cors", + "Sec-Fetch-Dest": "empty", + "Referer": "https://mall.gacmotor.com/act/answer-activity-detail?id=464&taskId=7&userSubmit=0", + "Accept-Encoding": "gzip, deflate", + "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7" + } + } + } +} + +async function start() { + if (process.env["gacmotorPost"] == "true") { + $.log(`已开启发帖`) + } else { + $.log(`未开启发帖`) + } + if (process.env["gacmotorComment"] == "true") { + $.log(`已开启评论`) + } else { + $.log(`未开启评论`) + } + if (process.env["gacmotorLuckyDram"] && Number(process.env["gacmotorLuckyDram"]) !== NaN) { + $.log(`已设置抽奖次数[${process.env["gacmotorLuckyDram"]}]次`) + } else { + $.log(`未设置抽奖次数 默认抽奖1次`) + } + + let taskall = []; + + for (let user of userList) { + await user.main() + } + await Promise.all(taskall); + $.msg($.name, "广汽传祺任务 Over", "smallfawn 提醒您 天冷加衣") +} + +!(async () => { + if (!(await checkEnv())) return; + if (userList.length > 0) { + await start(); + } + + await SendMsg($.logs.join("\n")) +})() + .catch((e) => console.log(e)) + .finally(() => $.done()); + +//******************************************************** +/** + * 变量检查与处理 + * @returns + */ +async function checkEnv() { + ReadFiles(GacmotorCookies) + if (TempAccount.length <= 0) { + return + } + for (let cookie of TempAccount) { + if (cookie["AT"] && cookie["RT"]) { + let n = `${cookie["AT"]}#${cookie["RT"]}` + userList.push(new UserInfo(n)); + } else { + //不可为空 + } + } + return console.log(`共找到${userList.length}个账号`), true; //true == !0 +} + +///////////////////////////////////////////////////////////////////////////////////// +function httpRequest(options) { + if (!options["method"]) { + return console.log(`请求方法不存在`); + } + if (!options["fn"]) { + console.log(`函数名不存在`); + } + return new Promise((resolve) => { + $[options.method](options, (err, resp, data) => { + try { + if (err) { + $.logErr(err); + } else { + try { + resp = JSON.parse(resp); + } catch (error) { } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(resp); + } + }); + }); +} +async function SendMsg(message) { + if (!message) return; + if ($.isNode()) { + await notify.sendNotify($.name, message) + } else { + $.msg($.name, '', message) + } +} +// prettier-ignore +function Env(t, s) { return new (class { constructor(t, s) { (this.name = t), (this.data = null), (this.dataFile = "box.dat"), (this.logs = []), (this.logSeparator = "\n"), (this.startTime = new Date().getTime()), Object.assign(this, s), this.log("", `\ud83d\udd14${this.name},\u5f00\u59cb!`) } 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 } getScript(t) { return new Promise((s) => { this.get({ url: t }, (t, e, i) => s(i)) }) } runScript(t, s) { return new Promise((e) => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let o = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); (o = o ? 1 * o : 20), (o = s && s.timeout ? s.timeout : o); const [h, a] = i.split("@"), r = { url: `http://${a}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: o }, headers: { "X-Key": h, Accept: "*/*" }, }; this.post(r, (t, s, i) => e(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), s = this.path.resolve(process.cwd(), this.dataFile), e = this.fs.existsSync(t), i = !e && this.fs.existsSync(s); if (!e && !i) return {}; { const i = e ? t : s; 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), s = this.path.resolve(process.cwd(), this.dataFile), e = this.fs.existsSync(t), i = !e && this.fs.existsSync(s), o = JSON.stringify(this.data); e ? this.fs.writeFileSync(t, o) : i ? this.fs.writeFileSync(s, o) : this.fs.writeFileSync(t, o) } } lodash_get(t, s, e) { const i = s.replace(/\[(\d+)\]/g, ".$1").split("."); let o = t; for (const t of i) if (((o = Object(o)[t]), void 0 === o)) return e; return o } lodash_set(t, s, e) { return Object(t) !== t ? t : (Array.isArray(s) || (s = s.toString().match(/[^.[\]]+/g) || []), (s.slice(0, -1).reduce((t, e, i) => Object(t[e]) === t[e] ? t[e] : (t[e] = Math.abs(s[i + 1]) >> 0 == +s[i + 1] ? [] : {}), t)[s[s.length - 1]] = e), t) } getdata(t) { let s = this.getval(t); if (/^@/.test(t)) { const [, e, i] = /^@(.*?)\.(.*?)$/.exec(t), o = e ? this.getval(e) : ""; if (o) try { const t = JSON.parse(o); s = t ? this.lodash_get(t, i, "") : s } catch (t) { s = "" } } return s } setdata(t, s) { let e = !1; if (/^@/.test(s)) { const [, i, o] = /^@(.*?)\.(.*?)$/.exec(s), h = this.getval(i), a = i ? ("null" === h ? null : h || "{}") : "{}"; try { const s = JSON.parse(a); this.lodash_set(s, o, t), (e = this.setval(JSON.stringify(s), i)) } catch (s) { const h = {}; this.lodash_set(h, o, t), (e = this.setval(JSON.stringify(h), i)) } } else e = this.setval(t, s); return e } 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, s) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, s) : this.isQuanX() ? $prefs.setValueForKey(t, s) : this.isNode() ? ((this.data = this.loaddata()), (this.data[s] = t), this.writedata(), !0) : (this.data && this.data[s]) || 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, s = () => { }) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? $httpClient.get(t, (t, e, i) => { !t && e && ((e.body = i), (e.statusCode = e.status)), s(t, e, i) }) : this.isQuanX() ? $task.fetch(t).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t)) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, s) => { try { const e = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(e, null), (s.cookieJar = this.ckjar) } catch (t) { this.logErr(t) } }).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h, } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t))) } post(t, s = () => { }) { if ((t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), delete t.headers["Content-Length"], this.isSurge() || this.isLoon())) $httpClient.post(t, (t, e, i) => { !t && e && ((e.body = i), (e.statusCode = e.status)), s(t, e, i) }); else if (this.isQuanX()) (t.method = "POST"), $task.fetch(t).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: e, ...i } = t; this.got.post(e, i).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t)) } } time(t) { let s = { "M+": new Date().getMonth() + 1, "d+": new Date().getDate(), "H+": new Date().getHours(), "m+": new Date().getMinutes(), "s+": new Date().getSeconds(), "q+": Math.floor((new Date().getMonth() + 3) / 3), S: new Date().getMilliseconds(), }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (new Date().getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in s) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? s[e] : ("00" + s[e]).substr(("" + s[e]).length))); return t } msg(s = t, e = "", i = "", o) { const h = (t) => !t || (!this.isLoon() && this.isSurge()) ? t : "string" == typeof t ? this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : void 0 : "object" == typeof t && (t["open-url"] || t["media-url"]) ? this.isLoon() ? t["open-url"] : this.isQuanX() ? t : void 0 : void 0; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(s, e, i, h(o)) : this.isQuanX() && $notify(s, e, i, h(o))); let logs = ['', '==============📣系统通知📣==============']; logs.push(t); e ? logs.push(e) : ''; i ? logs.push(i) : ''; console.log(logs.join('\n')); this.logs = this.logs.concat(logs) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, s) { const e = !this.isSurge() && !this.isQuanX() && !this.isLoon(); e ? this.log("", `\u2757\ufe0f${this.name},\u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name},\u9519\u8bef!`, t) } wait(t) { return new Promise((s) => setTimeout(s, t)) } done(t = {}) { const s = new Date().getTime(), e = (s - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name},\u7ed3\u675f!\ud83d\udd5b ${e}\u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } })(t, s) } diff --git a/gqft.js b/gqft.js new file mode 100644 index 0000000..52c7efe --- /dev/null +++ b/gqft.js @@ -0,0 +1,879 @@ +/** + * 广汽丰田新能源 APP + *该脚本高版本的青龙会运行不了,本人青龙版本2.11.3 + *有问题联系3288588344 + *频道:https://pd.qq.com/s/672fku8ge + * scriptVersionNow = "0.0.7" + * cron 17 18 * * * gqft.js + * 23/01/23 积分任务: + * 23/06/07 修复加密 + * 23/06/14 修复CK时效短 and CK失效快 的问题 + * 23/06/15 修复各种问题 适配IOS 修复青龙版本变量自动转换问题 + * 23/08/29 修改变量为请求头的Authorization + * 24/03/25 COOKIES格式改 适应一天过期一次的API CK + * ===== 青龙--配置文件 ===== + * # 项目名称 脚本所需JS依赖 crypto-js jsencrypt 缺一不可 + * 变量文件的名字为 gqft.json 变量文件的名字为 gqft.json 变量文件的名字为 gqft.json(变量文件放在tl库的脚本目录里) + * COOKIE改为文件模式 参考https://github.com/smallfawn/QLScriptPublic/blob/main/cookies/gqft.json + * 只需要填每一项中的 enData和enKey即可 记得必须符合JSON格式 可以自行去验证 + * 本版本为测试版 如有BUG 及时联系 群 1021185005 + * enData和enKey是登录接口返回的响应 其他接口均不可以用 接口地址 + * 怎么抓登录包? 退出账号! 打开抓包 登录账号 完毕后关闭抓包(短信登录) + * https://gw.nevapp.gtmc.com.cn/ha/iam/api/sec/oauth/token + * 例如 + * [ + { + "acToken": "", + "rtToken": "", + "enData":"axi....", + "enKey":"Op9/OAvVPbIbb5reyq2TR0YB2PqvHbwq1nOqI6e2lSfWh5DYPV9dSmthwxak/Wp8utQ+ox01mGHL3G3JqNYxreSrGFe9qPHCsoRhD/ei0Q0mYQfr/LCJuWm+YwJKoemGnho6Pz6VHdxcarkVUxpa1j87wmOGr7clxXEhfXCCdM4lDrD1RSBlwLwKNAaLkId/JjrOZyyKnn43Pzuxbfgu0Kg+/8MpJ05L4gI9hqeTev6M63k7oVtyxVLiBYymzzfa7MZHj4M4SfD7owkpX5oLr2Uaps4t+H5KZjia3+Jy/l5/lFXw7am9DBsLBriKKgs1nV8wUC1gIz9L/jcU6IcDBA==" + }, + { + "acToken": "", + "rtToken": "", + "enData":"axisa....", + "enKey":"Op9/OAvVPbIbb5reyq2TR0YB2PqvHbwq1nOqI6e2lSfWh5DYPV9dSmthwxak/Wp8utQ+ox01mGHL3G3JqNYxreSrGFe9qPHCsoRhD/ei0Q0mYQfr/LCJuWm+YwJKoemGnho6Pz6VHdxcarkVUxpa1j87wmOGr7clxXEhfXCCdM4lDrD1RSBlwLwKNAaLkId/JjrOZyyKnn43Pzuxbfgu0Kg+/8MpJ05L4gI9hqeTev6M63k7oVtyxVLiBYymzzfa7MZHj4M4SfD7owkpX5oLr2Uaps4t+H5KZjia3+Jy/l5/lFXw7am9DBsLBriKKgs1nV8wUC1gIz9L/jcU6IcDBA==" + } +] +* 如果提示 TypeError:Cannot read properties of null (reading 'split') 那么则可以使用默认的enKey + */ + +const $ = new Env("广汽丰田"); +//const ckName = "gqft_data"; + + +//-------------------- 一般不动变量区域 ------------------------------------- +const { log } = require("console"); +const Notify = 1; //0为关闭通知,1为打开通知,默认为1 +const notify = $.isNode() ? require("./sendNotify") : ""; +let envSplitor = ["&"]; //多账号分隔符 +let msg = ""; +let userList = []; +let userIdx = 0; +let userCount = 0; +let scriptVersionLatest; //最新版本 +let scriptVersionNow = "0.0.6"; //现在版本 +window = {}; +//---------------------- 自定义变量区域 ----------------------------------- +const CryptoJS = require("crypto-js"); +const JSEncrypt = require("jsencrypt"); +let appId_h5 = "a41022a5-ad1e-eb24-4fb4-7d1b7a7958f2"; //appId +let appKey_h5 = "52ae440d-8fec-5a8b-76ee-58eb6bea62f8"; //appSigSecret +let appId_android = "f31a4469-f9b9-4c10-2e97-bf2100a6d5a0"; //appId +let appKey_android = "29012175-8d3c-b89b-a61d-4ecf65ff2e3c"; //appSigSecret +//--------------------------------------------------------- + +async function start() { + //await getVersion("smallfawn/QLScriptPublic/main/gqft.js"); + log('todoList:CK改变了 修复CK时效短 and CK失效快 的问题 修复refreshToken已改变问题\nupdate:IOS适配 尽可能青龙高版本适配') + log("tips:可能有未知的BUG,如果遇到请截图和发送自己的CK给github lssues或者加群发给管理") + log(`\n====== 当前版本:${scriptVersionNow} 📌 最新版本:${scriptVersionLatest} ======`); + //await getNotice(); + taskall = []; + /*for (let user of userList) { + //taskall.push(await user.getToken()); + await $.wait(1000); + } + await Promise.all(taskall);*/ + taskall = []; + for (let user of userList) { + if (user.ckStatus) { + taskall.push(await user.decrypt()); + await $.wait(1000); + } + } + await Promise.all(taskall); + log("\n================== 用户信息 ==================\n"); + taskall = []; + for (let user of userList) { + if (user.ckStatus) { + taskall.push(await user.user_info()); + await $.wait(1000); + } + } + await Promise.all(taskall); + + log("\n================== 执行任务 ==================\n"); + taskall = []; + for (let user of userList) { + if (user.ckStatus) { + taskall.push(await user.task_signin()); + await $.wait(1000); + } + } + await Promise.all(taskall); + taskall = []; + for (let user of userList) { + if (user.ckStatus) { + taskall.push(await user.art_list()); + await $.wait(1000); + } + } + await Promise.all(taskall); +} + +class UserInfo { + constructor(str) { + this.index = ++userIdx; + //this.ck = str.split("&")[0]; + //log(this.ck) + this.ckStatus = true; + this.nickname = null; + this.User_encryptData = "" + this.User_encryptKey = "" + this.deEnData = "" + this.deEnDataKey = "" + this.deEnDataIv = "" + this.User_Data = "" + this.enData = str.split("#")[0] + this.enKey = str.split("#")[1] + this.User_AccessToken = null; + this.User_RefreshToken = null + this.isChange = false + this.headerGet_h5 = {}; + } + getNonce(type) { + return type === "h5" + ? Array.from({ length: 6 }, () => + Math.floor(Math.random() * 36).toString(36) + ).join("") + : type === "android" + ? Math.floor(Math.random() * 900000) + 100000 + : ""; + } + async decrypt() { + let key = getRSADecryptResult_android(this.enKey) + //console.log(key) + let aesDekey = key.split("@DS@")[0]; + let aesDeiv = key.split("@DS@")[1]; + let result = AES_CBC_Decrypt(this.enData, aesDekey, aesDeiv); + if (result && "body" in result) { + this.User_AccessToken = result.body.accessToken + this.User_RefreshToken = result.body.refreshToken + let data = await readFile() + // 假设您有一个名为data的数组 + let modifiedData = data.map(item => { + if (item.enKey == this.enKey) { + return { ...item, acToken: result.body.accessToken, rfToken: result.body.refreshToken }; // 修改属性值 + } else { + return item; // 不需要修改的项直接返回 + } + }); + let res = await writeFile(modifiedData) + } + } + getHeadersPost_android() { + let ts = Date.now() + let nonce = this.getNonce("android"); + return { + //'Connection': 'Keep-Alive', + //'Content-Length': 402, + operateSystem: "android", + appVersion: "1.4.4", + nonce: nonce, + "Content-Type": "application/json", + "User-Agent": "okhttp/4.8.1", + appId: appId_android, + Accept: "application/json", + Referer: + "https://app.nevapp.gtmc.com.cn/h5/pages/mine/task?noAutoSign=true", + //'Accept-Encoding': 'gzip', + "timestamp": ts, + "Authorization": "Bearer " + this.User_AccessToken, + 'sig': CryptoJS.MD5( + ts + + this.User_AccessToken + + nonce + + appId_android + + appKey_android + ).toString() + }; + } + getHeadersGet_android() { + let ts = Date.now() + let nonce = this.getNonce("android"); + return { + //'Connection': 'Keep-Alive', + operateSystem: "android", + appVersion: "1.4.4", + nonce: nonce, + "User-Agent": "okhttp/4.8.1", + appId: appId_android, + Accept: "application/json", + //'Referer': 'https://app.nevapp.gtmc.com.cn/h5/pages/mine/task?noAutoSign=true', + //'Accept-Encoding': 'gzip', + "timestamp": ts, + "Authorization": "Bearer " + this.User_AccessToken, + 'sig': CryptoJS.MD5( + ts + + this.User_AccessToken + + nonce + + appId_android + + appKey_android + ).toString() + } + } + getHeadersPost_h5() { + let ts = Date.now() + let nonce = this.getNonce("h5"); + return { + Connection: "keep-alive", + //'Content-Length': 402, + operateSystem: "h5", + nonce: nonce, + "Content-Type": "application/json", + "User-Agent": + "Mozilla/5.0 (Linux; Android 10; MI 8 Lite Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/81.0.4044.138 Mobile Safari/537.36 BundleId/com.gtmc.nevapp DSApp/1.4.4 StatusBarHeight/30 BottomBarHeight/0", + appId: appId_h5, + Accept: "*/*", + Origin: "https://app.nevapp.gtmc.com.cn", + "X-Requested-With": "com.gtmc.nevapp", + "Sec-Fetch-Site": "same-site", + "Sec-Fetch-Mode": "cors", + "Sec-Fetch-Dest": "empty", + Referer: + "https://app.nevapp.gtmc.com.cn/h5/pages/mine/task?noAutoSign=true", + "Accept-Encoding": "gzip, deflate", + "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", + "timestamp": ts, + "Authorization": "Bearer " + this.User_AccessToken, + 'sig': CryptoJS.MD5( + ts + + this.User_AccessToken + + nonce + + appId_h5 + + appKey_h5 + ).toString() + } + } + async getToken() { //初次获取token + //log(this.ck) + this.ck = this.ck.replaceAll('/u003d', "="); // 把ASCII码为61的字符替换为等号 + + if ('QL_BRANCH' in process.env) { + //log(`是青龙环境`) + if (!compareVersion(process.env['QL_BRANCH']) || process.env['QL_BRANCH'] == 'master') { //如果小于返回true !true为false !false为 true + //log(`版本大于15.0`) + let regexp = new RegExp('\\\\', 'g'); + this.ck = this.ck.replace(regexp, '/'); + } + } + //log(this.ck) + + try { + this.ck = JSON.parse(this.ck); + } catch (e) { + this.ck = this.ck + } + + this.User_encryptData = this.ck["encryptData"] + this.User_encryptKey = this.ck["encryptKey"] + //log(this.User_encryptKey) + this.deEnData = getRSADecryptResult_android(this.User_encryptKey) + //log( this.deEnData) + if (!this.deEnData) { + this.deEnDataKey = 'ajgekbmgfkasefqk' + this.deEnDataIv = "cd1d955be8e4c11a" + this.User_Data = AES_CBC_Decrypt(this.User_encryptData, this.deEnDataKey, this.deEnDataIv) + this.User_AccessToken = this.User_Data["body"]['accessToken'] + this.User_RefreshToken = this.User_Data["body"]['refreshToken'] + await this.refresh_token() + } else { + //log(this.deEnData) + this.deEnDataKey = this.deEnData.split("@DS@")[0]; + this.deEnDataIv = this.deEnData.split("@DS@")[1]; + this.User_Data = AES_CBC_Decrypt(this.User_encryptData, this.deEnDataKey, this.deEnDataIv) + this.User_AccessToken = this.User_Data["body"]['accessToken'] + this.User_RefreshToken = this.User_Data["body"]['refreshToken'] + await this.refresh_token() + } + + } + + async user_info() { + try { + let options = { + url: `https://gw.nevapp.gtmc.com.cn/main/api/community/lgn/user/getLoginUserInfo`, + headers: this.getHeadersGet_android(), + }, + result = await httpRequest(options); + //console.log(options); + //console.log(result); + if (result.header.code == 10000000) { + DoubleLog(`账号[${this.index}] 欢迎用户: [${result.body.baseInfo.nickname}]🎉`); + this.ckStatus = true; + this.nickname = result.body.baseInfo.nickname + } else if (result.header.code == 10001007) { + DoubleLog(`账号[${this.index}] 用户查询:失败 ❌ 了呢,原因Token过期,现在即将刷新token!`); + await this.refresh_token() + this.ckStatus = false; + console.log(result); + } else if (result.header.code = 10009999) { + DoubleLog(`账号[${this.index}] 用户查询:失败 ❌ 了呢,原因refreshToken已改变,请重新获取CK!`); + this.ckStatus = false; + } else { + DoubleLog(`账号[${this.index}] 用户查询:失败 ❌ 了呢,原因未知!`); + this.ckStatus = false; + console.log(result); + } + } catch (e) { + console.log(e); + } + } + + + /** + * 签到 + */ + async task_signin() { + try { + let YO = `${KO()}@DS@${KO()}`; + let key = YO.split("@DS@")[0]; + let iv = YO.split("@DS@")[1]; + /*console.log(YO); + log(key) + log(iv)*/ + let bodydata = {}; + let options = { + url: `https://gw.nevapp.gtmc.com.cn/main/api/marketing/lgn/task/sec/signin`, + headers: this.getHeadersPost_h5(), + body: JSON.stringify({ + encryptKey: getRSAEncryptResult(YO), + encryptData: AES_CBC_Encrypt(bodydata, key, iv), + }), + }, + result = await httpRequest(options); + //console.log(options); + //console.log(result); + if ("encryptData" in result) { + let rsaDeData = result.encryptKey; + let rsaDeResult = getRSADecryptResult(rsaDeData); + let aesDeData = result.encryptData; + let aesDekey = rsaDeResult.split("@DS@")[0]; + let aesDeiv = rsaDeResult.split("@DS@")[1]; + let deResult = AES_CBC_Decrypt(aesDeData, aesDekey, aesDeiv); + if ((deResult.header.code = "10000000")) { + DoubleLog(`账号[${this.index}] 签到: ${deResult.header.message}🎉`); + } else { + DoubleLog(`账号[${this.index}] 签到: ${deResult.header.message}`); + } + } else { + DoubleLog(`账号[${this.index}] 签到:失败 ❌ 了呢,原因未知!`); + } + } catch (e) { + console.log(e); + } + } + /** + * 阅读 + * @param {*} artId + */ + async task_read(artId) { + try { + let YO = `${KO()}@DS@${KO()}`; + let key = YO.split("@DS@")[0]; + let iv = YO.split("@DS@")[1]; + /*console.log(YO); + log(key) + log(iv)*/ + let bodydata = { postId: artId }; + let options = { + url: `https://gw.nevapp.gtmc.com.cn/main/api/community/sec/post/detail`, + headers: this.getHeadersPost_h5(), + body: JSON.stringify({ + encryptKey: getRSAEncryptResult(YO), + encryptData: AES_CBC_Encrypt(bodydata, key, iv), + }), + }, + result = await httpRequest(options); + //console.log(options); + //console.log(result); + if ("encryptData" in result) { + let rsaDeData = result.encryptKey; + let rsaDeResult = getRSADecryptResult(rsaDeData); + let aesDeData = result.encryptData; + let aesDekey = rsaDeResult.split("@DS@")[0]; + let aesDeiv = rsaDeResult.split("@DS@")[1]; + let deResult = AES_CBC_Decrypt(aesDeData, aesDekey, aesDeiv); + if ((deResult.header.code = "10000000")) { + DoubleLog( + `账号[${this.index}] 阅读文章: ${deResult.header.message}🎉` + ); + } else { + DoubleLog( + `账号[${this.index}] 阅读文章: ${deResult.header.message}` + ); + } + } else { + DoubleLog(`账号[${this.index}] 阅读文章:失败 ❌ 了呢,原因未知!`); + } + } catch (e) { + console.log(e); + } + } + /** + * 点赞帖子 + */ + async task_like(artId) { + + try { + let YO = `${KO()}@DS@${KO()}`; + let key = YO.split("@DS@")[0]; + let iv = YO.split("@DS@")[1]; + /*console.log(YO); + log(key) + log(iv)*/ + let bodydata = { subjectId: artId, subjectType: "POST" }; + let options = { + url: `https://gw.nevapp.gtmc.com.cn/main/api/community/lgn/sec/user/like`, + headers: this.getHeadersPost_android(), + body: JSON.stringify({ + encryptKey: getRSAEncryptResult(YO), + encryptData: AES_CBC_Encrypt(bodydata, key, iv), + }), + }, + result = await httpRequest(options); + //console.log(options); + //console.log('点赞得结果',result); + if ("encryptData" in result) { + let rsaDeData = result.encryptKey; + let rsaDeResult = getRSADecryptResult_android(rsaDeData); + let aesDeData = result.encryptData; + let aesDekey = rsaDeResult.split("@DS@")[0]; + let aesDeiv = rsaDeResult.split("@DS@")[1]; + let deResult = AES_CBC_Decrypt(aesDeData, aesDekey, aesDeiv); + if ((deResult.header.code = "10000000")) { + DoubleLog( + `账号[${this.index}] 点赞文章: ${deResult.header.message}🎉` + ); + } else { + DoubleLog( + `账号[${this.index}] 点赞文章: ${deResult.header.message}` + ); + } + } else { + DoubleLog(`账号[${this.index}] 点赞文章:失败 ❌ 了呢,原因未知!`); + } + } catch (e) { + console.log(e); + } + } + /** + * 分享 + */ + async task_share(artId) { + try { + let YO = `${KO()}@DS@${KO()}`; + let key = YO.split("@DS@")[0]; + let iv = YO.split("@DS@")[1]; + /*console.log(YO); + log(key) + log(iv)*/ + let bodydata = { subjectId: artId, subjectType: "POST" }; + let options = { + url: `https://gw.nevapp.gtmc.com.cn/main/api/community/lgn/sec/user/forward`, + headers: this.getHeadersPost_h5(), + body: JSON.stringify({ + encryptKey: getRSAEncryptResult(YO), + encryptData: AES_CBC_Encrypt(bodydata, key, iv), + }), + }, + result = await httpRequest(options); + //console.log(options); + //console.log(result); + if ("encryptData" in result) { + let rsaDeData = result.encryptKey; + let rsaDeResult = getRSADecryptResult(rsaDeData); + let aesDeData = result.encryptData; + let aesDekey = rsaDeResult.split("@DS@")[0]; + let aesDeiv = rsaDeResult.split("@DS@")[1]; + let deResult = AES_CBC_Decrypt(aesDeData, aesDekey, aesDeiv); + if ((deResult.header.code = "10000000")) { + DoubleLog( + `账号[${this.index}] 分享文章: ${deResult.header.message}🎉` + ); + } else { + DoubleLog( + `账号[${this.index}] 分享文章: ${deResult.header.message}` + ); + } + } else { + DoubleLog(`账号[${this.index}] 分享文章:失败 ❌ 了呢,原因未知!`); + } + } catch (e) { + console.log(e); + } + } + /** + * 帖子列表 + * + */ + async art_list() { + try { + let bodydata = { queryPostType: "NEWEST", pageNo: 1, pageSize: 20 }; + let options = { + url: `https://gw.nevapp.gtmc.com.cn/main/api/community/post/page`, + headers: this.getHeadersPost_h5(), + body: JSON.stringify(bodydata), + }, + result = await httpRequest(options); + //console.log(options); + //console.log(result); + if (result.header.code == "10000000") { + for (let i = 0; i < 10; i++) { + DoubleLog(`账号[${this.index}] 文章 [${result.body.list[i].id}]`); + let artId = result.body.list[i].id; + //DoubleLog('开始浏览') + await $.wait(5000); + await this.task_read(artId); + //DoubleLog('开始点赞') + await $.wait(5000); + await this.task_like(artId); + //DoubleLog('开始分享') + await $.wait(5000); + await this.task_share(artId); + } + } else { + DoubleLog(`账号[${this.index}] 获取帖子列表:失败 ❌ 了呢,原因未知!`); + console.log(result); + } + } catch (e) { + console.log(e); + } + } + async refresh_token() { + let headers = this.getHeadersPost_android() + headers['DeviceId'] = '417d0945-b207-44ea-b185-c5673d268b81' + //headers["RegistrationID"] = '1a0018970bbcc32a71a' + try { + let YO = `${KO()}@DS@${KO()}` + let key = YO.split('@DS@')[0] + let iv = YO.split('@DS@')[1] + //console.log(YO); + //log(key) + //log(iv) + let options = { + url: `https://gw.nevapp.gtmc.com.cn/ha/iam/api/lgn/sec/checkAndUpdateToken`, + headers: headers, + body: JSON.stringify({ "encryptKey": getRSAEncryptResult(YO), "encryptData": AES_CBC_Encrypt({ "refreshToken": this.User_RefreshToken }, key, iv) }) + }, result = await httpRequest(options); + //console.log(options); + //console.log(result); + if ("encryptData" in result) { + let rsaDeData = result.encryptKey; + let rsaDeResult = getRSADecryptResult_android(rsaDeData); + //log(rsaDeResult) + let aesDeData = result.encryptData; + let aesDekey = rsaDeResult.split("@DS@")[0]; + let aesDeiv = rsaDeResult.split("@DS@")[1]; + let deResult = AES_CBC_Decrypt(aesDeData, aesDekey, aesDeiv); + //log(deResult) + if (deResult.header.code == "10000000") { + // 假设您有一个名为data的数组 + let data = await readFile() + let newData = data.filter(item => item.enKey !== this.enKey); + + this.User_AccessToken = deResult["body"]["accessToken"] + this.User_RefreshToken = deResult["body"]["refreshToken"] + + newData.push({ acToken: this.User_AccessToken, rfToken: this.User_RefreshToken, enData: result.encryptData, enKey: result.encryptKey }) + let writeResult = await writeFile(newData) + if (writeResult) { + console.log(`刷新CK && 写入文件成功`) + await this.user_info() + await this.task_signin() + await this.art_list() + } else { + console.log(`刷新CK && 写入文件失败`) + } + this.ckStatus = true + } else { + this.ckStatus = false + } + } else { + this.ckStatus = false + } + } catch (e) { + console.log(e); + } + } +} +function readFile() { + const fs = require('fs'); + let file = fs.existsSync("./gqft.json"); + if (!file) { console.log("./gqft.json" + "文件不存在"); return [] } + return new Promise((resolve, reject) => { + fs.readFile('./gqft.json', 'utf8', function (err, data) { + if (err) { + reject(err); + } else { + try { + data = JSON.parse(data); + } catch (error) { + + } + resolve(data); + } + }); + }); +} +function writeFile(data) { + const fs = require('fs'); + return new Promise((resolve, reject) => { + fs.writeFile("./gqft.json", JSON.stringify(data, null, 2), (err) => { + if (err) { + reject(false); + } else { + resolve(true); + } + }); + }); +} + +!(async () => { + if (!(await checkEnv())) return; + + if (userList.length > 0) { + await start(); + } + await SendMsg(msg); +})() + .catch((e) => console.log(e)) + .finally(() => $.done()); + +//******************************************************** +// 变量检查与处理 +async function checkEnv() { + let arr = await readFile() + //console.log(arr) + + if (arr && arr.length <= 0) return console.log("未找到CK") + let tmp = [] + + for (let i of arr) { + + tmp.push(`${i.enData}#${i.enKey}`) + } + let userCookie = tmp.join("&"); + if (userCookie) { + //console.log(userCookie); + let e = envSplitor[0]; + for (let o of envSplitor) + if (userCookie.indexOf(o) > -1) { + e = o; + break; + } + for (let n of userCookie.split(e)) n && userList.push(new UserInfo(n)); + userCount = userList.length; + } else { + console.log("未找到CK"); + return; + } + return console.log(`共找到${userCount}个账号`), true; //true == !0 +} +///////////////////////////////////////////////////////////////////////////////////// +function httpRequest(options, method) { + method = options.method + ? options.method.toLowerCase() + : options.body + ? "post" + : "get"; + return new Promise((resolve) => { + $[method](options, (err, resp, data) => { + try { + if (err) { + console.log(`${method}请求失败`); + $.logErr(err); + } else { + if (data) { + typeof JSON.parse(data) == "object" + ? (data = JSON.parse(data)) + : (data = data); + resolve(data); + } else { + console.log(`请求api返回数据为空,请检查自身原因`); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} +/** + * 判断版本号是否小于 V2.15.0 小于返回true + * @param {*} version + * @returns + */ +function compareVersion(version) { + const currentVersion = 'v2.12.2'; + const current = currentVersion.substring(1).split('.'); + const target = version.substring(1).split('.'); + for (let i = 0; i < current.length; i++) { + const c = parseInt(current[i]); + const t = parseInt(target[i] || 0); + if (c > t) { + return true; + } else if (c < t) { + return false; + } + } + return false; +} +/** + * 16位随机数 + * @returns + */ +function KO() { + let e = Math.random().toString(36).substr(2); + for (; e.length < 16;) e += Math.random().toString(36).substr(2); + return (e = e.substr(0, 16)), e; +} +function AES_CBC_Encrypt(data, key, iv) { + key = CryptoJS.enc.Utf8.parse(key); + iv = CryptoJS.enc.Utf8.parse(iv); + if ("object" == typeof data) + try { + data = JSON.stringify(data); + } catch (r) { + console.log("encrypt error:", r); + } + data = CryptoJS.enc.Utf8.parse(data); + //console.log(data); + return CryptoJS.AES.encrypt(data, key, { + iv: iv, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.Pkcs7, + }).ciphertext.toString(CryptoJS.enc.Base64); +} + +//逆向参数url https://app.nevapp.gtmc.com.cn/h5/assets/index.a0bf569f.js + + + + +function getRSAEncryptResult(data) { + window = {}; + let crypt = new JSEncrypt(); + let publicKey = + "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA49jxpFBAoEslNYrHb0wT8nCpGBn3hvjgToNkp7lFpsSeRS7WbHoFJEvmf1U83cHrbTzRFRowPft/FGBw6/6dZcmMjMgz1n0FWlqk0d7QjEDL+t9Dj9tH9e/qdGfJ3bzR0ZgpgQMpKpx5I5fcEgzMYnHWGLZBY+v+PlPTN/1mz0nnRtIIxb8YuZZFvadfGTC8jeD7tMERpd5zENml5cLbVujENsag9AIpvLdvR6fSewi3l9QmssWpty50UpcAWsvAs+ExRYyUe/s1lwfSdSciW6Lrj4sp4MMaWifdTQUbKKEeuRugEqJSDrxhxoybEbSbl2CYaTR8kifZ1n+lcAh6cQIDAQAB"; + crypt.setPublicKey(publicKey); + // 加密 + //log(`待加密数据${data}`) + var enc = crypt.encrypt(data); + return enc; +} +function getRSADecryptResult(data) { + window = {}; + let crypt = new JSEncrypt(); + let privateKey = + "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCaKMrIwU9els3xVszLtzvCJT+Kc8mosvygguXo0f+IqjSxvfCNbtobxIckxkBK7ipY8CK9k8WjcSsyIUd132CsGvFoUejD+sf+53wEy4z1YOgeoatll5/wMFGGZfDEyRbYd7WGTGPBZ6goENqplN5AJW6fIq8SskWZa59uq1E3Q9rM8iLg3n+955xvEb412vmTPsEWYL2qc6HUpEFxpXAg+CWjthYihZKkeOgQFr9LV3sB5bRAgtoXf/dnuWMK1jg4z7efaAxxNovQfRWXDEcgiRONmuS+l+M2y3YoPt1EFYSOZuU5GepuPPDFMxoLJ1CE2pk20ZUFIrgOisSICnkdAgMBAAECggEAKjVxEHadXLC9wo6ZlE2fNxErzKTXWjFnqiss+ApHhQvVUbVH3/GyFlhBCHifseR0A9X8LRwAyTd7NEaYYlW/CmB2KLIEoWRQziJjeoyhE65s37Y0T6SsTf9s0vembLsCXlKoiRTxW0seZ5n1xOjV0YpuN3Qvq1bUZ6VoCc0ud4rU09gDI8nDEkS0sBZbV8wVxpksoksX7YdpgJtqCMezOdnY9LqWiC0Y1km9szaNRr3X5rGTVJ+ZnTu2votXdKCMzVLXE/hm2eMRAk2droOzwKFLYlijZZg7m1SfNWlSCEelPKPRmv2RnoIGXn6EvqXLLT4zg4iOzh0dRrvT+BLloQKBgQD7b/x8aLfVvv5/dBFDN6exXpSY3gvsXhb3GhE/DO8dHRN1qcJt2ocriJEbZnD5F2DAQIT+DdG1Uihg9bTinDbhtilG1PdWQIqIcxRbMiJjtWIIEkTpFVnShZ4VNe56lseAAxAPG8z5Wzy25HiIUovnH5CiZiKesqRbkILjsrtiowKBgQCc9OpdmS38HSizOZ4Mieg3nkCm+OCZQAuIQqokALUC/Gb8sae2ZO6GGtdr6+Xo8B/WMlkmapNEFqSSE3xepjR9O1J9efvp3BJ2j/1UTO0NPlcm0lyijG3epqx8iaWJWF2wezs9w5qZtFUve/5um88ztbuhMNbgFdVIPGN9BoQxPwKBgQCCaqayvPpFkwicgU6G5/JCLMW0uM/EbVVKHCo/4uyP1EoIqOHhawzbhr2FUdBdU0Pq1ExnHjHc891f1XJabB6HWp30UHhuM5HnjpFLcCioQSe0+gzmPR3W9Vl2tP+adGTMQEpvG8Nov2sxjjX6t547ZoL1yTZBzHU1zTIm+sj5MwKBgAhcV3ui5DswxnE9mXirg+4qhOEgEr63FaYtfuiqDPpavZWqVPe3SqlkFqOODlIpMFj1l6AfPzb6ScvqM87K5bLiDRPYAp5DdcxRATqTWnFBJ91OiVazSkr47+k2X9YAGgWDmvVATSTw4TTFUxlLPW9Qt+zvMBMBtrnBVb9cMIB7AoGALNeRpqZKdjbvklQLMDnKyV7p9wuz669SX4LPODcMqf8q0wsL8/0jWTuyyePr8z+V/BI2SVHcT3CaBsmnNRU739DXLAcQ4R2d6Ak5zmmJrOcWl1QiQIcNZUp+fGEBTOl3YOxIFryGX15MocX6bE9JXj4k2L6P7XlfoLAme4801bI="; + crypt.setPrivateKey(privateKey); + var dec = crypt.decrypt(data); + //console.log(dec) + + //log(`解密数据${data}`) + return dec; +} +function getRSADecryptResult_android(data) { + window = {}; + let crypt = new JSEncrypt(); + let privateKey_android = + "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCvUb36V6lPOB5qmJkPzeThWN1v2+j0OYGxnnb9uaNeiMIWHk+bj0izkEzOsTwFacM9CEOKC5Oteg6dHz+M640nP1iC1aoWWeCIS7/GuKfM1xe1RnJ19gCw+yPpHiIWlltmFaINNdyF7YGh+siHex4/8/YTkQGuCRjJcynCAqfiLRkL8I5uBQUYj7SU8gWsuQSDa2OcH047cjcYRzrPYob/1q4TZgOe/jsj5n7b/a7xz/KwHWBEXeiLCQJCJQiKnvEaJ4LWq5NuKlB5+3EQoPOPw6CNtkT8Nz9B5peB2076TZDeFnjHqiG+Sk5KOpBizBtnifzXCXvFlcRQcWMXgsv/AgMBAAECggEAA1VMhVvxTh5FBcXM8y348gfcfenybeJCAvx+Sqii4IM9HWqKHO0GdtOBglSATaILIjfsAM3jiuLNMFONw8IetuZPan1hdHdU+4JlLQQJvK1COCIUvwVkUfkUX7RA9aj6J+C1agbiIHG5izjXYywGETU0Mn8JRyPJIttbqeKfCn/E8RIddw+TgPixweOjurWQt9hNA9fCe48/0xwadweCG4H+Dmv2kocCsSn6Vf0g3KSp0N0pVsxPHx67BjU3mW9rt4sv8gwt2PoxDJYhxbYWwj8WeRCDSSpYsTlskXLkh71VFKLg2fr/BrZgH9lMMdpSGO79mZcrP45O2pIS0MfkcQKBgQDZ3uiL+GgmhYI3+7pITAloFUVjkJISi9zbHxIlXK9r5sfQRxYIIyC76pmkLFlPD+Z2YnX4krWs1pWu4GhgXpE87VmoUpujj8o1MAxF2iXpLfLW6XB+iEU92n6gAo4VEZKHdzw0rR9hlfW9Q0oXPK2TtcN3iscePZTVt6rlGnIAxQKBgQDOAG9zOCwpqMpbmvw8R1qrWCkcXmW37AsB6MkZvEJIFvukmIh7/9rH63/pEzGN863O/o61XX3s7S/n8K+MGIfrc0uy0HeCU+OYDA3p6Nih8NhyfxZysT9JZvimx1KSiW00jeXgfF78nzUqQJYQIRUW2Ja+tOJzKSxnotuTLjrd8wKBgBmJuXR+v6aUS7lINoO29ftPUvziu1yVLGQ69iOPA7kAKjfNvVVi2LluPGg0Epvj3z3NOMrUV5tU4+LFxzZUn22m3LWQSVIYzrkBUs71TTBSBH8QifErBALGE8WpxwHNN4HNhi8eg+kqbM2sj4i9whLoYWsnx0NSMJoEl3GXcfmJAoGAU2XRuO+w0VzIL7XbD/xDNMMIQbflrkQdYLSBVa3ll5HWZphqCOlYBT/OFOn0UeepIffkhoBHDrgngNrr9uenfya6KrZC67xSk6etqljd+xGqTxAsYlpnqKvLVpmzUCfa0j/wJKW1PsilmWl0VytNgmZFAQfx9XVhyMMh6b/5jQkCgYEAh/xKMPs5j3yukWIhedqobq+AU+EyZ7ZKLBif9FZsWezEnUvtRYyOryH5gt3cgN7Ux0SAFvp1eqyoQnBv0O96LeSLKsyYyvJ8yKQweqpPATAiX5vOX/EfHPshVLlbxabKinG888+qb60eyV6S1E/7GvOU1ILI6l9WQPgOYKVpbGA="; + crypt.setPrivateKey(privateKey_android); + var dec = crypt.decrypt(data); + //log(`解密数据${data}`) + return dec; +} + +function AES_CBC_Decrypt(data, key, iv) { + key = CryptoJS.enc.Utf8.parse(key); + iv = CryptoJS.enc.Utf8.parse(iv); + var decrypted = CryptoJS.AES.decrypt(data, key, { + iv: iv, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.Pkcs7, + }); + var decryptedData = decrypted.toString(CryptoJS.enc.Utf8); + try { + decryptedData = JSON.parse(decryptedData); + } catch (r) { + console.log("decrypt error:", r); + } + //console.log(decryptedData); + return decryptedData; +} + +/** + * 获取远程版本 + */ +async function getVersion(scriptUrl) { + let data = await $.getScript( + `https://ghproxy.com/https://raw.githubusercontent.com/${scriptUrl}` + ); + let regex = /scriptVersionNow\s*=\s*(["'`])([\d.]+)\1/; + let match = data.match(regex); + scriptVersionLatest = match ? match[2] : ""; +} + +async function getNotice() { + try { + let options = { + url: `https://ghproxy.com/https://raw.githubusercontent.com/smallfawn/Note/main/Notice.json`, + headers: { "User-Agent": "" }, + }, + result = await httpRequest(options); + if (!result || !("notice" in result)) { + options.url = `https://gitee.com/smallfawn/Note/raw/master/Notice.json`; + result = await httpRequest(options); + } + if (result && "notice" in result) { + DoubleLog(`${result.notice}`); + } + } catch (e) { + console.log(e); + } +} +async function hitokoto() { + // 随机一言 + try { + let options = { + url: "https://v1.hitokoto.cn/", + headers: {}, + }, + result = await httpRequest(options); + return result.hitokoto; + } catch (error) { + console.log(error); + } +} +// 双平台log输出 +function DoubleLog(data) { + if ($.isNode()) { + if (data) { + console.log(`${data}`); + msg += `\n${data}`; + } + } else { + console.log(`${data}`); + msg += `\n${data}`; + } +} +// 发送消息 +async function SendMsg(message) { + if (!message) return; + if (Notify > 0) { + if ($.isNode()) { + await notify.sendNotify($.name, message); + } else { + $.msg($.name, "", message); + } + } else { + console.log(message); + } +} + + +function Env(t, e) { 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, a) => { s.call(this, t, (t, s, r) => { t ? a(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.encoding = "utf-8", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `\ud83d\udd14${this.name}, \u5f00\u59cb!`) } getEnv() { return "undefined" != typeof $environment && $environment["surge-version"] ? "Surge" : "undefined" != typeof $environment && $environment["stash-version"] ? "Stash" : "undefined" != typeof module && module.exports ? "Node.js" : "undefined" != typeof $task ? "Quantumult X" : "undefined" != typeof $loon ? "Loon" : "undefined" != typeof $rocket ? "Shadowrocket" : void 0 } isNode() { return "Node.js" === this.getEnv() } isQuanX() { return "Quantumult X" === this.getEnv() } isSurge() { return "Surge" === this.getEnv() } isLoon() { return "Loon" === this.getEnv() } isShadowrocket() { return "Shadowrocket" === this.getEnv() } isStash() { return "Stash" === this.getEnv() } 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 a = this.getdata(t); if (a) 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, a) => e(a)) }) } runScript(t, e) { return new Promise(s => { let a = this.getdata("@chavy_boxjs_userCfgs.httpapi"); a = a ? a.replace(/\n/g, "").trim() : a; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [i, o] = a.split("@"), n = { url: `http://${o}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": i, Accept: "*/*" }, timeout: r }; this.post(n, (t, e, a) => s(a)) }).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), a = !s && this.fs.existsSync(e); if (!s && !a) return {}; { const a = s ? t : e; try { return JSON.parse(this.fs.readFileSync(a)) } 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), a = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : a ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const a = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of a) 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, a) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[a + 1]) >> 0 == +e[a + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, a] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, a, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, a, r] = /^@(.*?)\.(.*?)$/.exec(e), i = this.getval(a), o = a ? "null" === i ? null : i || "{}" : "{}"; try { const e = JSON.parse(o); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), a) } catch (e) { const i = {}; this.lodash_set(i, r, t), s = this.setval(JSON.stringify(i), a) } } else s = this.setval(t, e); return s } getval(t) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": return $persistentStore.read(t); case "Quantumult X": return $prefs.valueForKey(t); case "Node.js": return this.data = this.loaddata(), this.data[t]; default: return this.data && this.data[t] || null } } setval(t, e) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": return $persistentStore.write(t, e); case "Quantumult X": return $prefs.setValueForKey(t, e); case "Node.js": return this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0; default: return 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 = (() => { })) { switch (t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"], delete t.headers["content-type"], delete t.headers["content-length"]), this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, a) => { !t && s && (s.body = a, s.statusCode = s.status ? s.status : s.statusCode, s.status = s.statusCode), e(t, s, a) }); break; case "Quantumult X": this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: a, headers: r, body: i, bodyBytes: o } = t; e(null, { status: s, statusCode: a, headers: r, body: i, bodyBytes: o }, i, o) }, t => e(t && t.error || "UndefinedError")); break; case "Node.js": let s = require("iconv-lite"); 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: a, statusCode: r, headers: i, rawBody: o } = t, n = s.decode(o, this.encoding); e(null, { status: a, statusCode: r, headers: i, rawBody: o, body: n }, n) }, t => { const { message: a, response: r } = t; e(a, r, r && s.decode(r.rawBody, this.encoding)) }) } } post(t, e = (() => { })) { const s = t.method ? t.method.toLocaleLowerCase() : "post"; switch (t.body && t.headers && !t.headers["Content-Type"] && !t.headers["content-type"] && (t.headers["content-type"] = "application/x-www-form-urlencoded"), t.headers && (delete t.headers["Content-Length"], delete t.headers["content-length"]), this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient[s](t, (t, s, a) => { !t && s && (s.body = a, s.statusCode = s.status ? s.status : s.statusCode, s.status = s.statusCode), e(t, s, a) }); break; case "Quantumult X": t.method = s, this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: a, headers: r, body: i, bodyBytes: o } = t; e(null, { status: s, statusCode: a, headers: r, body: i, bodyBytes: o }, i, o) }, t => e(t && t.error || "UndefinedError")); break; case "Node.js": let a = require("iconv-lite"); this.initGotEnv(t); const { url: r, ...i } = t; this.got[s](r, i).then(t => { const { statusCode: s, statusCode: r, headers: i, rawBody: o } = t, n = a.decode(o, this.encoding); e(null, { status: s, statusCode: r, headers: i, rawBody: o, body: n }, n) }, t => { const { message: s, response: r } = t; e(s, r, r && a.decode(r.rawBody, this.encoding)) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let a = { "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 a) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? a[e] : ("00" + a[e]).substr(("" + a[e]).length))); return t } queryStr(t) { let e = ""; for (const s in t) { let a = t[s]; null != a && "" !== a && ("object" == typeof a && (a = JSON.stringify(a)), e += `${s}=${a}&`) } return e = e.substring(0, e.length - 1), e } msg(e = t, s = "", a = "", r) { const i = t => { switch (typeof t) { case void 0: return t; case "string": switch (this.getEnv()) { case "Surge": case "Stash": default: return { url: t }; case "Loon": case "Shadowrocket": return t; case "Quantumult X": return { "open-url": t }; case "Node.js": return }case "object": switch (this.getEnv()) { case "Surge": case "Stash": case "Shadowrocket": default: { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } case "Loon": { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } case "Quantumult X": { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl, a = t["update-pasteboard"] || t.updatePasteboard; return { "open-url": e, "media-url": s, "update-pasteboard": a } } case "Node.js": return }default: return } }; if (!this.isMute) switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: $notification.post(e, s, a, i(r)); break; case "Quantumult X": $notify(e, s, a, i(r)); break; case "Node.js": }if (!this.isMuteLog) { let t = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; t.push(e), s && t.push(s), a && t.push(a), 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) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": case "Quantumult X": default: this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t); break; case "Node.js": this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) } } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; switch (this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), this.log(), this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": case "Quantumult X": default: $done(t); break; case "Node.js": process.exit(1) } } }(t, e) } diff --git a/lianxiangapp.js b/lianxiangapp.js new file mode 100644 index 0000000..509dc22 --- /dev/null +++ b/lianxiangapp.js @@ -0,0 +1,414 @@ +/** + *有问题联系3288588344 + *频道:https://pd.qq.com/s/672fku8ge + * cron 5 12 * * * + * Show:每日做联想乐豆任务 可以换东西 + * 变量名:lenovoAccessToken + * 变量值: APP 我的 乐豆 前往乐豆兑换中心 抓 https://mmembership.lenovo.com.cn/member-hp-task-center + * 请求头Headers 中 accesstoken 的值 多账号&或换行 分割 或新建同名变量 + * scriptVersionNow = "0.0.2"; + */ + +const $ = new Env("联想App"); +const axios = require('axios'); + +const notify = $.isNode() ? require('./sendNotify') : ''; +let ckName = "lenovoAccessToken"; +let envSplitor = ["&", "\n"]; //多账号分隔符 +let strSplitor = "#"; //多变量分隔符 +let userIdx = 0; +let userList = []; +class Task { + constructor(str) { + this.index = ++userIdx; + this.ck = null //单账号多变量分隔符 + this.ckStatus = true; + this.token = null + this.accesstoken = str.split(strSplitor)[0]; + } + async main() { + await this.ssoCheck() + console.log(this.ck, this.token) + if (this.ck && this.token) { + await this.userInfo() + await this.checkIn() + await this.getUserTaskList(); + + } + + + + } + async userInfo() { + let result = await this.taskRequest({ method: "POST", url: `https://mmembership.lenovo.com.cn/member-hp-webapi/v1/userBenefit/getMyAssets` }) + //console.log(result); + if (result.code == "0") { + $.log(`✅账号[${this.index}] 获取用户信息成功===>[${result.data.userId}]乐豆[${result.data.ledouNum}]`); + this.ckStatus = true + } else { + $.log(`❌账号[${this.index}] 获取用户状态失败`); + this.ckStatus = false + console.log(result); + } + } + async isSignIn() { + let result = await this.taskRequest({ method: "POST", url: `https://mmembership.lenovo.com.cn/member-hp-task-center/v1/task/getCheckInList?lenovoId=${this.ck}` }) + //console.log(result); + if (result.code == "0") { + if (result.data.flag == !1) { + $.log(`✅账号[${this.index}] 今日未签到 =====> 签到ing🎉`) + + await this.checkIn() + } + } else { + $.log(`❌账号[${this.index}] 获取签到状态`); + console.log(result); + } + } + async checkIn() { + let result = await this.taskRequest({ method: "POST", url: `https://mmembership.lenovo.com.cn/member-hp-task-center/v1/task/checkIn?lenovoId=${this.ck}&OSType=10011` }) + //console.log(result); + if (result.code == "0") { + $.log(`✅账号[${this.index}] 签到成功🎉`) + } else { + $.log(`❌账号[${this.index}] 签到失败`); + console.log(result); + } + } + getSignKey() { + global["window"] = {} + const JSEncrypt = require("jsencrypt") + let pt = ["cD", "BT", "Uzn", "Po", "Luu", "Yhc", "Cj", "FP", "al", "Tq"] + , ht = ["MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJB", "L7qpP6mG6ZHdDKEIdTqQDo/WQ", "6NaWftXwOTHnnbnwUEX2/2jI4qALxRWMliYI80cszh6", "ySbap0KIljDCN", "w0CAwEAAQ=="] + , mt = function (text) { + var t, e, n = ""; + try { + var r = new JSEncrypt; + r.setPublicKey((t = ["A", "b", "C", "D", ""], + e = "", + ht.forEach((function (n, r) { + return e += n + t[r] + } + )), + e)), + n = r.encrypt(text) + } catch (t) { + console.log("rsa加密错误!", n) + } + return n + } + for (var t = function () { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 8; + return Math.floor(Math.random() * Math.pow(10, t)) + }(8).toString(), e = "", i = 0; i < t.length; i++) + e += pt[Number(t[i])]; + return mt(t + ":" + e) + } + async getUserTaskList() { + let result = await this.taskRequest({ method: "POST", url: `https://mmembership.lenovo.com.cn/member-hp-task-center/v1/task/getUserTaskList` }) + //console.log(result); + if (result.code == "0") { + $.log(`✅账号[${this.index}] 获取任务列表成功🎉`) + for (let i = 0; i < result.data.length; i++) { + let task = result.data[i]; + if (task.taskState == 0 && task.type !== 13) { + await $.wait(5000) + await this.doTask(task.taskId); + } + + } + } else { + $.log(`❌账号[${this.index}] 获取任务列表失败`); + console.log(result); + } + } + async doTask(id) { + let result_ = await this.taskRequest({ method: "POST", url: `https://mmembership.lenovo.com.cn/member-hp-task-center/v1/checkin/selectTaskPrize?taskId=${id}&channelId=1` }) + if (result_.code == "0") { + let result = await this.taskRequest({ method: "POST", url: `https://mmembership.lenovo.com.cn/member-hp-task-center/v1/Task/userFinishTask?taskId=${id}&channelId=1&state=1` }) + //console.log(result); + if (result.code == "0") { + $.log(`✅账号[${this.index}] 任务执行成功🎉`) + + } else { + $.log(`❌账号[${this.index}] 任务执行失败`); + console.log(result_.message); + console.log(id) + } + } else { + console.log(result_.message) + } + + } + async ssoCheck() { + + let config = { + method: 'POST', + url: 'https://mmembership.lenovo.com.cn/member-center-api/v2/access/ssoCheck?lenovoId=&unionId=&clientId=2', + headers: { + 'User-Agent': 'Mozilla/5.0 (Linux; Android 10; MI 8 Lite Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.99 Mobile Safari/537.36/lenovoofficialapp/9e4bb0e5bc326fb1_10219183246/newversion/versioncode-1000112/', + 'Accept-Encoding': 'gzip, deflate', + 'pragma': 'no-cache', + 'cache-control': 'no-cache', + 'accesstoken': this.accesstoken, + 'signkey': this.getSignKey(), + 'origin': 'https://mmembership.lenovo.com.cn', + 'servicetoken': '', + 'tenantid': '25', + 'sec-fetch-dest': 'empty', + //'lenovoid': , + 'clientid': '2', + 'x-requested-with': 'com.lenovo.club.app', + 'sec-fetch-site': 'same-origin', + 'sec-fetch-mode': 'cors', + 'referer': 'https://mmembership.lenovo.com.cn/app?pmf_source=P0000005611M0002', + 'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7', + } + } + let { data: result } = await axios.request(config) + //console.log(result) + if (result.code == "0") { + this.token = result.data.serviceToken + this.ck = result.data.lenovoId + } + } + + async taskRequest(options) { + let headers = { + 'User-Agent': 'Mozilla/5.0 (Linux; Android 10; MI 8 Lite Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.99 Mobile Safari/537.36/lenovoofficialapp/9e4bb0e5bc326fb1_10219183246/newversion/versioncode-1000112/', + 'Accept-Encoding': 'gzip, deflate', + 'pragma': 'no-cache', + 'cache-control': 'no-cache', + 'origin': 'https://mmembership.lenovo.com.cn', + 'servicetoken': this.token, + 'sec-fetch-dest': 'empty', + //'service-authentication':this.token, + 'lenovoid': this.ck, + 'clientid': '2', + 'x-requested-with': 'com.lenovo.club.app', + 'sec-fetch-site': 'same-origin', + 'sec-fetch-mode': 'cors', + 'referer': 'https://mmembership.lenovo.com.cn/app?pmf_source=P0000005611M0002', + 'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7', + } + Object.assign(options, { headers }) + let { data: result } = await axios.request(options) + return result + } +} + + + +!(async () => { + console.log(`==================================================\n 脚本执行 - 北京时间(UTC+8): ${new Date( + new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000 + ).toLocaleString()} \n==================================================`); + if (!(await checkEnv())) return; + if (userList.length > 0) { + let taskall = []; + for (let user of userList) { + if (user.ckStatus) { + taskall.push(await user.main()); + } + } + await Promise.all(taskall); + } + await $.sendMsg($.logs.join("\n")) +})() + .catch((e) => console.log(e)) + .finally(() => $.done()); + +//******************************************************** +/** + * 变量检查与处理 + * @returns + */ +async function checkEnv() { + let userCookie = ($.isNode() ? process.env[ckName] : $.getdata(ckName)) || ""; + if (userCookie) { + let e = envSplitor[0]; + for (let o of envSplitor) + if (userCookie.indexOf(o) > -1) { + e = o; + break; + } + for (let n of userCookie.split(e)) n && userList.push(new Task(n)); + } else { + console.log(`未找到CK【${ckName}】`); + return; + } + return console.log(`共找到${userList.length}个账号`), true; //true == !0 +} +//Env Api ============================= +/* + * @modifyAuthor @smallfawn + * @modifyTime 2024-05-01 + * @modifyInfo 抽离操作文件的函数 + */ +function Env(t, s) { + return new (class { + constructor(t, s) { + this.name = t; + this.logs = []; + this.logSeparator = "\n"; + this.startTime = new Date().getTime(); + Object.assign(this, s); + this.log("", `\ud83d\udd14${this.name},\u5f00\u59cb!`); + } + isNode() { + return "undefined" != typeof module && !!module.exports; + } + isQuanX() { + return "undefined" != typeof $task; + } + + queryStr(options) { + return Object.entries(options) + .map( + ([key, value]) => + `${key}=${typeof value === "object" ? JSON.stringify(value) : value + }` + ) + .join("&"); + } + getURLParams(url) { + const params = {}; + const queryString = url.split("?")[1]; + if (queryString) { + const paramPairs = queryString.split("&"); + paramPairs.forEach((pair) => { + const [key, value] = pair.split("="); + params[key] = value; + }); + } + return params; + } + isJSONString(str) { + try { + return JSON.parse(str) && typeof JSON.parse(str) === "object"; + } catch (e) { + return false; + } + } + isJson(obj) { + var isjson = + typeof obj == "object" && + Object.prototype.toString.call(obj).toLowerCase() == + "[object object]" && + !obj.length; + return isjson; + } + async sendMsg(message) { + if (!message) return; + if (this.isNode()) { + await notify.sendNotify(this.name, message); + } else { + this.msg(this.name, "", message); + } + } + + randomNumber(length) { + const characters = "0123456789"; + return Array.from( + { length }, + () => characters[Math.floor(Math.random() * characters.length)] + ).join(""); + } + randomString(length) { + const characters = "abcdefghijklmnopqrstuvwxyz0123456789"; + return Array.from( + { length }, + () => characters[Math.floor(Math.random() * characters.length)] + ).join(""); + } + timeStamp() { + return new Date().getTime(); + } + uuid() { + return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace( + /[xy]/g, + function (c) { + var r = (Math.random() * 16) | 0, + v = c == "x" ? r : (r & 0x3) | 0x8; + return v.toString(16); + } + ); + } + time(t) { + let s = { + "M+": new Date().getMonth() + 1, + "d+": new Date().getDate(), + "H+": new Date().getHours(), + "m+": new Date().getMinutes(), + "s+": new Date().getSeconds(), + "q+": Math.floor((new Date().getMonth() + 3) / 3), + S: new Date().getMilliseconds(), + }; + /(y+)/.test(t) && (t = t.replace(RegExp.$1, (new Date().getFullYear() + "").substr(4 - RegExp.$1.length))); + for (let e in s) { + new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? s[e] : ("00" + s[e]).substr(("" + s[e]).length))); + } + return t; + }; + msg(title = t, subtitle = "", body = "", options) { + const formatOptions = (options) => { + if (!options) { + return options; + } else if (typeof options === "string") { + if (this.isQuanX()) { + return { "open-url": options }; + } else { + return undefined; + } + } else if (typeof options === "object" && (options["open-url"] || options["media-url"])) { + if (this.isQuanX()) { + return options; + } else { + return undefined; + } + } else { + return undefined; + } + }; + if (!this.isMute) { + if (this.isQuanX()) { + $notify(title, subtitle, body, formatOptions(options)); + } + } + let logs = ["", "==============📣系统通知📣=============="]; + logs.push(title); + subtitle ? logs.push(subtitle) : ""; + body ? logs.push(body) : ""; + console.log(logs.join("\n")); + this.logs = this.logs.concat(logs); + }; + log(...t) { + t.length > 0 && (this.logs = [...this.logs, ...t]), + console.log(t.join(this.logSeparator)); + } + logErr(t, s) { + const e = !this.isQuanX(); + e + ? this.log("", `\u2757\ufe0f${this.name},\u9519\u8bef!`, t.stack) + : this.log("", `\u2757\ufe0f${this.name},\u9519\u8bef!`, t); + } + wait(t) { + return new Promise((s) => setTimeout(s, t)); + } + done(t = {}) { + const s = new Date().getTime(), + e = (s - this.startTime) / 1e3; + this.log( + "", + `\ud83d\udd14${this.name},\u7ed3\u675f!\ud83d\udd5b ${e}\u79d2` + ); + this.log(); + if (this.isNode()) { + process.exit(1); + } + if (this.isQuanX()) { + $done(t); + } + } + })(t, s); +}