From 8e1b4d2cd296236c3f493526007b9eacb709aa2d Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Sat, 13 Nov 2021 09:34:18 +0800 Subject: [PATCH 01/75] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E9=87=8D=E8=AF=95?= =?UTF-8?q?=E6=9C=BA=E5=88=B6=E9=98=B2=E6=AD=A2=E6=9C=8D=E5=8A=A1=E5=99=A8?= =?UTF-8?q?=E5=8D=A1=EF=BC=8C=E5=8A=A0=E5=85=A5=E8=87=AA=E5=8A=A8=E8=BD=AC?= =?UTF-8?q?=E6=8D=A2=E7=BA=A2=E5=8C=85=E4=BD=99=E9=A2=9D=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shangtuo.js | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/shangtuo.js b/shangtuo.js index 41664f4..0d30a36 100644 --- a/shangtuo.js +++ b/shangtuo.js @@ -19,6 +19,8 @@ https://raw.githubusercontent.com/leafxcy/JavaScript/main/shangtuo.jpg 脚本默认红包余额满0.5自动提现,可以自己新建一个环境变量 stCash 设定红包余额提现金额,export stCash=20 !!!但是不建议提现20块以下,因为手续费高,只有0.5手续费低!!! +脚本会自动把红包余额转换为消费余额来抢更高面额的券,如果不想换的自己建一个环境变量 stExchange 设为0,export stExchange=0 + CK有效期较短,可能几天后需要重新捉 只测试了IOS,测试过V2P,青龙可以跑 @@ -56,6 +58,7 @@ let userNum = 0 let userInfo = "" var packWithdrawAmount = ($.isNode() ? (process.env.stCash) : ($.getval('stCash'))) || 0.5; +var autoExchange = ($.isNode() ? (process.env.stExchange) : ($.getval('stExchange'))) || 1; let secretCode @@ -65,6 +68,9 @@ let grabCount let getBondListFlag let quanList +let retryLimit = 5 +let retryTime + let logDebug = 0 let logCaller = 0 @@ -95,8 +101,11 @@ const notify = $.isNode() ? require('./sendNotify') : ''; if(accountStatus) { //看广告得分红金 + retryTime = 0 await getAdvertPage(1); await $.wait(1000); + await getAdvertPage(2); + await $.wait(1000); //提取分红金 await changeDividendBonusToBalance(); @@ -292,6 +301,7 @@ function getUserInfoData(checkStatus,timeout = 0) { //广告列表id function getAdvertPage(pageNo,timeout = 0) { if(logCaller) console.log("call "+ printCaller()) + retryTime++ return new Promise((resolve) => { let request = { url: `https://api.shatuvip.com/advert/getAdvertPage?type=1&pageNo=${pageNo}&column_id=1`, @@ -314,6 +324,9 @@ function getAdvertPage(pageNo,timeout = 0) { if (err) { console.log("API请求失败"); console.log(err + " at function " + printCaller()); + if(retryTime < retryLimit) { + await getAdvertPage(pageNo) + } } else { if (safeGet(data)) { let result = JSON.parse(data) @@ -323,7 +336,6 @@ function getAdvertPage(pageNo,timeout = 0) { adNum = result.result.length compTaskFlag = 1 for(let i=0; i= 88) { console.log(`\n分红金余额:${result.result.balance},开始尝试提现`) + retryTime = 0 await getBalanceWithdrawalData(0,result.result.balance) } else { console.log(`\n分红金余额:${result.result.balance},不执行提现`) @@ -1096,6 +1109,7 @@ function getPopularizeBalance(timeout = 0) { await $.wait(1000); if(result.result.balance >= 1) { console.log(`\n推广余额:${result.result.balance},开始尝试提现`) + retryTime = 0 await getBalanceWithdrawalData(2,result.result.balance) } else { console.log(`\n推广余额:${result.result.balance},不执行提现`) @@ -1147,12 +1161,19 @@ function getPackBalance(move,timeout = 0) { if(result.code == 0) { await $.wait(1000); if(move == 0) { - if(result.result.balance > 0) { - console.log(``) - await balancePackChangeBalance(result.result.balance) + if(autoExchange >0) { + console.log(`\n您当前设置为自动转换消费余额`) + if(result.result.balance > 0.5) { + await balancePackChangeBalance(result.result.balance-0.5) + } else { + console.log(`\n红包余额${result.result.balance},少于0.5,不转换消费余额`) + } + } else { + console.log(`\n您当前设置为不转换消费余额`) } } else { if(result.result.balance >= packWithdrawAmount) { + retryTime = 0 console.log(`\n红包余额${result.result.balance},尝试为你提现${packWithdrawAmount}`) await getBalanceWithdrawalData(1,result.result.balance,packWithdrawAmount) } else { @@ -1341,6 +1362,7 @@ function queryWithdrawId(id,balance,timeout = 0) { //提现 function balanceWithdrawal(id,withdrawMoney,timeout = 0) { if(logCaller) console.log("call "+ printCaller()) + retryTime++ return new Promise((resolve, reject) => { let request = { url: `https://api.shatuvip.com/withdrawal/balanceWithdrawal`, @@ -1364,6 +1386,9 @@ function balanceWithdrawal(id,withdrawMoney,timeout = 0) { if (err) { console.log("API请求失败"); console.log(err + " at function " + printCaller()); + if(retryTime < retryLimit) { + await balanceWithdrawal(id,withdrawMoney) + } } else { if (safeGet(data)) { await $.wait(1000); From 210deb316e9772e576889b8d136158a83504e017 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Sat, 13 Nov 2021 20:24:25 +0800 Subject: [PATCH 02/75] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=BF=9C=E7=A8=8B?= =?UTF-8?q?=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jctq/jctq_task_subscribe.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/jctq/jctq_task_subscribe.json b/jctq/jctq_task_subscribe.json index 1e27df5..3817bc2 100644 --- a/jctq/jctq_task_subscribe.json +++ b/jctq/jctq_task_subscribe.json @@ -10,7 +10,7 @@ "time": "21 8,20 * * *", "job": { "type": "runjs", - "target": "jctqkkz.js" + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctqkkz.js" } }, { @@ -19,7 +19,7 @@ "time": "18 22 * * *", "job": { "type": "runjs", - "target": "jctq_today_score.js" + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_today_score.js" } }, { @@ -28,7 +28,7 @@ "time": "23 0,6 * * *", "job": { "type": "runjs", - "target": "jctqqd.js" + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctqqd.js" } }, { @@ -37,7 +37,7 @@ "time": "12 7,19 * * *", "job": { "type": "runjs", - "target": "jctqwz.js" + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctqwz.js" } }, { @@ -46,7 +46,7 @@ "time": "12 6,12,18 * * *", "job": { "type": "runjs", - "target": "jctq_share.js" + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_share.js" } }, { @@ -55,7 +55,7 @@ "time": "20 9,17 * * *", "job": { "type": "runjs", - "target": "jctq_Adv_video.js" + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_Adv_video.js" } }, { @@ -64,7 +64,7 @@ "time": "31 8,16 * * *", "job": { "type": "runjs", - "target": "jctq_Rotary.js" + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_Rotary.js" } }, { @@ -73,7 +73,7 @@ "time": "24 21,22 * * *", "job": { "type": "runjs", - "target": "jctqbox.js" + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctqbox.js" } }, { @@ -82,7 +82,7 @@ "time": "32 2,6,20 * * *", "job": { "type": "runjs", - "target": "jctq_friendSign.js" + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_friendSign.js" } }, { @@ -91,7 +91,7 @@ "time": "34 23 * * *", "job": { "type": "runjs", - "target": "jctq_withdraw.js" + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_withdraw.js" } } ] From 56c462f09c3cef4a9e63175353e64f2bdfd3c1ae Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Sat, 13 Nov 2021 22:01:57 +0800 Subject: [PATCH 03/75] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=EF=BC=8C=E9=81=BF=E5=85=8D=E8=B7=9F=E7=9C=8B?= =?UTF-8?q?=E7=82=B9=E9=87=8D=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jctq/jctq_rewrite_subscribe.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/jctq/jctq_rewrite_subscribe.json b/jctq/jctq_rewrite_subscribe.json index c83c209..d0888f5 100644 --- a/jctq/jctq_rewrite_subscribe.json +++ b/jctq/jctq_rewrite_subscribe.json @@ -107,7 +107,7 @@ }, }, { - "name": "晶彩抽奖", + "name": "晶彩天气抽奖", "type": "cron", "time": "31 8,16 * * *", "job": { @@ -116,7 +116,7 @@ }, }, { - "name": "晶彩每日宝箱", + "name": "晶彩天气每日宝箱", "type": "cron", "time": "24 21,22 * * *", "job": { @@ -125,7 +125,7 @@ }, }, { - "name": "晶彩好友签到红包", + "name": "晶彩天气好友红包", "type": "cron", "time": "32 2,6,20 * * *", "job": { @@ -144,4 +144,4 @@ } ] } -} \ No newline at end of file +} From 94c5f18c4c6e5b69ddd8c9c85e06fe346d0ab264 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Mon, 15 Nov 2021 01:44:35 +0800 Subject: [PATCH 04/75] Add files via upload --- blackUnique.jpg | Bin 0 -> 111976 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 blackUnique.jpg diff --git a/blackUnique.jpg b/blackUnique.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cb296961d1352ad2101fbdf83579c35f672204ea GIT binary patch literal 111976 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ΞK*e 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 Date: Mon, 15 Nov 2021 09:33:54 +0800 Subject: [PATCH 05/75] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B6=88=E8=B4=B9?= =?UTF-8?q?=E4=BD=99=E9=A2=9D=E8=BD=AC=E6=8D=A2=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E6=8E=A8=E9=80=81=E7=9A=84=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shangtuo.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/shangtuo.js b/shangtuo.js index 0d30a36..e19ed6a 100644 --- a/shangtuo.js +++ b/shangtuo.js @@ -3,13 +3,13 @@ 下载地址: 复制链接后,在微信里打开: -https://shatuvip.com/pages/login/register?recom_code=5290130 +https://shatuvip.com/pages/login/register?recom_code=7755074 或微信扫描二维码下载 https://raw.githubusercontent.com/leafxcy/JavaScript/main/shangtuo.jpg -推荐码: 5290130 -抢券时段为7:00到23:59,建议在8点后跑脚本,7点有可能会卡 +推荐码: 7755074 +抢券时段为7:00到23:59,建议在9点后跑脚本,7点有可能会卡 玩法:进APP后,先手动去全球分红->提取分红金,然后在个人中心->分红余额->提现一次0.03元(需要上传支付宝和微信收款码),就可以跑脚本了 脚本会自动看广告得分红金,抢券,提现 @@ -20,6 +20,7 @@ https://raw.githubusercontent.com/leafxcy/JavaScript/main/shangtuo.jpg !!!但是不建议提现20块以下,因为手续费高,只有0.5手续费低!!! 脚本会自动把红包余额转换为消费余额来抢更高面额的券,如果不想换的自己建一个环境变量 stExchange 设为0,export stExchange=0 +青龙环境下会有推送,不想要推送的建一个环境变量 stNotify 设为0,export stNotify=0 CK有效期较短,可能几天后需要重新捉 只测试了IOS,测试过V2P,青龙可以跑 @@ -59,6 +60,7 @@ let userInfo = "" var packWithdrawAmount = ($.isNode() ? (process.env.stCash) : ($.getval('stCash'))) || 0.5; var autoExchange = ($.isNode() ? (process.env.stExchange) : ($.getval('stExchange'))) || 1; +var nodeNotify = ($.isNode() ? (process.env.stNotify) : ($.getval('stNotify'))) || 1; let secretCode @@ -102,6 +104,7 @@ const notify = $.isNode() ? require('./sendNotify') : ''; //看广告得分红金 retryTime = 0 + compTaskFlag = 1 await getAdvertPage(1); await $.wait(1000); await getAdvertPage(2); @@ -155,7 +158,7 @@ const notify = $.isNode() ? require('./sendNotify') : ''; } $.msg(userInfo) - if($.isNode()) await notify.sendNotify($.name, userInfo) + if(nodeNotify == 1 && $.isNode()) await notify.sendNotify($.name, userInfo) } } @@ -334,7 +337,6 @@ function getAdvertPage(pageNo,timeout = 0) { if (result.code == 0) { console.log(`获取分红金广告任务列表成功`) adNum = result.result.length - compTaskFlag = 1 for(let i=0; i0) { - console.log(`\n您当前设置为自动转换消费余额`) + console.log(`\n您当前设置为自动转换消费余额,当前红包余额${result.result.balance}`) if(result.result.balance > 0.5) { - await balancePackChangeBalance(result.result.balance-0.5) + let exchangeAmount = Math.floor((result.result.balance-0.5)*100) / 100 + await balancePackChangeBalance(exchangeAmount) } else { console.log(`\n红包余额${result.result.balance},少于0.5,不转换消费余额`) } From a406962536eb34e5d1491f034e9aff02e9034be2 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Mon, 15 Nov 2021 09:54:32 +0800 Subject: [PATCH 06/75] Add files via upload --- blackUnique.js | 783 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 783 insertions(+) create mode 100644 blackUnique.js diff --git a/blackUnique.js b/blackUnique.js new file mode 100644 index 0000000..f2ccf2d --- /dev/null +++ b/blackUnique.js @@ -0,0 +1,783 @@ +/* +APP:全球购骑士特权 + +直接appstore搜索下载,方便的话可以微信扫下面图片二维码走邀请注册,谢谢 +https://raw.githubusercontent.com/leafxcy/JavaScript/main/blackUnique.jpg + +定时为每小时一次,务必在0分到5分之间运行,目前只写了每日领勋章和领取存钱罐的任务,大概每天3毛 +需要看视频的任务暂时搞不定,能搞定再加上 +暂不支持多账号 + +青龙: +捉https://pyp-api.chuxingyouhui.com/api/app/userCenter/v1/info的包,获得appId +捉https://market.chuxingyouhui.com/promo-bargain-api/activity/mqq/api/indexTopInfo?的包,获得header +然后填在blackJSON里面,注意按照JSON格式填写。用青龙面板的环境变量或者外面用双引号的,字符串内需要用\"转义 +export blackJSON='{"black-token":"", "token":"", "User-Agent":"", "device-value":"", "device-type":"", "phpUserId":"", "appId":""}' + +V2P,圈X:重写方法 -- 点击右下角【我的】-> 【每日签到赚现金】 +[task_local] +#全球购骑士特权 +0 * * * * https://raw.githubusercontent.com/leafxcy/JavaScript/main/blackUnique.js, tag=全球购骑士特权, enabled=true +[rewrite_local] +https://pyp-api.chuxingyouhui.com/api/app/userCenter/v1/info url script-request-header https://raw.githubusercontent.com/leafxcy/JavaScript/main/blackUnique.js +https://market.chuxingyouhui.com/promo-bargain-api/activity/mqq/api/indexTopInfo? url https://raw.githubusercontent.com/leafxcy/JavaScript/main/blackUnique.js +[MITM] +hostname = *.chuxingyouhui.com + +*/ + +const jsname = '全球购骑士特权' +const $ = Env(jsname) +//const notifyFlag = 1; //0为关闭通知,1为打开通知,默认为1 +const logDebug = 0 + +//const notify = $.isNode() ? require('./sendNotify') : ''; +//let notifyStr = '' + +let blankJSON = {"black-token":"", "token":"", "User-Agent":"", "device-value":"", "device-type":"", "phpUserId":"", "appId":""} +let blackJSONStr = ($.isNode() ? (process.env.blackJSON) : ($.getval('blackJSON'))) || '' +let blackJSON = blackJSONStr ? JSON.parse(blackJSONStr) : blankJSON + +var todayDate = formatDateTime(new Date()); +let bussinessInfo = '{}' + +let rndtime = "" //毫秒 + +/////////////////////////////////////////////////////////////////// + +!(async () => { + + if(typeof $request !== "undefined") + { + await getRewrite() + } + else + { + //检查环境变量 + if(!(await checkEnv())){ + return + } + + await querySignStatus() + await $.wait(1000) + + await listUserTask() + await $.wait(1000) + + //红包需要sign,翻倍视频也需要sign + //await listRedPacket() + + await queryPiggyInfo() + await $.wait(1000) + + //翻卡看视频需要前置条件 + //await getUserFlopRecord() + + } + + +})() +.catch((e) => $.logErr(e)) +.finally(() => $.done()) + +//通知 +async function showmsg() { + + notifyBody = jsname + "运行通知\n\n" + notifyStr + + if (notifyFlag != 1) { + console.log(notifyBody); + } + + if (notifyFlag == 1) { + $.msg(notifyBody); + if ($.isNode()){await notify.sendNotify($.name, notifyBody );} + } +} + +async function getRewrite() +{ + if($request.url.indexOf("userCenter/v1/info") > -1) { + if($request.headers['black-token']) { + blackJSON['black-token'] = $request.headers['black-token'] + console.log(`获取到black-token: ${blackJSON['black-token']}`) + } + if($request.headers['token']) { + blackJSON['token'] = $request.headers['token'] + console.log(`获取到token: ${blackJSON['token']}`) + } + if($request.headers['User-Agent']) { + blackJSON['User-Agent'] = $request.headers['User-Agent'] + console.log(`获取到User-Agent: ${blackJSON['User-Agent']}`) + } + if($request.headers['device-value']) { + blackJSON['device-value'] = $request.headers['device-value'] + console.log(`获取到device-value: ${blackJSON['device-value']}`) + } + if($request.headers['device-type']) { + blackJSON['device-type'] = $request.headers['device-type'] + console.log(`获取到device-type: ${blackJSON['device-type']}`) + } + if($request.headers['phpUserId']) { + blackJSON['phpUserId'] = $request.headers['phpUserId'] + console.log(`获取到phpUserId: ${blackJSON['phpUserId']}`) + } + $.setdata(JSON.stringify(blackJSON),'blackJSON') + } + + if($request.url.indexOf("mqq/api/indexTopInfo?appId=") > -1) { + blackJSON['appId'] = $request.url.match(/appId=([\w]+)/)[1] + console.log(`获取到appId: ${blackJSON['appId']}`) + $.setdata(JSON.stringify(blackJSON),'blackJSON') + } +} + +async function checkEnv() +{ + if(!blackJSON['black-token'] || !blackJSON['token'] || !blackJSON['User-Agent'] || !blackJSON['device-value'] || !blackJSON['device-type'] || !blackJSON['phpUserId'] || !blackJSON['appId']) + { + $.log(`捉包信息不全,请检查空白字段并重新捉包: ${JSON.stringify(blackJSON)}\n`) + return false + } + + return true +} + +//========================================================================== +//获取视频信息 +async function getBussinessInfo(adId,activityType,bussinessType,version) { + let caller = printCaller() + //rndtime = Math.round(new Date().getTime()) + reqBody = `{"adId":"${adId}","activityType":${activityType},"bussinessType":"${bussinessType}","version":"${version}"}` + encodeBody = encodeURIComponent(reqBody) + return new Promise((resolve) => { + let url = { + url: 'https://market.chuxingyouhui.com/promo-bargain-api/video/api/v1_0/getBussinessInfo', + headers: { + 'Host' : 'market.chuxingyouhui.com', + 'request-body' : encodeBody, + 'Accept' : 'application/json, text/plain, */*', + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding' : 'gzip, deflate, br', + 'token' : blackJSON['token'], + 'Content-Type' : 'application/json;charset=utf-8', + 'Origin' : 'https://m.black-unique.com', + 'User-Agent' : blackJSON['User-Agent'], + 'black-token' : blackJSON['black-token'], + 'Referer' : 'https://m.black-unique.com/', + 'Connection' : 'keep-alive', + }, + body: reqBody + }; + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + bussinessInfo = result.data ? JSON.stringify(result.data) : '{}' + } else { + console.log(`获取视频信息失败:${result.msg}`) + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//获取签到状态 +async function querySignStatus() { + let caller = printCaller() + //rndtime = Math.round(new Date().getTime()) + return new Promise((resolve) => { + let url = { + url: 'https://market.chuxingyouhui.com/promo-bargain-api/activity/weekSign/api/v1_0/calendar?appId='+blackJSON['appId'], + headers: { + 'Host' : 'market.chuxingyouhui.com', + 'Origin' : 'https://m.black-unique.com', + 'Accept-Encoding' : 'gzip, deflate, br', + 'Connection' : 'keep-alive', + 'black-token' : blackJSON['black-token'], + 'Accept' : 'application/json, text/plain, */*', + 'User-Agent' : blackJSON['User-Agent'], + 'Referer' : 'https://m.black-unique.com/', + 'token' : blackJSON['token'], + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + }, + }; + $.get(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + if(result.data && result.data.calendar && Array.isArray(result.data.calendar)) { + for(let i=0; i< result.data.calendar.length; i++) { + let signItem = result.data.calendar[i] + if(signItem.isToday == true) { + if(signItem.signStyle == 0) { + await doSign() + } else { + console.log(`\n今日已签到\n`) + } + } + } + } + } else { + console.log(`\n获取签到状态失败:${result.msg}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//签到 +async function doSign() { + let caller = printCaller() + //rndtime = Math.round(new Date().getTime()) + reqBody = `{}` + encodeBody = encodeURIComponent(reqBody) + return new Promise((resolve) => { + let url = { + url: 'https://market.chuxingyouhui.com/promo-bargain-api/activity/weekSign/api/v1_0/sign?appId='+blackJSON['appId'], + headers: { + 'Host' : 'market.chuxingyouhui.com', + 'request-body' : reqBody, + 'Accept' : 'application/json, text/plain, */*', + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding' : 'gzip, deflate, br', + 'token' : blackJSON['token'], + 'Content-Type' : 'application/json;charset=utf-8', + 'Origin' : 'https://m.black-unique.com', + 'User-Agent' : blackJSON['User-Agent'], + 'black-token' : blackJSON['black-token'], + 'Referer' : 'https://m.black-unique.com/', + 'Connection' : 'keep-alive', + }, + }; + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + console.log(result) + if(result.code == 200) { + console.log(`\n签到成功获得:${result.data.reward}金币,已连续签到${result.data.continuouslyDay}天\n`) + } else { + console.log(`\n签到失败:${result.msg}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//日常-任务列表 +async function listUserTask() { + let caller = printCaller() + rndtime = Math.round(new Date().getTime()) + reqBody = `{"activityType":13}` + encodeBody = encodeURIComponent(reqBody) + return new Promise((resolve) => { + let url = { + url: 'https://market.chuxingyouhui.com/promo-bargain-api/activity/task/api/list_user_task', + headers: { + 'Host' : 'market.chuxingyouhui.com', + 'request-body' : encodeBody, + 'Accept' : 'application/json, text/plain, */*', + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding' : 'gzip, deflate, br', + 'token' : blackJSON['token'], + 'Content-Type' : 'application/json;charset=utf-8', + 'Origin' : 'https://m.black-unique.com', + 'User-Agent' : blackJSON['User-Agent'], + 'black-token' : blackJSON['black-token'], + 'Referer' : 'https://m.black-unique.com/', + 'Connection' : 'keep-alive', + }, + body: reqBody + }; + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + if(result.data && Array.isArray(result.data)) { + for(let i=0; i -1 && (rndtime < taskItem.receiveStartTime || rndtime > taskItem.receiveEndTime)) { + //非整点领勋章时间 + continue + } else if(taskItem.taskType.indexOf('SHOPPING') > -1) { + //跳过购物任务 + continue + } + await $.wait(1000) + await doTask(taskItem.taskType,taskItem.userTaskId,taskItem.taskTitle) + } + + } + } + } else { + console.log(`查询任务列表失败:${result.msg}`) + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//日常-完成任务 +async function doTask(taskType,userTaskId,taskTitle) { + let caller = printCaller() + //rndtime = Math.round(new Date().getTime()) + reqBody = `{"activityType":13,"taskType":"${taskType}","userTaskId":"${userTaskId}"}` + encodeBody = encodeURIComponent(reqBody) + return new Promise((resolve) => { + let url = { + url: 'https://market.chuxingyouhui.com/promo-bargain-api/activity/task/api/doTask', + headers: { + 'Host' : 'market.chuxingyouhui.com', + 'request-body' : encodeBody, + 'Accept' : 'application/json, text/plain, */*', + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding' : 'gzip, deflate, br', + 'token' : blackJSON['token'], + 'Content-Type' : 'application/json;charset=utf-8', + 'Origin' : 'https://m.black-unique.com', + 'User-Agent' : blackJSON['User-Agent'], + 'black-token' : blackJSON['black-token'], + 'Referer' : 'https://m.black-unique.com/', + 'Connection' : 'keep-alive', + }, + body: reqBody + }; + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + console.log(`完成任务【${result.data.taskTitle}】:获得${result.data.rewardScore}勋章`) + } else { + console.log(`完成任务【${taskTitle}】失败:${result.msg}`) + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//存钱罐状态 +async function queryPiggyInfo() { + let caller = printCaller() + //rndtime = Math.round(new Date().getTime()) + return new Promise((resolve) => { + let url = { + url: 'https://market.chuxingyouhui.com/promo-bargain-api/activity/golden/api/queryUserAccountInfo?appId='+blackJSON['appId'], + headers: { + 'Host' : 'market.chuxingyouhui.com', + 'Origin' : 'https://m.black-unique.com', + 'Accept-Encoding' : 'gzip, deflate, br', + 'Connection' : 'keep-alive', + 'black-token' : blackJSON['black-token'], + 'Accept' : 'application/json, text/plain, */*', + 'User-Agent' : blackJSON['User-Agent'], + 'Referer' : 'https://m.black-unique.com/', + 'token' : blackJSON['token'], + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + }, + }; + $.get(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + if(parseFloat(result.data.goldenAmount) < parseFloat(result.data.dayCeil)) { + if(parseFloat(result.data.piggyAmount) >= 1) { + await clickPiggy() + } + } else { + console.log(`\n存钱罐提取已达到当天上限:${result.data.dayCeil}\n`) + } + } else { + console.log(`\n查询存钱罐状态失败:${result.msg}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//提取存钱罐金币 +async function clickPiggy() { + let caller = printCaller() + //rndtime = Math.round(new Date().getTime()) + reqBody = `{"appId":"${blackJSON['appId']}"}` + encodeBody = encodeURIComponent(reqBody) + return new Promise((resolve) => { + let url = { + url: 'https://market.chuxingyouhui.com/promo-bargain-api/activity/golden/api/v1_0/click', + headers: { + 'Host' : 'market.chuxingyouhui.com', + 'request-body' : encodeBody, + 'Accept' : 'application/json, text/plain, */*', + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding' : 'gzip, deflate, br', + 'token' : blackJSON['token'], + 'Content-Type' : 'application/json;charset=utf-8', + 'Origin' : 'https://m.black-unique.com', + 'User-Agent' : blackJSON['User-Agent'], + 'black-token' : blackJSON['black-token'], + 'Referer' : 'https://m.black-unique.com/', + 'Connection' : 'keep-alive', + }, + body: reqBody + }; + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + console.log(`\n提取存钱罐金币成功,金币余额${result.data.goldenAmount}\n`) + } else { + console.log(`\n提取存钱罐金币失败:${result.msg}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//查询翻牌领提现额度 +async function getUserFlopRecord() { + let caller = printCaller() + //rndtime = Math.round(new Date().getTime()) + reqBody = `{"appId":"${blackJSON['appId']}","queryDay":"${todayDate}"}` + encodeBody = encodeURIComponent(reqBody) + return new Promise((resolve) => { + let url = { + url: 'https://market.chuxingyouhui.com/promo-bargain-api/activity/flop/api/getUserFlopRecord', + headers: { + 'Host' : 'market.chuxingyouhui.com', + 'request-body' : encodeBody, + 'Accept' : 'application/json, text/plain, */*', + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding' : 'gzip, deflate, br', + 'token' : blackJSON['token'], + 'Content-Type' : 'application/json;charset=utf-8', + 'Origin' : 'https://m.black-unique.com', + 'User-Agent' : blackJSON['User-Agent'], + 'black-token' : blackJSON['black-token'], + 'Referer' : 'https://m.black-unique.com/', + 'Connection' : 'keep-alive', + }, + body: reqBody + }; + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + if(result.data && result.data.recordList && Array.isArray(result.data.recordList)) { + for (let i=0; i { + let url = { + url: 'https://market.chuxingyouhui.com/promo-bargain-api/activity/flop/api/flop', + headers: { + 'Host' : 'market.chuxingyouhui.com', + 'request-body' : encodeBody, + 'Accept' : 'application/json, text/plain, */*', + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding' : 'gzip, deflate, br', + 'token' : blackJSON['token'], + 'Content-Type' : 'application/json;charset=utf-8', + 'Origin' : 'https://m.black-unique.com', + 'User-Agent' : blackJSON['User-Agent'], + 'black-token' : blackJSON['black-token'], + 'Referer' : 'https://m.black-unique.com/', + 'Connection' : 'keep-alive', + }, + body: reqBody + }; + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + console.log(`翻牌获得提现额度:${result.data.amount}元`) + } else { + console.log(`翻牌获得提现额度失败:${result.msg}`) + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//定点红包列表 +async function listRedPacket() { + let caller = printCaller() + //rndtime = Math.round(new Date().getTime()) + return new Promise((resolve) => { + let url = { + url: 'https://fanxian-api.chuxingyouhui.com/api/redPacketIncome/v1_0/listRedPacket', + headers: { + 'Host' : 'fanxian-api.chuxingyouhui.com', + 'phpUserId' : blackJSON['phpUserId'], + 'device-value' : blackJSON['device-value'], + 'device-type' : blackJSON['device-type'], + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'newcomer' : 'true', + 'Accept-Encoding' : 'gzip, deflate, br', + 'token' : blackJSON['token'], + 'Origin' : 'https://m.black-unique.com', + 'User-Agent' : blackJSON['User-Agent'], + 'Referer' : 'https://m.black-unique.com/', + 'Content-Length' : '0', + 'Connection' : 'keep-alive', + 'Accept' : 'application/json, text/plain, */*', + }, + }; + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + if(result.data && result.data.redPacketList && Array.isArray(result.data.redPacketList)) { + for(let i=0; i { + let url = { + url: 'https://pyp-api.chuxingyouhui.com/api/knightCard/redPacket/v1_0/openRedPacket', + headers: { + 'Host' : 'pyp-api.chuxingyouhui.com', + 'Accept' : 'application/json, text/plain, */*', + 'phpUserId' : blackJSON['phpUserId'], + 'device-value' : blackJSON['device-value'], + 'ymd' : '0', + 'device-type' : blackJSON['device-type'], + 'newcomer' : 'true', + 'token' : blackJSON['token'], + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Origin' : 'https://m.black-unique.com', + 'User-Agent' : blackJSON['User-Agent'], + 'Referer' : 'https://m.black-unique.com/', + 'Content-Length' : '87', + 'Accept-Encoding' : 'gzip, deflate, br', + 'Connection' : 'keep-alive', + 'Content-Type' : 'application/json;charset=utf-8', + }, + body: `{"click":false,"sign":"${sign}","ts":"${rndtime}"}` + }; + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + console.log(result) + if(result.code == 200) { + console.log(`打开红包获得:${result.data.money}现金`) + } else { + console.log(`打开红包失败:${result.msg}`) + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//////////////////////////////////////////////////////////////////// +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function printCaller(){ + return (new Error()).stack.split("\n")[2].trim().split(" ")[1] +} + +function formatDateTime(inputTime) { + var date = new Date(inputTime); + var y = date.getFullYear(); + var m = date.getMonth() + 1; + m = m < 10 ? ('0' + m) : m; + var d = date.getDate(); + d = d < 10 ? ('0' + d) : d; + var h = date.getHours(); + h = h < 10 ? ('0' + h) : h; + var minute = date.getMinutes(); + var second = date.getSeconds(); + minute = minute < 10 ? ('0' + minute) : minute; + second = second < 10 ? ('0' + second) : second; + return `${y}-${m}-${d}`; +}; + +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, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `\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 } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), a = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(a, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t) { let e = { "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 s in e) new RegExp("(" + s + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))); let h = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; h.push(e), s && h.push(s), i && h.push(i), console.log(h.join("\n")), this.logs = this.logs.concat(h) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } From 45ed5b4709e8a4e1097ab90bae00eb58329d39b8 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Mon, 15 Nov 2021 10:06:04 +0800 Subject: [PATCH 07/75] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9C=88X=E9=87=8D?= =?UTF-8?q?=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- blackUnique.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blackUnique.js b/blackUnique.js index f2ccf2d..a07d6d1 100644 --- a/blackUnique.js +++ b/blackUnique.js @@ -20,7 +20,7 @@ V2P,圈X:重写方法 -- 点击右下角【我的】-> 【每日签到赚现 0 * * * * https://raw.githubusercontent.com/leafxcy/JavaScript/main/blackUnique.js, tag=全球购骑士特权, enabled=true [rewrite_local] https://pyp-api.chuxingyouhui.com/api/app/userCenter/v1/info url script-request-header https://raw.githubusercontent.com/leafxcy/JavaScript/main/blackUnique.js -https://market.chuxingyouhui.com/promo-bargain-api/activity/mqq/api/indexTopInfo? url https://raw.githubusercontent.com/leafxcy/JavaScript/main/blackUnique.js +https://market.chuxingyouhui.com/promo-bargain-api/activity/mqq/api/indexTopInfo? url script-request-header https://raw.githubusercontent.com/leafxcy/JavaScript/main/blackUnique.js [MITM] hostname = *.chuxingyouhui.com From 3516269d1664bc85b380e31da1aef27f7f49d70c Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Mon, 15 Nov 2021 11:22:52 +0800 Subject: [PATCH 08/75] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=87=8D=E5=86=99?= =?UTF-8?q?=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- blackUnique.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/blackUnique.js b/blackUnique.js index a07d6d1..2eeb1d5 100644 --- a/blackUnique.js +++ b/blackUnique.js @@ -9,8 +9,8 @@ https://raw.githubusercontent.com/leafxcy/JavaScript/main/blackUnique.jpg 暂不支持多账号 青龙: -捉https://pyp-api.chuxingyouhui.com/api/app/userCenter/v1/info的包,获得appId -捉https://market.chuxingyouhui.com/promo-bargain-api/activity/mqq/api/indexTopInfo?的包,获得header +捉https://market.chuxingyouhui.com/promo-bargain-api/activity/mqq/api/indexTopInfo?的包,获得appId +捉https://pyp-api.chuxingyouhui.com/api/app/userCenter/v1/info的包,获得其他header 然后填在blackJSON里面,注意按照JSON格式填写。用青龙面板的环境变量或者外面用双引号的,字符串内需要用\"转义 export blackJSON='{"black-token":"", "token":"", "User-Agent":"", "device-value":"", "device-type":"", "phpUserId":"", "appId":""}' @@ -20,7 +20,7 @@ V2P,圈X:重写方法 -- 点击右下角【我的】-> 【每日签到赚现 0 * * * * https://raw.githubusercontent.com/leafxcy/JavaScript/main/blackUnique.js, tag=全球购骑士特权, enabled=true [rewrite_local] https://pyp-api.chuxingyouhui.com/api/app/userCenter/v1/info url script-request-header https://raw.githubusercontent.com/leafxcy/JavaScript/main/blackUnique.js -https://market.chuxingyouhui.com/promo-bargain-api/activity/mqq/api/indexTopInfo? url script-request-header https://raw.githubusercontent.com/leafxcy/JavaScript/main/blackUnique.js +https://market.chuxingyouhui.com/promo-bargain-api/activity/mqq/api/indexTopInfo? url script-request-header https://raw.githubusercontent.com/leafxcy/JavaScript/main/blackUnique.js [MITM] hostname = *.chuxingyouhui.com From 5286a7caf6b4e2388c00d3a94b17802ec276c075 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Mon, 15 Nov 2021 11:24:51 +0800 Subject: [PATCH 09/75] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- blackUnique.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/blackUnique.js b/blackUnique.js index 2eeb1d5..12c70ee 100644 --- a/blackUnique.js +++ b/blackUnique.js @@ -5,8 +5,9 @@ APP:全球购骑士特权 https://raw.githubusercontent.com/leafxcy/JavaScript/main/blackUnique.jpg 定时为每小时一次,务必在0分到5分之间运行,目前只写了每日领勋章和领取存钱罐的任务,大概每天3毛 +手动点一下签到页面的【收零花钱】领一次金币 需要看视频的任务暂时搞不定,能搞定再加上 -暂不支持多账号 +只测试了IOS的青龙和V2P,暂不支持多账号 青龙: 捉https://market.chuxingyouhui.com/promo-bargain-api/activity/mqq/api/indexTopInfo?的包,获得appId From 5e480965a2a6f60a33b5f7391471208e154b5e22 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Tue, 16 Nov 2021 10:01:24 +0800 Subject: [PATCH 10/75] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9E=9C=E5=9B=AD?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=92=8C=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- blackUnique.js | 957 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 921 insertions(+), 36 deletions(-) diff --git a/blackUnique.js b/blackUnique.js index 12c70ee..7862ff4 100644 --- a/blackUnique.js +++ b/blackUnique.js @@ -5,8 +5,8 @@ APP:全球购骑士特权 https://raw.githubusercontent.com/leafxcy/JavaScript/main/blackUnique.jpg 定时为每小时一次,务必在0分到5分之间运行,目前只写了每日领勋章和领取存钱罐的任务,大概每天3毛 -手动点一下签到页面的【收零花钱】领一次金币 -需要看视频的任务暂时搞不定,能搞定再加上 +提现需要关注微信公众号,在公众号里申请提现 +请手动点一下签到页面的【收零花钱】领一次金币,去【果园】里选择水果种子 只测试了IOS的青龙和V2P,暂不支持多账号 青龙: @@ -29,16 +29,29 @@ hostname = *.chuxingyouhui.com const jsname = '全球购骑士特权' const $ = Env(jsname) -//const notifyFlag = 1; //0为关闭通知,1为打开通知,默认为1 +const notifyFlag = 1; //0为关闭通知,1为打开通知,默认为1 const logDebug = 0 //const notify = $.isNode() ? require('./sendNotify') : ''; -//let notifyStr = '' +let notifyStr = '' let blankJSON = {"black-token":"", "token":"", "User-Agent":"", "device-value":"", "device-type":"", "phpUserId":"", "appId":""} let blackJSONStr = ($.isNode() ? (process.env.blackJSON) : ($.getval('blackJSON'))) || '' let blackJSON = blackJSONStr ? JSON.parse(blackJSONStr) : blankJSON +let reqTime = '' +let userSign = '' +let redPacketId = '' +let fruitId = '' +let userFruitId = '' +let activityId = '' +let redPacketCount = 0 +let waterCount = 0 +let fertilizerCount = 0 +let clickTreeTimes = 5 +let signRetryTimes = 3 +let signRetryCount = 0 + var todayDate = formatDateTime(new Date()); let bussinessInfo = '{}' @@ -59,21 +72,32 @@ let rndtime = "" //毫秒 return } + console.log('\n提现需要关注微信公众号,在公众号里申请提现') + await querySignStatus() - await $.wait(1000) await listUserTask() - await $.wait(1000) - //红包需要sign,翻倍视频也需要sign //await listRedPacket() await queryPiggyInfo() - await $.wait(1000) //翻卡看视频需要前置条件 //await getUserFlopRecord() + await userFruitDetail() + + await waterTaskList() + + await nutrientTaskList() + + await userFertilizerDetail() + + await getTreeCoupon() + + await userInfo() + + await showmsg() } @@ -92,7 +116,7 @@ async function showmsg() { if (notifyFlag == 1) { $.msg(notifyBody); - if ($.isNode()){await notify.sendNotify($.name, notifyBody );} + //if ($.isNode()){await notify.sendNotify($.name, notifyBody );} } } @@ -101,34 +125,41 @@ async function getRewrite() if($request.url.indexOf("userCenter/v1/info") > -1) { if($request.headers['black-token']) { blackJSON['black-token'] = $request.headers['black-token'] - console.log(`获取到black-token: ${blackJSON['black-token']}`) + $.log(`获取到black-token: ${blackJSON['black-token']}`) + $.msg(`获取到black-token: ${blackJSON['black-token']}`) } if($request.headers['token']) { blackJSON['token'] = $request.headers['token'] - console.log(`获取到token: ${blackJSON['token']}`) + $.log(`获取到token: ${blackJSON['token']}`) + $.msg(`获取到token: ${blackJSON['token']}`) } if($request.headers['User-Agent']) { blackJSON['User-Agent'] = $request.headers['User-Agent'] - console.log(`获取到User-Agent: ${blackJSON['User-Agent']}`) + $.log(`获取到User-Agent: ${blackJSON['User-Agent']}`) + $.msg(`获取到User-Agent: ${blackJSON['User-Agent']}`) } if($request.headers['device-value']) { blackJSON['device-value'] = $request.headers['device-value'] - console.log(`获取到device-value: ${blackJSON['device-value']}`) + $.log(`获取到device-value: ${blackJSON['device-value']}`) + $.msg(`获取到device-value: ${blackJSON['device-value']}`) } if($request.headers['device-type']) { blackJSON['device-type'] = $request.headers['device-type'] - console.log(`获取到device-type: ${blackJSON['device-type']}`) + $.log(`获取到device-type: ${blackJSON['device-type']}`) + $.msg(`获取到device-type: ${blackJSON['device-type']}`) } if($request.headers['phpUserId']) { blackJSON['phpUserId'] = $request.headers['phpUserId'] - console.log(`获取到phpUserId: ${blackJSON['phpUserId']}`) + $.log(`获取到phpUserId: ${blackJSON['phpUserId']}`) + $.msg(`获取到phpUserId: ${blackJSON['phpUserId']}`) } $.setdata(JSON.stringify(blackJSON),'blackJSON') } if($request.url.indexOf("mqq/api/indexTopInfo?appId=") > -1) { blackJSON['appId'] = $request.url.match(/appId=([\w]+)/)[1] - console.log(`获取到appId: ${blackJSON['appId']}`) + $.log(`获取到appId: ${blackJSON['appId']}`) + $.msg(`获取到appId: ${blackJSON['appId']}`) $.setdata(JSON.stringify(blackJSON),'blackJSON') } } @@ -138,6 +169,7 @@ async function checkEnv() if(!blackJSON['black-token'] || !blackJSON['token'] || !blackJSON['User-Agent'] || !blackJSON['device-value'] || !blackJSON['device-type'] || !blackJSON['phpUserId'] || !blackJSON['appId']) { $.log(`捉包信息不全,请检查空白字段并重新捉包: ${JSON.stringify(blackJSON)}\n`) + $.msg(`捉包信息不全,请检查空白字段并重新捉包: ${JSON.stringify(blackJSON)}\n`) return false } @@ -173,7 +205,7 @@ async function getBussinessInfo(adId,activityType,bussinessType,version) { $.post(url, async (err, resp, data) => { try { if (err) { - console.log(caller + ": API请求失败"); + console.log("Fucntion " + caller + ": API请求失败"); console.log(JSON.stringify(err)); $.logErr(err); } else { @@ -219,7 +251,7 @@ async function querySignStatus() { $.get(url, async (err, resp, data) => { try { if (err) { - console.log(caller + ": API请求失败"); + console.log("Fucntion " + caller + ": API请求失败"); console.log(JSON.stringify(err)); $.logErr(err); } else { @@ -264,7 +296,7 @@ async function doSign() { url: 'https://market.chuxingyouhui.com/promo-bargain-api/activity/weekSign/api/v1_0/sign?appId='+blackJSON['appId'], headers: { 'Host' : 'market.chuxingyouhui.com', - 'request-body' : reqBody, + 'request-body' : encodeBody, 'Accept' : 'application/json, text/plain, */*', 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', 'Accept-Encoding' : 'gzip, deflate, br', @@ -276,18 +308,18 @@ async function doSign() { 'Referer' : 'https://m.black-unique.com/', 'Connection' : 'keep-alive', }, + body: reqBody }; $.post(url, async (err, resp, data) => { try { if (err) { - console.log(caller + ": API请求失败"); + console.log("Fucntion " + caller + ": API请求失败"); console.log(JSON.stringify(err)); $.logErr(err); } else { if (safeGet(data)) { let result = JSON.parse(data); if(logDebug) console.log(result); - console.log(result) if(result.code == 200) { console.log(`\n签到成功获得:${result.data.reward}金币,已连续签到${result.data.continuouslyDay}天\n`) } else { @@ -332,7 +364,7 @@ async function listUserTask() { $.post(url, async (err, resp, data) => { try { if (err) { - console.log(caller + ": API请求失败"); + console.log("Fucntion " + caller + ": API请求失败"); console.log(JSON.stringify(err)); $.logErr(err); } else { @@ -399,7 +431,7 @@ async function doTask(taskType,userTaskId,taskTitle) { $.post(url, async (err, resp, data) => { try { if (err) { - console.log(caller + ": API请求失败"); + console.log("Fucntion " + caller + ": API请求失败"); console.log(JSON.stringify(err)); $.logErr(err); } else { @@ -445,7 +477,7 @@ async function queryPiggyInfo() { $.get(url, async (err, resp, data) => { try { if (err) { - console.log(caller + ": API请求失败"); + console.log("Fucntion " + caller + ": API请求失败"); console.log(JSON.stringify(err)); $.logErr(err); } else { @@ -502,7 +534,7 @@ async function clickPiggy() { $.post(url, async (err, resp, data) => { try { if (err) { - console.log(caller + ": API请求失败"); + console.log("Fucntion " + caller + ": API请求失败"); console.log(JSON.stringify(err)); $.logErr(err); } else { @@ -553,7 +585,7 @@ async function getUserFlopRecord() { $.post(url, async (err, resp, data) => { try { if (err) { - console.log(caller + ": API请求失败"); + console.log("Fucntion " + caller + ": API请求失败"); console.log(JSON.stringify(err)); $.logErr(err); } else { @@ -613,7 +645,7 @@ async function userFlop(serialNumber) { $.post(url, async (err, resp, data) => { try { if (err) { - console.log(caller + ": API请求失败"); + console.log("Fucntion " + caller + ": API请求失败"); console.log(JSON.stringify(err)); $.logErr(err); } else { @@ -640,6 +672,9 @@ async function userFlop(serialNumber) { async function listRedPacket() { let caller = printCaller() //rndtime = Math.round(new Date().getTime()) + curTime = new Date() + currentHour = curTime.getHours() + let isGetRedTime = ((currentHour < 23) && (currentHour > 6)) ? 1 : 0 return new Promise((resolve) => { let url = { url: 'https://fanxian-api.chuxingyouhui.com/api/redPacketIncome/v1_0/listRedPacket', @@ -663,7 +698,7 @@ async function listRedPacket() { $.post(url, async (err, resp, data) => { try { if (err) { - console.log(caller + ": API请求失败"); + console.log("Fucntion " + caller + ": API请求失败"); console.log(JSON.stringify(err)); $.logErr(err); } else { @@ -671,10 +706,17 @@ async function listRedPacket() { let result = JSON.parse(data); if(logDebug) console.log(result); if(result.code == 200) { - if(result.data && result.data.redPacketList && Array.isArray(result.data.redPacketList)) { + if(isGetRedTime == 1 && result.data && result.data.redPacketList && Array.isArray(result.data.redPacketList)) { + redPacketCount = 0 for(let i=0; i 0) { + redPacketCount++ + } + if(redItem.status == 2 && redItem.money == 0 && redPacketCount < 7) { + signRetryCount = 0 + //await getSignInfo('open') + //await $.wait(500) await openRedPacket() } } @@ -696,8 +738,7 @@ async function listRedPacket() { //开定点红包 async function openRedPacket() { let caller = printCaller() - rndtime = Math.round(new Date().getTime()/1000) - let sign = ``//todo + //rndtime = Math.round(new Date().getTime()/1000) return new Promise((resolve) => { let url = { url: 'https://pyp-api.chuxingyouhui.com/api/knightCard/redPacket/v1_0/openRedPacket', @@ -714,26 +755,28 @@ async function openRedPacket() { 'Origin' : 'https://m.black-unique.com', 'User-Agent' : blackJSON['User-Agent'], 'Referer' : 'https://m.black-unique.com/', - 'Content-Length' : '87', 'Accept-Encoding' : 'gzip, deflate, br', 'Connection' : 'keep-alive', 'Content-Type' : 'application/json;charset=utf-8', }, - body: `{"click":false,"sign":"${sign}","ts":"${rndtime}"}` + body: `{"click":false,"sign":"${userSign}","ts":"${reqTime}"}` }; $.post(url, async (err, resp, data) => { try { if (err) { - console.log(caller + ": API请求失败"); + console.log("Fucntion " + caller + ": API请求失败"); console.log(JSON.stringify(err)); $.logErr(err); } else { if (safeGet(data)) { let result = JSON.parse(data); if(logDebug) console.log(result); - console.log(result) if(result.code == 200) { console.log(`打开红包获得:${result.data.money}现金`) + signRetryCount = 0 + //await getSignInfo('boom') + //await $.wait(2000) + await boomRedPacket() } else { console.log(`打开红包失败:${result.msg}`) } @@ -748,6 +791,848 @@ async function openRedPacket() { }); } +//定点红包翻倍 +async function boomRedPacket() { + let caller = printCaller() + //rndtime = Math.round(new Date().getTime()/1000) + return new Promise((resolve) => { + let url = { + url: 'https://fanxian-api.chuxingyouhui.com/api/redPacket/increase/v1_0/boom', + headers: { + 'Host' : 'fanxian-api.chuxingyouhui.com', + 'Accept' : 'application/json, text/plain, */*', + 'phpUserId' : blackJSON['phpUserId'], + 'device-value' : blackJSON['device-value'], + 'device-type' : blackJSON['device-type'], + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'token' : blackJSON['token'], + 'Accept-Encoding' : 'gzip, deflate, br', + 'Origin' : 'https://m.black-unique.com', + 'User-Agent' : blackJSON['User-Agent'], + 'Referer' : 'https://m.black-unique.com/', + 'Connection' : 'keep-alive', + 'Content-Type' : 'application/json;charset=utf-8', + }, + body: `{"redPacketId":"${redPacketId}","sign":"${userSign}","ts":"${reqTime}"}`, + }; + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log("Fucntion " + caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + console.log(`红包翻倍获得:${result.data.redPacketIncreaseAmount}现金`) + } else { + console.log(`红包翻倍失败:${result.msg}`) + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//果园状态 +async function userFruitDetail() { + let caller = printCaller() + //rndtime = Math.round(new Date().getTime()/1000) + reqBody = `{"appId":"${blackJSON['appId']}","isMiniProgram":false}` + encodeBody = encodeURIComponent(reqBody) + return new Promise((resolve) => { + let url = { + url: 'https://market.chuxingyouhui.com/promo-bargain-api/garden/api/v1_0/userFruitDetail', + headers: { + 'Host' : 'market.chuxingyouhui.com', + 'request-body' : encodeBody, + 'Accept' : 'application/json, text/plain, */*', + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding' : 'gzip, deflate, br', + 'token' : blackJSON['token'], + 'Content-Type' : 'application/json;charset=utf-8', + 'Origin' : 'https://m.black-unique.com', + 'User-Agent' : blackJSON['User-Agent'], + 'black-token' : blackJSON['black-token'], + 'Connection' : 'keep-alive', + }, + body: reqBody, + }; + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log("Fucntion " + caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + console.log(`你现在种的水果是 ${result.data.fruitName} ${result.data.specification},${result.data.progressWord}`) + console.log(`今天已浇水${result.data.wateredTimes}次,剩余水滴数量:${result.data.remainAmount}`) + fruitId = result.data.fruitId + userFruitId = result.data.userFruitId + activityId = result.data.activityId + if(result.data.canReceiveStatus == 1 && result.data.canReceiveAmount > 0) { + await receiveWaterDrop('TOMORROW_REWARD','null','每日水滴') + } + if(result.data.gardenStageRewardResp && result.data.gardenStageRewardResp.status == 1) { + await fruitStageReward() + } + if(result.data.remainAmount >= 10) { + waterCount = 0 + console.log(`开始浇水,请等候......`) + await wateringFruit() + console.log(`浇水结束,本次共浇水${waterCount}次`) + } + } else { + console.log(`查询果园状态失败:${result.msg}`) + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//果园水果进度奖励 +async function fruitStageReward() { + let caller = printCaller() + //rndtime = Math.round(new Date().getTime()/1000) + reqBody = `{"userFruitId":"${userFruitId}","appId":"${blackJSON['appId']}"}` + encodeBody = encodeURIComponent(reqBody) + return new Promise((resolve) => { + let url = { + url: 'https://market.chuxingyouhui.com/promo-bargain-api/garden/api/v1_0/receiveStageReward', + headers: { + 'Host' : 'market.chuxingyouhui.com', + 'request-body' : encodeBody, + 'Accept' : 'application/json, text/plain, */*', + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding' : 'gzip, deflate, br', + 'token' : blackJSON['token'], + 'Content-Type' : 'application/json;charset=utf-8', + 'Origin' : 'https://m.black-unique.com', + 'User-Agent' : blackJSON['User-Agent'], + 'black-token' : blackJSON['black-token'], + 'Connection' : 'keep-alive', + }, + body: reqBody, + }; + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log("Fucntion " + caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + console.log(`领取水果进度奖励:${result.data.rewardNum}水滴`) + } else { + console.log(`领取水果进度奖励失败:${result.msg}`) + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//果园浇水 +async function wateringFruit() { + let caller = printCaller() + //rndtime = Math.round(new Date().getTime()/1000) + reqBody = `{"userFruitId":"${userFruitId}"}` + encodeBody = encodeURIComponent(reqBody) + return new Promise((resolve) => { + let url = { + url: 'https://market.chuxingyouhui.com/promo-bargain-api/garden/api/v1_0/watering', + headers: { + 'Host' : 'market.chuxingyouhui.com', + 'request-body' : encodeBody, + 'Accept' : 'application/json, text/plain, */*', + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding' : 'gzip, deflate, br', + 'token' : blackJSON['token'], + 'Content-Type' : 'application/json;charset=utf-8', + 'Origin' : 'https://m.black-unique.com', + 'User-Agent' : blackJSON['User-Agent'], + 'black-token' : blackJSON['black-token'], + 'Connection' : 'keep-alive', + }, + body: reqBody, + }; + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log("Fucntion " + caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + if(result.data.level && !result.data.remindType) { + if(result.data.upgrade == true) { + console.log(`果树升级到 ${result.data.level} 获得:${result.data.upgradeReward}水滴`) + } + waterCount++ + await $.wait(500) + await wateringFruit() + } + } else { + console.log(`浇水失败:${result.msg}`) + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//果园水滴任务 +async function waterTaskList() { + let caller = printCaller() + //rndtime = Math.round(new Date().getTime()/1000) + reqBody = `{"activityId":"${activityId}","userFruitId":"${userFruitId}","clientType":1}` + encodeBody = encodeURIComponent(reqBody) + return new Promise((resolve) => { + let url = { + url: 'https://market.chuxingyouhui.com/promo-bargain-api/garden/api/v1_0/userTaskList', + headers: { + 'Host' : 'market.chuxingyouhui.com', + 'request-body' : encodeBody, + 'Accept' : 'application/json, text/plain, */*', + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding' : 'gzip, deflate, br', + 'token' : blackJSON['token'], + 'Content-Type' : 'application/json;charset=utf-8', + 'Origin' : 'https://m.black-unique.com', + 'User-Agent' : blackJSON['User-Agent'], + 'black-token' : blackJSON['black-token'], + 'Connection' : 'keep-alive', + }, + body: reqBody, + }; + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log("Fucntion " + caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + if(result.data && result.data.taskList && Array.isArray(result.data.taskList)) { + for(let i=0; i -1 || + taskItem.taskType.indexOf('WATCH_VIDEO') > -1 || + taskItem.taskType.indexOf('APP_LOGIN') > -1) { + if(taskItem.status == 0) { + await doWaterTask(taskItem.taskType,taskItem.taskId,taskItem.title) + } else if(taskItem.status == 1) { + await receiveWaterDrop(taskItem.taskType,taskItem.userTaskId,taskItem.title) + } + } else if(taskItem.taskType.indexOf('EVERY_DAY_WATERING_REWARD') > -1 || + taskItem.taskType.indexOf('OPEN_CHEST') > -1) { + if(taskItem.status == 1) { + await receiveWaterDrop(taskItem.taskType,taskItem.userTaskId,taskItem.title) + } + } else { + if(taskItem.status == 0) { + await receiveWaterDrop(taskItem.taskType,taskItem.userTaskId,taskItem.title) + } + } + } + } + } else { + console.log(`获取果园水滴任务失败:${result.msg}`) + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//果园-完成水滴任务 +async function doWaterTask(taskType,taskId,taskTitle) { + let caller = printCaller() + //rndtime = Math.round(new Date().getTime()) + reqBody = `{"userFruitId":"${userFruitId}","taskType":"${taskType}","taskId":"${taskId}"}` + encodeBody = encodeURIComponent(reqBody) + return new Promise((resolve) => { + let url = { + url: 'https://market.chuxingyouhui.com/promo-bargain-api/garden/api/v1_0/doTask', + headers: { + 'Host' : 'market.chuxingyouhui.com', + 'request-body' : encodeBody, + 'Accept' : 'application/json, text/plain, */*', + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding' : 'gzip, deflate, br', + 'token' : blackJSON['token'], + 'Content-Type' : 'application/json;charset=utf-8', + 'Origin' : 'https://m.black-unique.com', + 'User-Agent' : blackJSON['User-Agent'], + 'black-token' : blackJSON['black-token'], + 'Referer' : 'https://m.black-unique.com/', + 'Connection' : 'keep-alive', + }, + body: reqBody + }; + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log("Fucntion " + caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + console.log(`完成水滴任务【${taskTitle}】成功`) + } else { + console.log(`完成水滴任务【${taskTitle}】失败:${result.msg}`) + } + await $.wait(1000) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//果园-领取水滴 +async function receiveWaterDrop(taskType,userTaskId,taskTitle) { + let caller = printCaller() + //rndtime = Math.round(new Date().getTime()) + reqBody = `{"userFruitId":"${userFruitId}","taskType":"${taskType}","userTaskId":${userTaskId}}` + encodeBody = encodeURIComponent(reqBody) + return new Promise((resolve) => { + let url = { + url: 'https://market.chuxingyouhui.com/promo-bargain-api/garden/api/v1_0/receiveWaterDrop', + headers: { + 'Host' : 'market.chuxingyouhui.com', + 'request-body' : encodeBody, + 'Accept' : 'application/json, text/plain, */*', + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding' : 'gzip, deflate, br', + 'token' : blackJSON['token'], + 'Content-Type' : 'application/json;charset=utf-8', + 'Origin' : 'https://m.black-unique.com', + 'User-Agent' : blackJSON['User-Agent'], + 'black-token' : blackJSON['black-token'], + 'Referer' : 'https://m.black-unique.com/', + 'Connection' : 'keep-alive', + }, + body: reqBody + }; + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log("Fucntion " + caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + console.log(`领取水滴任务【${taskTitle}】奖励:${result.data.reward}水滴`) + } else { + console.log(`领取水滴任务【${taskTitle}】奖励失败:${result.msg}`) + } + await $.wait(1000) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//果园肥料任务 +async function nutrientTaskList() { + let caller = printCaller() + //rndtime = Math.round(new Date().getTime()/1000) + reqBody = `{"activityId":"${activityId}","userFruitId":"${userFruitId}"}` + encodeBody = encodeURIComponent(reqBody) + return new Promise((resolve) => { + let url = { + url: 'https://market.chuxingyouhui.com/promo-bargain-api/garden/api/v1_0/getUserNutrientTaskList', + headers: { + 'Host' : 'market.chuxingyouhui.com', + 'request-body' : encodeBody, + 'Accept' : 'application/json, text/plain, */*', + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding' : 'gzip, deflate, br', + 'token' : blackJSON['token'], + 'Content-Type' : 'application/json;charset=utf-8', + 'Origin' : 'https://m.black-unique.com', + 'User-Agent' : blackJSON['User-Agent'], + 'black-token' : blackJSON['black-token'], + 'Connection' : 'keep-alive', + }, + body: reqBody, + }; + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log("Fucntion " + caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + if(result.data && result.data.gardenFertilizerTaskDtoList && Array.isArray(result.data.gardenFertilizerTaskDtoList)) { + for(let i=0; i { + let url = { + url: 'https://market.chuxingyouhui.com/promo-bargain-api/garden/api/v1_0/doTaskForNutrient', + headers: { + 'Host' : 'market.chuxingyouhui.com', + 'request-body' : encodeBody, + 'Accept' : 'application/json, text/plain, */*', + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding' : 'gzip, deflate, br', + 'token' : blackJSON['token'], + 'Content-Type' : 'application/json;charset=utf-8', + 'Origin' : 'https://m.black-unique.com', + 'User-Agent' : blackJSON['User-Agent'], + 'black-token' : blackJSON['black-token'], + 'Referer' : 'https://m.black-unique.com/', + 'Connection' : 'keep-alive', + }, + body: reqBody + }; + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log("Fucntion " + caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + console.log(`完成肥料任务【${taskTitle}】成功`) + } else { + console.log(`完成肥料任务【${taskTitle}】失败:${result.msg}`) + } + await $.wait(1000) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//果园肥料状态 +async function userFertilizerDetail(taskType,taskId,taskTitle) { + let caller = printCaller() + //rndtime = Math.round(new Date().getTime()) + reqBody = `{"activityId":"${activityId}","userFruitId":"${userFruitId}"}` + encodeBody = encodeURIComponent(reqBody) + return new Promise((resolve) => { + let url = { + url: 'https://market.chuxingyouhui.com/promo-bargain-api/garden/api/v1_0/getUserFertilizerTool', + headers: { + 'Host' : 'market.chuxingyouhui.com', + 'request-body' : encodeBody, + 'Accept' : 'application/json, text/plain, */*', + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding' : 'gzip, deflate, br', + 'token' : blackJSON['token'], + 'Content-Type' : 'application/json;charset=utf-8', + 'Origin' : 'https://m.black-unique.com', + 'User-Agent' : blackJSON['User-Agent'], + 'black-token' : blackJSON['black-token'], + 'Referer' : 'https://m.black-unique.com/', + 'Connection' : 'keep-alive', + }, + body: reqBody + }; + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log("Fucntion " + caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + fertilizerCount = 0 + if(result.data.userSmallFertilizerTool.remainNum > 0 || result.data.userFertilizerTool.remainNum > 0) { + for(let i=0; i { + let url = { + url: 'https://market.chuxingyouhui.com/promo-bargain-api/garden/api/v1_0/useFertilizer', + headers: { + 'Host' : 'market.chuxingyouhui.com', + 'request-body' : encodeBody, + 'Accept' : 'application/json, text/plain, */*', + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding' : 'gzip, deflate, br', + 'token' : blackJSON['token'], + 'Content-Type' : 'application/json;charset=utf-8', + 'Origin' : 'https://m.black-unique.com', + 'User-Agent' : blackJSON['User-Agent'], + 'black-token' : blackJSON['black-token'], + 'Referer' : 'https://m.black-unique.com/', + 'Connection' : 'keep-alive', + }, + body: reqBody + }; + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log("Fucntion " + caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + //施肥成功 + } else { + console.log(`施肥失败:${result.msg}`) + } + await $.wait(500) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//果园-摇树得优惠券 +async function getTreeCoupon() { + console.log(`\n开始摇树${clickTreeTimes}次得优惠券`) + for(let i=0; i { + let url = { + url: 'https://market.chuxingyouhui.com/promo-bargain-api/garden/api/v1_0/clickTree', + headers: { + 'Host' : 'market.chuxingyouhui.com', + 'request-body' : encodeBody, + 'Accept' : 'application/json, text/plain, */*', + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding' : 'gzip, deflate, br', + 'token' : blackJSON['token'], + 'Content-Type' : 'application/json;charset=utf-8', + 'Origin' : 'https://m.black-unique.com', + 'User-Agent' : blackJSON['User-Agent'], + 'black-token' : blackJSON['black-token'], + 'Referer' : 'https://m.black-unique.com/', + 'Connection' : 'keep-alive', + }, + body: reqBody + }; + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log("Fucntion " + caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + await $.wait(1000) + if(result.data.hasReward == true) { + await receiveReward(result.data.rewardId,result.data.rewardName,result.data.rewardInfo) + } + } else { + console.log(`果园点击树失败:${result.msg}`) + } + await $.wait(500) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//果园-获得树干奖励 +async function receiveReward(rewardId,rewardName,rewardInfo) { + let caller = printCaller() + //rndtime = Math.round(new Date().getTime()) + reqBody = `{"rewardId":"${rewardId}","userFruitId":"${userFruitId}","appId":"${blackJSON['appId']}"}` + encodeBody = encodeURIComponent(reqBody) + return new Promise((resolve) => { + let url = { + url: 'https://market.chuxingyouhui.com/promo-bargain-api/garden/api/v1_0/receiveReward', + headers: { + 'Host' : 'market.chuxingyouhui.com', + 'request-body' : encodeBody, + 'Accept' : 'application/json, text/plain, */*', + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding' : 'gzip, deflate, br', + 'token' : blackJSON['token'], + 'Content-Type' : 'application/json;charset=utf-8', + 'Origin' : 'https://m.black-unique.com', + 'User-Agent' : blackJSON['User-Agent'], + 'black-token' : blackJSON['black-token'], + 'Referer' : 'https://m.black-unique.com/', + 'Connection' : 'keep-alive', + }, + body: reqBody + }; + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log("Fucntion " + caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + console.log(`获得优惠券:${rewardName} -- ${rewardInfo}`) + } else { + console.log(`获取优惠券失败:${result.msg}`) + } + await $.wait(1000) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//查询账户信息 +async function userInfo() { + console.log(`\n========= 账户信息 =========`) + notifyStr += `========= 账户信息 =========\n` + await userRebateInfo() + await userTopInfo() +} + +//查询现金余额 +async function userRebateInfo() { + let caller = printCaller() + //rndtime = Math.round(new Date().getTime()) + return new Promise((resolve) => { + let url = { + url: 'https://pyp-api.chuxingyouhui.com/api/app/userCenter/v1/info', + headers: { + 'Host' : 'pyp-api.chuxingyouhui.com', + 'Accept' : '*/*', + 'phpUserId' : blackJSON['phpUserId'], + 'device-value' : blackJSON['device-value'], + 'device-type' : blackJSON['device-type'], + 'Accept-Language' : 'zh-Hans-CN;q=1', + 'token' : blackJSON['token'], + 'User-Agent' : blackJSON['User-Agent'], + 'black-token' : blackJSON['black-token'], + 'Accept-Encoding' : 'gzip, deflate, br', + 'Connection' : 'keep-alive', + }, + }; + $.get(url, async (err, resp, data) => { + try { + if (err) { + console.log("Fucntion " + caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + console.log(`【现金余额】:${result.data.currencyBlanceResp.commission}`) + notifyStr += `【现金余额】:${result.data.currencyBlanceResp.commission}\n` + } else { + console.log(`查询现金余额失败:${result.msg}`) + notifyStr += `查询现金余额失败:${result.msg}\n` + } + await $.wait(200) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//查询勋章余额 +async function userTopInfo() { + let caller = printCaller() + //rndtime = Math.round(new Date().getTime()) + return new Promise((resolve) => { + let url = { + url: 'https://market.chuxingyouhui.com/promo-bargain-api/activity/mqq/api/indexTopInfo?appId='+blackJSON['appId'], + headers: { + 'Host' : 'market.chuxingyouhui.com', + 'Origin' : 'https://m.black-unique.com', + 'Accept-Encoding' : 'gzip, deflate, br', + 'Connection' : 'keep-alive', + 'black-token' : blackJSON['black-token'], + 'Accept' : 'application/json, text/plain, */*', + 'User-Agent' : blackJSON['User-Agent'], + 'Referer' : 'https://m.black-unique.com/', + 'token' : blackJSON['token'], + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + }, + }; + $.get(url, async (err, resp, data) => { + try { + if (err) { + console.log("Fucntion " + caller + ": API请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result); + if(result.code == 200) { + console.log(`【勋章余额】:${result.data.score}`) + notifyStr += `【勋章余额】:${result.data.score}\n` + } else { + console.log(`查询勋章余额失败:${result.msg}`) + notifyStr += `查询勋章余额失败:${result.msg}\n` + } + await $.wait(200) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + //////////////////////////////////////////////////////////////////// function safeGet(data) { try { From fdeb5285959564fbafa3d3ddb11764cd4d3f063d Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Wed, 17 Nov 2021 15:38:55 +0800 Subject: [PATCH 11/75] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jctq/jctq_rewrite_subscribe_tmp.json | 106 +++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 jctq/jctq_rewrite_subscribe_tmp.json diff --git a/jctq/jctq_rewrite_subscribe_tmp.json b/jctq/jctq_rewrite_subscribe_tmp.json new file mode 100644 index 0000000..513ddb7 --- /dev/null +++ b/jctq/jctq_rewrite_subscribe_tmp.json @@ -0,0 +1,106 @@ +{ + "name": "晶彩天气重写订阅", + "type": "rewrite", + "note": "仅供参考", + "author": "leaf", + "resource": "jctq_rewrite_subscribe.json", + "mitmhost": [ + "tq.xunsl.com" + ], + "rewrite": [ + { + "match": "https://tq.xunsl.com/v17/NewTask/getTaskListByWeather.json", + "target": "jctq_rewrite.js", + "enable": false + }, + { + "match": "https://tq.xunsl.com/v5/CommonReward/toGetReward.json", + "target": "jctq_rewrite.js", + "enable": false + }, + { + "match": "https://tq.xunsl.com/v5/article/info.json", + "target": "jctq_rewrite.js", + "enable": false + }, + { + "match": "https://tq.xunsl.com/v5/article/detail.json", + "target": "jctq_rewrite.js", + "enable": true + }, + { + "match": "https://tq.xunsl.com/v5/user/stay.json", + "target": "jctq_rewrite.js", + "enable": false + }, + { + "match": "https://tq.xunsl.com/v5/nameless/adlickstart.json", + "target": "jctq_rewrite.js", + "enable": true + }, + { + "match": "https://tq.xunsl.com/v5/wechat/withdraw2.json", + "target": "jctq_rewrite.js", + "enable": true + }, + { + "match": "https://tq.xunsl.com/v5/Weather/giveBoxOnWeather.json", + "target": "jctq_rewrite.js", + "enable": false + }, + { + "match": "https://tq.xunsl.com/v5/weather/giveTimeInterval.json", + "target": "jctq_rewrite.js", + "enable": true + } + ], + "task": { + "type": "skip", + "list": [ + { + "id": "nlaVhTOS", + "name": "晶彩天气看看赚", + "type": "cron", + "time": "53 8,20 * * *", + "job": { + "type": "runjs", + "target": "jctq_kkz.js" + }, + "running": true + }, + { + "id": "fc9bqL6D", + "name": "晶彩天气文章视频", + "type": "cron", + "time": "45 7,19 * * *", + "job": { + "type": "runjs", + "target": "jctq_read.js" + }, + "running": true + }, + { + "id": "HXTBby7X", + "name": "晶彩天气日常任务", + "type": "cron", + "time": "12,42 * * * *", + "job": { + "type": "runjs", + "target": "jctq_daily.js" + }, + "running": true + }, + { + "id": "LiXAgyRF", + "name": "晶彩天气任务签到", + "type": "cron", + "time": "35 22 * * *", + "job": { + "type": "runjs", + "target": "jctq_reward.js" + }, + "running": true + } + ] + } +} \ No newline at end of file From f865e20ae324ccc8f7914c7fe19c0ee099d1c516 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Wed, 17 Nov 2021 16:08:58 +0800 Subject: [PATCH 12/75] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A7=E6=99=B6?= =?UTF-8?q?=E5=BD=A9=E5=A4=A9=E6=B0=94=E8=84=9A=E6=9C=AC=EF=BC=8C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=96=B0=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jctq/jctq_Adv_video.js | 91 ----- jctq/jctq_Rotary.js | 137 ------- jctq/jctq_daily.js | 581 +++++++++++++++++++++++++++ jctq/jctq_friendSign.js | 125 ------ jctq/jctq_kkz.js | 359 +++++++++++++++++ jctq/jctq_read.js | 258 ++++++++++++ jctq/jctq_reward.js | 306 ++++++++++++++ jctq/jctq_rewrite.js | 189 +++++++++ jctq/jctq_rewrite_subscribe.json | 147 ------- jctq/jctq_rewrite_subscribe_tmp.json | 106 ----- jctq/jctq_share.js | 199 --------- jctq/jctq_task_subscribe.json | 98 ----- jctq/jctq_today_score.js | 134 ------ jctq/jctq_withdraw.js | 206 ---------- jctq/jctqbox.js | 108 ----- jctq/jctqkkz.js | 271 ------------- jctq/jctqqd.js | 118 ------ jctq/jctqwz.js | 229 ----------- 18 files changed, 1693 insertions(+), 1969 deletions(-) delete mode 100644 jctq/jctq_Adv_video.js delete mode 100644 jctq/jctq_Rotary.js create mode 100644 jctq/jctq_daily.js delete mode 100644 jctq/jctq_friendSign.js create mode 100644 jctq/jctq_kkz.js create mode 100644 jctq/jctq_read.js create mode 100644 jctq/jctq_reward.js create mode 100644 jctq/jctq_rewrite.js delete mode 100644 jctq/jctq_rewrite_subscribe.json delete mode 100644 jctq/jctq_rewrite_subscribe_tmp.json delete mode 100644 jctq/jctq_share.js delete mode 100644 jctq/jctq_task_subscribe.json delete mode 100644 jctq/jctq_today_score.js delete mode 100644 jctq/jctq_withdraw.js delete mode 100644 jctq/jctqbox.js delete mode 100644 jctq/jctqkkz.js delete mode 100644 jctq/jctqqd.js delete mode 100644 jctq/jctqwz.js diff --git a/jctq/jctq_Adv_video.js b/jctq/jctq_Adv_video.js deleted file mode 100644 index 671b3fd..0000000 --- a/jctq/jctq_Adv_video.js +++ /dev/null @@ -1,91 +0,0 @@ -const $ = new Env("晶彩天气福利视频"); -const notify = $.isNode() ? require('./sendNotify') : ''; -message = "" -let jctqCookie= $.isNode() ? (process.env.jctqCookie ? process.env.jctqCookie : "") : ($.getdata('jctqCookie') ? $.getdata('jctqCookie') : "") -let jctqCookieArr = [] -let jctqCookies = "" - -if (!jctqCookie) { - $.msg($.name, '【提示】进入点击右下角"赚钱图标",再跑一次脚本', '不知道说啥好', { - "open-url": "给您劈个叉吧" - }); - $.done() - } - else if (jctqCookie.indexOf("@") == -1 && jctqCookie.indexOf("@") == -1) { - jctqCookieArr.push(jctqCookie) - } - else if (jctqCookie.indexOf("@") > -1) { - jctqCookies = jctqCookie.split("@") - } - else if (process.env.jctqCookie && process.env.jctqCookie.indexOf('@') > -1) { - jctqCookieArr = process.env.jctqCookie.split('@'); - console.log(`您选择的是用"@"隔开\n`) - } - else { - jctqCookies = [process.env.jctqCookie] - }; - Object.keys(jctqCookies).forEach((item) => { - if (jctqCookies[item]) { - jctqCookieArr.push(jctqCookies[item]) - } - }) - - - - -!(async () => { - console.log(`共${jctqCookieArr.length}个cookie`) - for (let k = 0; k < jctqCookieArr.length; k++) { - $.message = "" - bodyVal = jctqCookieArr[k] - var time1 = Date.parse( new Date() ).toString(); - time1 = time1.substr(0,10); - jctqCookie1= time1 + '&' + bodyVal - //待处理cookie - console.log(`${jctqCookie1}`) - console.log(`--------第 ${k + 1} 个账号观看福利视频中--------\n`) - for (let j =0; j<5;j++){ - console.log(`--------第 ${j + 1} 次观看福利视频中--------\n`) - await video(jctqCookie1) - console.log("等待30秒") - await $.wait(30000); - console.log("\n\n") - } - console.log("\n\n") - } - - })() - .catch((e) => $.logErr(e)) - .finally(() => $.done()) - - -function video(jctqCookie1,timeout = 0) { - return new Promise((resolve) => { - - let url = { - url : 'https://tq.xunsl.com/V17/NewTask/recordNum.json?'+ jctqCookie1, - headers : { - 'Host': 'tq.xunsl.com', - 'Connection': 'Keep-Alive', - 'Accept-Encoding': 'gzip', - 'User-Agent': 'okhttp/3.12.2' -}, - } - $.get(url, async (err, resp, data) => { - try { - const result = JSON.parse(data) - if(result.success === true){ - console.log('\n福利视频:'+result.message) - }else{ - console.log(result) - } - } catch (e) { - } finally { - resolve() - } - },timeout) - }) -} - -function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\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}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"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 s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} - diff --git a/jctq/jctq_Rotary.js b/jctq/jctq_Rotary.js deleted file mode 100644 index c5a84ac..0000000 --- a/jctq/jctq_Rotary.js +++ /dev/null @@ -1,137 +0,0 @@ -const $ = new Env("晶彩天气大转盘抽奖"); -const notify = $.isNode() ? require('./sendNotify') : ''; -message = "" -let jctqCookie= $.isNode() ? (process.env.jctqCookie ? process.env.jctqCookie : "") : ($.getdata('jctqCookie') ? $.getdata('jctqCookie') : "") -let jctqCookieArr = [] -let jctqCookies = "" -let remain =100 -var time = Date.parse( new Date() ).toString(); -var time1 = time.substr(0,10); - -if (!jctqCookie) { - $.msg($.name, '【提示】进入点击右下角"赚钱图标",获取cookie,再跑一次脚本', '不知道说啥好', { - "open-url": "给您劈个叉吧" - }); - $.done() - } - else if (jctqCookie.indexOf("@") == -1 && jctqCookie.indexOf("@") == -1) { - jctqCookieArr.push(jctqCookie) - } - else if (jctqCookie.indexOf("@") > -1) { - jctqCookies = jctqCookie.split("@") - } - else if (process.env.jctqCookie && process.env.jctqCookie.indexOf('@') > -1) { - jctqCookieArr = process.env.jctqCookie.split('@'); - console.log(`您选择的是用"@"隔开\n`) - } - else { - jctqCookies = [process.env.jctqCookie] - }; - Object.keys(jctqCookies).forEach((item) => { - if (jctqCookies[item]) { - jctqCookieArr.push(jctqCookies[item]) - } - }) - - - -!(async () => { - console.log(`共${jctqCookieArr.length}个cookie`) - for (let k = 0; k < jctqCookieArr.length; k++) { - $.message = "" - bodyVal = jctqCookieArr[k].split('&uid=')[0]; - cookie = bodyVal.replace(/zqkey=/, "cookie=") - cookie_id = cookie.replace(/zqkey_id=/, "cookie_id=") - jctqCookie1= cookie_id + '&request_time=' + time1 + '&time=' + time1 +'&'+ bodyVal - //待处理cookie - //console.log(`${jctqCookie1}`) - console.log(`--------第 ${k + 1} 个账号转盘抽奖中--------\n`) - - console.log("\n\n") - - for(let k = 0 ; k < 100 ; k++){ - await Rotary(jctqCookie1,cookie_id,time) - await $.wait(6000); - console.log("\n\n") - } - for (let k = 1 ; k < 5 ; k++){ - id = k.toString() - await openbox(jctqCookie1,cookie_id,time,id) - await $.wait(15000) - } - console.log("\n\n") - } - })() - .catch((e) => $.logErr(e)) - .finally(() => $.done()) -//抽奖 -function Rotary(jctqCookie1,cookie_id,time) { - return new Promise((resolve, reject) => { - let url = { - url : 'https://tq.xunsl.com/WebApi/RotaryTable/turnRotary?_='+time, - headers : {'Host': 'tq.xunsl.com', - 'Referer':'https://tq.xunsl.com/html/rotaryTable/index.html?'+jctqCookie1 - }, - body:cookie_id, - } - $.post(url, async (err, resp, data) => { - try { - const result = JSON.parse(data) - if(result.status === 1 ){ - if(result.data.score !== 0){ - console.log('好家伙!你抽中了'+result.data.score + '金币') - - //console.log('剩'+remain+'次') - }else { - console.log('你抽了个寂寞') - } - - }else{ - console.log('\n抽奖失败,别问我,我也不知道为啥') - } - } catch (e) { - $.logErr(e+resp); - } finally { - resolve() - } - }) - }) -} - -function openbox(jctqCookie1,cookie_id,time,k,timeout = 0) { - return new Promise((resolve) => { - let url = { - url : 'https://tq.xunsl.com/WebApi/RotaryTable/chestReward?_='+ time, - headers : {'Host': 'tq.xunsl.com', - 'User-Agent': 'Mozilla/5.0 (Linux; Android 8.1.0; 16 X Build/OPM1.171019.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/65.0.3325.109 Mobile Safari/537.36', - 'Content-Type': 'application/x-www-form-urlencoded', - 'Accept-Language': 'zh-CN,en-US;q=0.9', - 'Accept-Encoding': 'gzip, deflate', - 'Content-Length': (cookie_id +'&num='+k).length.toString(), - 'Referer':'https://tq.xunsl.com/html/rotaryTable/index.html?'+jctqCookie1 - }, - body:cookie_id + '&num=' + k, - } - $.post(url, async (err, resp, data) => { - try { - const result = JSON.parse(data) - if(result.status === 1 ){ - if(result.data.score !== 0){ - console.log('宝箱获得:'+result.data.score + '金币') - - }else { - console.log('宝箱打开失败') - } - }else{ - console.log('\n宝箱请求失败') - - } - } catch (e) { - } finally { - resolve() - } - },timeout) - }) -} - -function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\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}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"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 s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/jctq/jctq_daily.js b/jctq/jctq_daily.js new file mode 100644 index 0000000..b22a9c0 --- /dev/null +++ b/jctq/jctq_daily.js @@ -0,0 +1,581 @@ +/* +安卓:晶彩天气(v8.3.7) + +此脚本负责: +领转发页定时宝箱,领福利页定时宝箱,领首页气泡红包,时段转发,刷福利视频,抽奖5次 +*/ + +const jsname = '晶彩天气日常' +const $ = Env(jsname) +const notifyFlag = 1; //0为关闭通知,1为打开通知,默认为1 +const logDebug = 0 + +//const notify = $.isNode() ? require('./sendNotify') : ''; +let notifyStr = '' + +let rndtime = "" //毫秒 +let httpResult //global buffer + +let jctqCookie = ($.isNode() ? process.env.jctqCookie : $.getdata('jctqCookie')) || ''; +let jctqBubbleBody = ($.isNode() ? process.env.jctqBubbleBody : $.getdata('jctqBubbleBody')) || ''; +let jctqGiveBoxBody = ($.isNode() ? process.env.jctqGiveBoxBody : $.getdata('jctqGiveBoxBody')) || ''; + +let jctqBubbleBodyArr = [] +let jctqGiveBoxBodyArr = [] + +let refHotShare = 'http://tq.xunsl.com/h5/hotShare/?' +let refRotory = 'https://tq.xunsl.com/html/rotaryTable/index.html?keyword_wyq=woyaoq.com&' + + +/////////////////////////////////////////////////////////////////// + +!(async () => { + + if(typeof $request !== "undefined") + { + $.msg(jsname+': 此脚本不做重写,请检查重写设置') + } + else + { + await checkEnv() + + await queryShareStatus() + await $.wait(1000) + + await queryGiveBoxStatus() + await $.wait(1000) + + await queryBubbleStatus() + await $.wait(1000) + + await getTaskListByWeather() + await $.wait(1000) + + await queryRotaryTable() + await $.wait(1000) + } + + +})() +.catch((e) => $.logErr(e)) +.finally(() => $.done()) + +//通知 +async function showmsg() { + + notifyBody = jsname + "运行通知\n\n" + notifyStr + + if (notifyFlag != 1) { + console.log(notifyBody); + } + + if (notifyFlag == 1) { + $.msg(notifyBody); + //if ($.isNode()){await notify.sendNotify($.name, notifyBody );} + } +} + +async function checkEnv() { + + if(jctqCookie) { + if(jctqCookie.indexOf('@') > -1) { + jctqCookies = jctqCookie.split('@') + jctqCookie = jctqCookies[0] + console.log('检测到多于一个jctqCookie,开始跑第一个账户。请注意本脚本只支持单账户,如需多账户请自行修改。') + } + if(jctqCookie.indexOf('cookie=') == -1 && jctqCookie.indexOf('zqkey=') > -1) { + jctqCookie = jctqCookie.replace(/zqkey=/, "cookie=") + } + if(jctqCookie.indexOf('cookie_id=') == -1 && jctqCookie.indexOf('zqkey_id=') > -1) { + jctqCookie = jctqCookie.replace(/zqkey_id=/, "cookie_id=") + } + if(jctqCookie.indexOf('app_version=') == -1) { + jctqCookie = 'app_version=8.3.7&' + jctqCookie + } + } + + if(jctqBubbleBody) { + if(jctqBubbleBody.indexOf('&') > -1) { + let jctqBubbleBodyArrs = jctqBubbleBody.split('&') + for(let i=0; i -1) { + let jctqGiveBoxBodyArrs = jctqGiveBoxBody.split('&') + for(let i=0; i=5 && currentHour<10) { + action = 'beread_extra_reward_one' + } else if(currentHour>=11 && currentHour<16) { + action = 'beread_extra_reward_two' + } else if(currentHour>=17 && currentHour<22) { + action = 'beread_extra_reward_three' + } + + if(result.code == 200) { + if(result.data && result.data.taskList && Array.isArray(result.data.taskList)) { + let taskList = result.data.taskList + for(let i=0; i -1) { + if(taskItem.status == 1) { + console.log(`\n转发页面定时宝箱可领取`) + await $.wait(1000) + await getRewardShareBox() + } else { + let cdTime = taskItem.total_time - taskItem.countdown + console.log(`\n转发页面定时宝箱冷却时间:${cdTime}秒`) + if(cdTime < 90) { + let waitTime = cdTime+1 + console.log(`\n等待${waitTime}秒后尝试领取`) + await $.wait(waitTime*1000) + await queryShareStatus() + } + } + } + if(action && taskItem.action.indexOf(action) > -1) { + if(taskItem.status == 0) { + console.log(`\n开始做${taskItem.name}转发任务`) + await $.wait(1000) + await listsNewTag() + await $.wait(1000) + await execExtractTask(taskItem.action,taskItem.name) + } else { + console.log(`\n${taskItem.name}转发已完成`) + } + } + } + } + } else { + console.log(`\n转发页面查询失败:${result.msg}`) + } +} + +//转发页面红包领取 -- 30分钟一次 +async function getRewardShareBox() { + let caller = printCaller() + let url = 'http://tq.xunsl.com/WebApi/TimePacket/getReward' + let urlObject = populatePostUrl(url,refHotShare,jctqCookie) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 1) { + console.log(`领取转发页面定时宝箱成功:获得${result.data.score}金币`) + } else { + console.log(`领取转发页面定时宝箱失败:${result.msg}`) + } +} + +//转发页面列表 +async function listsNewTag() { + let caller = printCaller() + let url = 'http://tq.xunsl.com/WebApi/ArticleTop/listsNewTag' + let urlObject = populatePostUrl(url,refHotShare,jctqCookie) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.status == 1) { + if(result.data && result.data.items && Array.isArray(result.data.items)) { + let shareIdx = Math.floor(Math.random()*result.data.items.length) + let newsItem = result.data.items[shareIdx] + await $.wait(1000) + await getShareArticleReward(newsItem.id) + } + } else { + console.log(`查询转发页面列表失败:${result.msg}`) + } +} + +//转发文章 +async function getShareArticleReward(articleId) { + let caller = printCaller() + let url = 'http://tq.xunsl.com/WebApi/ShareNew/getShareArticleReward' + let reqBody = jctqCookie + '&article_id=' + articleId + let urlObject = populatePostUrl(url,refHotShare,reqBody) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.status == 1) { + if(result.data.share == 1) { + console.log(`转发文章成功`) + } + } else { + console.log(`转发文章失败:${result.msg}`) + } +} + +//转发时段奖励 +async function execExtractTask(action,name) { + let caller = printCaller() + let url = 'http://tq.xunsl.com/WebApi/ShareNew/execExtractTask' + let reqBody = jctqCookie + '&action=' + action + let urlObject = populatePostUrl(url,refHotShare,reqBody) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 200) { + console.log(`领取${name}转发奖励成功`) + } else { + console.log(`领取${name}转发奖励失败:${result.msg}`) + } +} + +//首页气泡红包查询 +async function queryBubbleStatus() { + let caller = printCaller() + let url = 'https://tq.xunsl.com/v17/weather/index.json?' + jctqCookie + let urlObject = populateGetUrl(url,refHotShare) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.success == true) { + let numBody = jctqBubbleBodyArr.length + if(numBody > 0) { + if(result.items && result.items.bubble && Array.isArray(result.items.bubble)) { + let bubbleList = result.items.bubble + let numBubble = bubbleList.length + console.log(`\n共有${numBubble}个气泡红包可以领取,找到${numBody}个气泡和翻倍body,开始尝试领取`) + for(let i=0; i 1) { + if(result.items.status == 1) { + console.log(`\n福利页面定时宝箱可领取,找到${numBody}个宝箱body,开始尝试领取`) + for(let i=0; i 5 ? 5 : result.data.remainTurn + if(numTurn > 0) { + for(let i=0; i= boxItem.times) { + randomTime = Math.floor(Math.random()*5000)+30000 + console.log(`随机延迟 ${randomTime}ms 看视频开抽奖宝箱`) + await $.wait(randomTime) + await chestReward(i+1) + } + } + } + } else { + console.log(`抽奖次数查询失败:${result.msg}`) + } +} + +//抽奖宝箱 +async function chestReward(idx) { + rndtime = Math.floor(new Date().getTime()) + let caller = printCaller() + let url = 'https://tq.xunsl.com/WebApi/RotaryTable/chestReward?_='+rndtime + let reqBody = jctqCookie + '&num=' + idx + let urlObject = populatePostUrl(url,refRotory,reqBody) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.status == 1) { + console.log(`开抽奖第${idx}个宝箱获得${result.data.score}金币`) + } else { + console.log(`开抽奖宝箱失败:${result.msg}`) + } +} + +//抽奖 +async function turnRotary() { + rndtime = Math.floor(new Date().getTime()) + let caller = printCaller() + let url = 'https://tq.xunsl.com/WebApi/RotaryTable/turnRotary?_='+rndtime + let urlObject = populatePostUrl(url,refRotory,jctqCookie) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.status == 1) { + console.log(`抽奖获得${result.data.score}金币,剩余抽奖次数${result.data.remainTurn}`) + } else { + console.log(`抽奖失败:${result.msg}`) + } +} + +//查询日常任务进度 +async function getTaskListByWeather() { + let caller = printCaller() + let url = 'https://tq.xunsl.com/v17/NewTask/getTaskListByWeather.json?' + jctqCookie + let urlObject = populateGetUrl(url,refHotShare) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.success == true) { + if(Array.isArray(result.items.daily)) { + for(let i=0; i { + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": post请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + httpResult = JSON.parse(data,caller); + if(logDebug) console.log(httpResult); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +async function httpGet(url,caller) { + httpResult = null + return new Promise((resolve) => { + $.get(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": get请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data,caller)) { + httpResult = JSON.parse(data); + if(logDebug) console.log(httpResult); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function safeGet(data,caller) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } else { + console.log(`Function ${caller}: 未知错误`); + console.log(data) + } + } catch (e) { + console.log(e); + console.log(`Function ${caller}: 服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function printCaller(){ + return (new Error()).stack.split("\n")[2].trim().split(" ")[1] +} + +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, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `\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 } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), a = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(a, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t) { let e = { "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 s in e) new RegExp("(" + s + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))); let h = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; h.push(e), s && h.push(s), i && h.push(i), console.log(h.join("\n")), this.logs = this.logs.concat(h) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/jctq/jctq_friendSign.js b/jctq/jctq_friendSign.js deleted file mode 100644 index 598ddcf..0000000 --- a/jctq/jctq_friendSign.js +++ /dev/null @@ -1,125 +0,0 @@ -const $ = new Env("晶彩天气好友签到红包"); -const notify = $.isNode() ? require('./sendNotify') : ''; -message = "" -let jctqCookie= $.isNode() ? (process.env.jctqCookie ? process.env.jctqCookie : "") : ($.getdata('jctqCookie') ? $.getdata('jctqCookie') : "") -let jctqCookieArr = [] -let jctqCookies = "" - - if (typeof $request !== "undefined") { - getjctqCookie() - $.done() - } - - -if (!jctqCookie) { - $.msg($.name, '【提示】进入点击右下角"赚钱图标",再跑一次脚本', '不知道说啥好', { - "open-url": "给您劈个叉吧" - }); - $.done() - } - else if (jctqCookie.indexOf("@") == -1 && jctqCookie.indexOf("@") == -1) { - jctqCookieArr.push(jctqCookie) - } - else if (jctqCookie.indexOf("@") > -1) { - jctqCookies = jctqCookie.split("@") - } - else if (process.env.jctqCookie && process.env.jctqCookie.indexOf('@') > -1) { - jctqCookieArr = process.env.jctqCookie.split('@'); - console.log(`您选择的是用"@"隔开\n`) - } - else { - jctqCookies = [process.env.jctqCookie] - }; - Object.keys(jctqCookies).forEach((item) => { - if (jctqCookies[item]) { - jctqCookieArr.push(jctqCookies[item]) - } - }) - -!(async () => { - console.log(`共${jctqCookieArr.length}个cookie`) - for (let k = 0; k < jctqCookieArr.length; k++) { - $.message = "" - bodyVal = jctqCookieArr[k].split('&uid=')[0]; - cookie = bodyVal.replace(/zqkey=/, "cookie=") - cookie_id = cookie.replace(/zqkey_id=/, "cookie_id=") - var time1 = Date.parse( new Date() ).toString(); - time1 = time1.substr(0,10); - jctqCookie1= cookie_id + '&request_time=' + time1 + '&time=' + time1 +'&'+ bodyVal - //待处理cookie - //console.log(`${jctqCookie1}`) - console.log(`--------第 ${k + 1} 个账号好友查询中--------\n`) - await friendlist(jctqCookie1) - //await $.wait(4000); - console.log("\n\n") - } - - - })() - .catch((e) => $.logErr(e)) - .finally(() => $.done()) -//查询好友列表 -function friendlist(jctqCookie1,timeout = 0) { - return new Promise((resolve) => { - let url = { - url : 'https://tq.xunsl.com/WebApi/ShareSignNew/getFriendFinalList?'+jctqCookie1, - headers : {'Host': 'tq.xunsl.com', - 'Referer':'https://tq.xunsl.com/h5/20201020missionSign/?'+jctqCookie1 - }, - } - $.get(url, async (err, resp, data) => { - try { - - const result = JSON.parse(data) - if(result.success === true ){ - - for (let k=0;k { - let url = { - url : 'https://tq.xunsl.com/WebApi/ShareSignNew/sendScoreV2?friend_uid='+uid+'&'+jctqCookie1, - headers : {'Host': 'tq.xunsl.com', - 'Referer':'https://tq.xunsl.com/h5/20201020missionSign/?'+jctqCookie1 - }, - } - $.get(url, async (err, resp, data) => { - try { - - const result = JSON.parse(data) - if(result.success === true ){ - long=result.data.length - console.log('领取好友红包成功,获得:'+result.data[long-1].score + '金币') - - await $.wait(2000); - // await share(wzid) - - }else{ - console.log('\n该好友未签到或红包已完') - } - } catch (e) { - } finally { - resolve() - } - },timeout) - }) -} - -function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\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}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"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 s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/jctq/jctq_kkz.js b/jctq/jctq_kkz.js new file mode 100644 index 0000000..b3acc30 --- /dev/null +++ b/jctq/jctq_kkz.js @@ -0,0 +1,359 @@ +/* +安卓:晶彩天气(v8.3.7) + +此脚本负责: +完成看看赚任务,删除重复和失效的body +*/ + +const jsname = '晶彩天气看看赚' +const $ = Env(jsname) +const notifyFlag = 1; //0为关闭通知,1为打开通知,默认为1 +const logDebug = 0 + +//const notify = $.isNode() ? require('./sendNotify') : ''; +let notifyStr = '' + +let rndtime = "" //毫秒 +let httpResult //global buffer + +let jctqCookie = ($.isNode() ? process.env.jctqCookie : $.getdata('jctqCookie')) || ''; +let jctqLookStartbody = ($.isNode() ? process.env.jctqLookStartbody : $.getdata('jctqLookStartbody')) || ''; +let jctqLookStartbodyArr = [] + +let bannerIdList = [] +let duplicatedCount = 0 +let invalidCount = 0 +let finishCount = 0 +let rewardAmount = 0 + + +/////////////////////////////////////////////////////////////////// + +!(async () => { + + if(typeof $request !== "undefined") + { + $.msg(jsname+': 此脚本不做重写,请检查重写设置') + } + else + { + if(!(await checkEnv())) { + return + } + + /*for(let i=0; i $.logErr(e)) +.finally(() => $.done()) + +//通知 +async function showmsg() { + + notifyBody = jsname + "运行通知\n\n" + notifyStr + + if (notifyFlag != 1) { + console.log(notifyBody); + } + + if (notifyFlag == 1) { + $.msg(notifyBody); + //if ($.isNode()){await notify.sendNotify($.name, notifyBody );} + } +} + +async function checkEnv() { + + if(!jctqLookStartbody) { + console.log(`未获取到看看赚body`) + return false + } + + if(jctqLookStartbody.indexOf('&') > -1) { + jctqLookStartbodyArr = jctqLookStartbody.split('&') + } else { + jctqLookStartbodyArr.push(jctqLookStartbody) + } + + let numBody = jctqLookStartbodyArr.length + console.log(`找到${numBody}个看看赚body`) + + if(jctqCookie) { + if(jctqCookie.indexOf('@') > -1) { + jctqCookies = jctqCookie.split('@') + jctqCookie = jctqCookies[0] + console.log('检测到多于一个jctqCookie,开始跑第一个账户。请注意本脚本只支持单账户,如需多账户请自行修改。') + } + if(jctqCookie.indexOf('cookie=') == -1 && jctqCookie.indexOf('zqkey=') > -1) { + jctqCookie = jctqCookie.replace(/zqkey=/, "cookie=") + } + if(jctqCookie.indexOf('cookie_id=') == -1 && jctqCookie.indexOf('zqkey_id=') > -1) { + jctqCookie = jctqCookie.replace(/zqkey_id=/, "cookie_id=") + } + if(jctqCookie.indexOf('app_version=') == -1) { + jctqCookie = 'app_version=8.3.7&' + jctqCookie + } + } + + return true +} + +/////////////////////////////////////////////////////////////////// + +//看看赚任务 +async function adlickstart(lookStartBody,idx) { + let caller = printCaller() + let url = 'https://tq.xunsl.com/v5/nameless/adlickstart.json' + let urlObject = populatePostUrl(url,lookStartBody) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.success == true) { + let bannerId = result.items.banner_id + if(await checkDuplicated(lookStartBody,bannerId)) { + if(result.items.comtele_state == 1) { + console.log(`第${idx+1}个看看赚[id:${bannerId}]已完成`) + } else { + let readNum = result.items.see_num - result.items.read_num + if(readNum == 0) readNum++ + console.log(`开始做第${idx+1}个看看赚[id:${bannerId}]任务,还需要阅读${readNum}次,开始阅读...`) + for(let i=0; i 0) notifyStr += `删除了${duplicatedCount}个重复的body\n` + if(invalidCount > 0) notifyStr += `删除了${invalidCount}个无效的body\n` +} + +//////////////////////////////////////////////////////////////////// +function populatePostUrl(url,reqBody){ + let rndtime = Math.floor(new Date().getTime()/1000) + let urlObject = { + url: url, + headers: { + 'request_time' : rndtime, + 'Host' : 'tq.xunsl.com', + 'device-model' : 'VOG-AL10', + 'device-platform' : 'android', + 'Connection' : 'keep-alive', + 'app-type' : 'jcweather', + }, + body: reqBody + } + return urlObject; +} + +function populateGetUrl(url){ + let rndtime = Math.floor(new Date().getTime()/1000) + let urlObject = { + url: url, + headers: { + 'request_time' : rndtime, + 'Host' : 'tq.xunsl.com', + 'device-model' : 'VOG-AL10', + 'device-platform' : 'android', + 'Connection' : 'keep-alive', + 'app-type' : 'jcweather', + } + } + return urlObject; +} + +async function httpPost(url,caller) { + httpResult = null + return new Promise((resolve) => { + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": post请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + httpResult = JSON.parse(data,caller); + if(logDebug) console.log(httpResult); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +async function httpGet(url,caller) { + httpResult = null + return new Promise((resolve) => { + $.get(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": get请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data,caller)) { + httpResult = JSON.parse(data); + if(logDebug) console.log(httpResult); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function safeGet(data,caller) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } else { + console.log(`Function ${caller}: 未知错误`); + console.log(data) + } + } catch (e) { + console.log(e); + console.log(`Function ${caller}: 服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function printCaller(){ + return (new Error()).stack.split("\n")[2].trim().split(" ")[1] +} + +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, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `\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 } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), a = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(a, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t) { let e = { "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 s in e) new RegExp("(" + s + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))); let h = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; h.push(e), s && h.push(s), i && h.push(i), console.log(h.join("\n")), this.logs = this.logs.concat(h) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/jctq/jctq_read.js b/jctq/jctq_read.js new file mode 100644 index 0000000..aa27f08 --- /dev/null +++ b/jctq/jctq_read.js @@ -0,0 +1,258 @@ +/* +安卓:晶彩天气(v8.3.7) + +此脚本负责: +阅读文章,浏览视频 +*/ + +const jsname = '晶彩天气文章视频' +const $ = Env(jsname) +const notifyFlag = 1; //0为关闭通知,1为打开通知,默认为1 +const logDebug = 0 + +//const notify = $.isNode() ? require('./sendNotify') : ''; +let notifyStr = '' + +let rndtime = "" //毫秒 +let httpResult //global buffer + +let jctqTimeBody = ($.isNode() ? process.env.jctqTimeBody : $.getdata('jctqTimeBody')) || ''; +let jctqWzBody = ($.isNode() ? process.env.jctqWzBody : $.getdata('jctqWzBody')) || ''; +let jctqWzBodyArr = [] + +let bannerIdList = [] +let totalTime = 0 +let invalidCount = 0 +let finishCount = 0 +let rewardAmount = 0 + +/////////////////////////////////////////////////////////////////// + +!(async () => { + + if(typeof $request !== "undefined") + { + $.msg(jsname+': 此脚本不做重写,请检查重写设置') + } + else + { + if(!(await checkEnv())) { + return + } + + for(let i=0; i $.logErr(e)) +.finally(() => $.done()) + +//通知 +async function showmsg() { + + notifyBody = jsname + "运行通知\n\n" + notifyStr + + if (notifyFlag != 1) { + console.log(notifyBody); + } + + if (notifyFlag == 1) { + $.msg(notifyBody); + //if ($.isNode()){await notify.sendNotify($.name, notifyBody );} + } +} + +async function checkEnv() { + + if(!jctqWzBody) { + console.log(`未获取到文章视频body`) + return false + } + + if(jctqWzBody.indexOf('&') > -1) { + jctqWzBodyArr = jctqWzBody.split('&') + } else { + jctqWzBodyArr.push(jctqWzBody) + } + + if(jctqTimeBody && jctqTimeBody.indexOf('&') > -1) { + jctqTimeBodys = jctqTimeBody.split('&') + jctqTimeBody = jctqTimeBodys[0] + } + + let numWzBody = jctqWzBodyArr.length + console.log(`找到${numWzBody}个文章视频body`) + + return true +} + +/////////////////////////////////////////////////////////////////// + +//浏览文章 +async function readArticle(wzBody,idx) { + let caller = printCaller() + let url = 'https://tq.xunsl.com/v5/article/complete.json' + let urlObject = populatePostUrl(url,wzBody) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.success == true) { + finishCount++ + let randomTime = Math.floor(Math.random()*10000)+60000 + let score = result.items.read_score || 0 + rewardAmount += parseInt(score) + console.log(`浏览第${idx+1}篇文章获得${score}金币,随机延迟${randomTime}ms后刷阅读时长`) + await $.wait(randomTime) + if(jctqTimeBody) { + await updateStayTime(jctqTimeBody) + } else { + console.log(`----没有找到时长body,不刷时长,请小心黑号`) + } + } else { + //invalidCount++ + //await removeBody(wzBody) + console.log(`浏览第${idx+1}篇文章失败:${result.message}`) + } +} + +//更新阅读时长 +async function updateStayTime(timeBody) { + let caller = printCaller() + let url = 'https://tq.xunsl.com/v5/user/stay.json' + let urlObject = populatePostUrl(url,timeBody) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.success == true) { + totalTime = result.time + console.log(`----更新阅读时长成功,今天总阅读时长${result.time}秒`) + } else { + console.log(`----更新阅读时长失败:${result.message}`) + } +} + +//删除失效body +async function removeBody(wzBody) { + newBody = $.getdata('jctqWzBody').replace(wzBody,""); + newBody = newBody.replace("&&","&"); + $.setdata(newBody,'jctqWzBody'); +} + +//统计运行情况 +async function getStatus() { + notifyStr += `本次运行情况:\n` + notifyStr += `共阅读了${finishCount}篇文章/视频,获得${rewardAmount}金币,总阅读时长${totalTime}\n` + //if(invalidCount > 0) notifyStr += `删除了${invalidCount}个无效的body\n` +} + +//////////////////////////////////////////////////////////////////// +function populatePostUrl(url,reqBody){ + let rndtime = Math.floor(new Date().getTime()/1000) + let urlObject = { + url: url, + headers: { + 'request_time' : rndtime, + 'Host' : 'tq.xunsl.com', + 'device-model' : 'VOG-AL10', + 'device-platform' : 'android', + 'Connection' : 'keep-alive', + 'app-type' : 'jcweather', + }, + body: reqBody + } + return urlObject; +} + +function populateGetUrl(url){ + let rndtime = Math.floor(new Date().getTime()/1000) + let urlObject = { + url: url, + headers: { + 'request_time' : rndtime, + 'Host' : 'tq.xunsl.com', + 'device-model' : 'VOG-AL10', + 'device-platform' : 'android', + 'Connection' : 'keep-alive', + 'app-type' : 'jcweather', + } + } + return urlObject; +} + +async function httpPost(url,caller) { + httpResult = null + return new Promise((resolve) => { + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": post请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + httpResult = JSON.parse(data,caller); + if(logDebug) console.log(httpResult); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +async function httpGet(url,caller) { + httpResult = null + return new Promise((resolve) => { + $.get(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": get请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data,caller)) { + httpResult = JSON.parse(data); + if(logDebug) console.log(httpResult); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function safeGet(data,caller) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } else { + console.log(`Function ${caller}: 未知错误`); + console.log(data) + } + } catch (e) { + console.log(e); + console.log(`Function ${caller}: 服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function printCaller(){ + return (new Error()).stack.split("\n")[2].trim().split(" ")[1] +} + +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, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `\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 } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), a = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(a, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t) { let e = { "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 s in e) new RegExp("(" + s + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))); let h = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; h.push(e), s && h.push(s), i && h.push(i), console.log(h.join("\n")), this.logs = this.logs.concat(h) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/jctq/jctq_reward.js b/jctq/jctq_reward.js new file mode 100644 index 0000000..94812ed --- /dev/null +++ b/jctq/jctq_reward.js @@ -0,0 +1,306 @@ +/* +安卓:晶彩天气(v8.3.7) + +此脚本负责: +签到和翻倍,任务奖励领取,统计今日收益,自动提现 + +请将定时放在看看赚和阅读任务后面 +如果不想自动提现的,请不要捉提现body,或者新建环境变量jctqWithdrawFlag,写成0 +*/ + +const jsname = '晶彩天气任务签到' +const $ = Env(jsname) +const notifyFlag = 1; //0为关闭通知,1为打开通知,默认为1 +const logDebug = 0 + +//const notify = $.isNode() ? require('./sendNotify') : ''; +let notifyStr = '' + +let rndtime = "" //毫秒 +let httpResult //global buffer + +let jctqWithdrawFlag = ($.isNode() ? process.env.jctqWithdrawFlag : $.getdata('jctqWithdrawFlag')) || 1; +let jctqBoxbody = ($.isNode() ? process.env.jctqBoxbody : $.getdata('jctqBoxbody')) || ''; +let jctqQdBody = ($.isNode() ? process.env.jctqQdBody : $.getdata('jctqQdBody')) || ''; +let jctqWithdraw = ($.isNode() ? process.env.jctqWithdraw : $.getdata('jctqWithdraw')) || ''; +let jctqCookie = ($.isNode() ? process.env.jctqCookie : $.getdata('jctqCookie')) || ''; + +let jctqRewardBodyArr = [] + +let withdrawSuccess = 0 + +/////////////////////////////////////////////////////////////////// + +!(async () => { + + if(typeof $request !== "undefined") + { + $.msg(jsname+': 此脚本不做重写,请检查重写设置') + } + else + { + await checkEnv() + + let numBoxbody = jctqRewardBodyArr.length + console.log(`找到${numBoxbody}个签到/奖励body`) + + for(let i=0; i 0 && jctqWithdraw) { + await withdraw() + await $.wait(1000) + } else if(jctqWithdraw == 0) { + console.log(`你设置了不自动提现`) + } else if(!jctqWithdraw) { + console.log(`没有找到提现body`) + } + + if(jctqCookie) { + await getBalance() + await showmsg() + } else { + console.log(`没有找到用户CK,无法统计今日收益`) + } + + } + + +})() +.catch((e) => $.logErr(e)) +.finally(() => $.done()) + +//通知 +async function showmsg() { + + notifyBody = jsname + "运行通知\n\n" + notifyStr + + if (notifyFlag != 1) { + console.log(notifyBody); + } + + if (notifyFlag == 1) { + $.msg(notifyBody); + //if ($.isNode()){await notify.sendNotify($.name, notifyBody );} + } +} + +async function checkEnv() { + + if(jctqCookie) { + if(jctqCookie.indexOf('@') > -1) { + jctqCookies = jctqCookie.split('@') + jctqCookie = jctqCookies[0] + console.log('检测到多于一个jctqCookie,开始跑第一个账户。请注意本脚本只支持单账户,如需多账户请自行修改。') + } + if(jctqCookie.indexOf('cookie=') == -1 && jctqCookie.indexOf('zqkey=') > -1) { + jctqCookie = jctqCookie.replace(/zqkey=/, "cookie=") + } + if(jctqCookie.indexOf('cookie_id=') == -1 && jctqCookie.indexOf('zqkey_id=') > -1) { + jctqCookie = jctqCookie.replace(/zqkey_id=/, "cookie_id=") + } + if(jctqCookie.indexOf('app_version=') == -1) { + jctqCookie = 'app_version=8.3.7&' + jctqCookie + } + } + + if(jctqWithdraw && jctqWithdraw.indexOf('@') > -1) { + jctqWithdraws = jctqWithdraw.split('@') + jctqWithdraw = jctqWithdraws[0] + console.log('检测到多于一个提现body,使用第一个body') + } + + if(jctqQdBody) { + if(jctqQdBody.indexOf('&') > -1) { + let jctqQdBodyArr = jctqQdBody.split('&') + for(let i=0; i -1) { + let jctqBoxbodyArr = jctqBoxbody.split('&') + for(let i=0; i -1) signStr = '签到' + console.log(`领取第${idx+1}个奖励成功,${signStr}获得${result.items.score}金币`) + } + } else { + console.log(`领取第${idx+1}个奖励失败:${result.message}`) + } +} + +//今日收益 +async function getBalance() { + let caller = printCaller() + let url = 'https://tq.xunsl.com/wap/user/balance?keyword_wyq=woyaoq.com&' + jctqCookie + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.status == 0) { + notifyStr += `【金币总数】:${result.user.score}\n` + notifyStr += `【今日收益】:${result.user.today_score}\n` + for(let i=0; i -1) { + for(let j=0; j { + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": post请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + httpResult = JSON.parse(data,caller); + if(logDebug) console.log(httpResult); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +async function httpGet(url,caller) { + httpResult = null + return new Promise((resolve) => { + $.get(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": get请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data,caller)) { + httpResult = JSON.parse(data); + if(logDebug) console.log(httpResult); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function safeGet(data,caller) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } else { + console.log(`Function ${caller}: 未知错误`); + console.log(data) + } + } catch (e) { + console.log(e); + console.log(`Function ${caller}: 服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function printCaller(){ + return (new Error()).stack.split("\n")[2].trim().split(" ")[1] +} + +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, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `\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 } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), a = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(a, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t) { let e = { "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 s in e) new RegExp("(" + s + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))); let h = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; h.push(e), s && h.push(s), i && h.push(i), console.log(h.join("\n")), this.logs = this.logs.concat(h) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/jctq/jctq_rewrite.js b/jctq/jctq_rewrite.js new file mode 100644 index 0000000..d7e076d --- /dev/null +++ b/jctq/jctq_rewrite.js @@ -0,0 +1,189 @@ +/* +安卓:晶彩天气(v8.3.7) + +此脚本负责:捉包重写 + + +注意单脚本不支持多账户,建议多容器跑。如果需要多账户在同一个脚本跑,请自行修改 +脚本会自动提现,如果不想自动提现的,请不要捉提现body,或者新建环境变量jctqWithdrawFlag,写成0 + +重写: +https://tq.xunsl.com/v17/NewTask/getTaskListByWeather.json -- 点开福利页即可获取jctqCookie,注意只支持单账户,新ck会覆盖旧ck +https://tq.xunsl.com/v5/CommonReward/toGetReward.json -- 签到,观看签到翻倍视频,和福利页任务奖励(目前应该只有激励视频和20篇文章的奖励),获取完建议关掉重写 +https://tq.xunsl.com/v5/article/info.json -- 点开文章获取文章body,获取完建议关掉重写 +https://tq.xunsl.com/v5/article/detail.json -- 点开视频获取视频body,获取完建议关掉重写 +https://tq.xunsl.com/v5/user/stay.json -- 阅读文章或者看视频一段时间后可以获取到时长body,获取完务必关掉重写 +https://tq.xunsl.com/v5/nameless/adlickstart.json -- 点开看看赚获取body,可以一直开着,脚本会自动删除重复和失效body +https://tq.xunsl.com/v5/Weather/giveBoxOnWeather.json -- 点开福利页浮窗宝箱和观看翻倍视频获取body,获取完建议关掉重写 +https://tq.xunsl.com/v5/weather/giveTimeInterval.json -- 点开首页气泡红包和观看翻倍视频获取body,获取完建议关掉重写 +https://tq.xunsl.com/v5/wechat/withdraw2.json -- 提现一次对应金额获取body,新获取的提现body会覆盖旧的 + +任务: +jctq_daily.js -- 领转发页定时宝箱,领福利页定时宝箱,领首页气泡红包,时段转发,刷福利视频,抽奖5次 +jctq_reward.js -- 签到和翻倍,任务奖励领取,统计今日收益,自动提现 +jctq_kkz.js -- 完成看看赚任务,删除重复和失效的body +jctq_read.js -- 阅读文章,浏览视频 + +*/ + +const jsname = '晶彩天气捉包重写' +const $ = Env(jsname) +const notifyFlag = 1; //0为关闭通知,1为打开通知,默认为1 +const logDebug = 0 + +let jctqCookie = ($.isNode() ? process.env.jctqCookie : $.getdata('jctqCookie')) || ''; +let jctqBoxbody = ($.isNode() ? process.env.jctqBoxbody : $.getdata('jctqBoxbody')) || ''; +let jctqTimeBody = ($.isNode() ? process.env.jctqTimeBody : $.getdata('jctqTimeBody')) || ''; +let jctqWzBody = ($.isNode() ? process.env.jctqWzBody : $.getdata('jctqWzBody')) || ''; +let jctqLookStartbody = ($.isNode() ? process.env.jctqLookStartbody : $.getdata('jctqLookStartbody')) || ''; +let jctqWithdraw = ($.isNode() ? process.env.jctqWithdraw : $.getdata('jctqWithdraw')) || ''; +let jctqBubbleBody = ($.isNode() ? process.env.jctqBubbleBody : $.getdata('jctqBubbleBody')) || ''; +let jctqGiveBoxBody = ($.isNode() ? process.env.jctqGiveBoxBody : $.getdata('jctqGiveBoxBody')) || ''; + +/////////////////////////////////////////////////////////////////// + +!(async () => { + + if(typeof $request !== "undefined") + { + await getRewrite() + } else { + $.msg(jsname+': 此脚本只负责重写,请检查任务设置') + } + +})() +.catch((e) => $.logErr(e)) +.finally(() => $.done()) + +async function getRewrite() { + + if($request.url.indexOf('v17/NewTask/getTaskListByWeather.json') > -1) { + rUrl = $request.url + app_version = rUrl.match(/app_version=([\w\.]+)/)[1] + zqkey = rUrl.match(/zqkey=([\w-]+)/)[1] + zqkey_id = rUrl.match(/zqkey_id=([\w-]+)/)[1] + uid = rUrl.match(/uid=([\w]+)/)[1] + uidStr = 'uid=' + uid + if(jctqCookie.indexOf(uidStr) > -1) { + $.msg(jsname+` 已获取过此用户的jctqCookie`) + } else { + jctqCookie = `app_version=${app_version}&cookie=${zqkey}&cookie_id=${zqkey_id}&uid=${uid}` + $.setdata(jctqCookie, 'jctqCookie'); + $.msg(jsname+` 获取jctqCookie成功`) + } + } + + if($request.url.indexOf('v5/CommonReward/toGetReward.json') > -1) { + rBody = $request.body + if(jctqBoxbody) { + if(jctqBoxbody.indexOf(rBody) > -1) { + $.msg(jsname+` 此签到/奖励body已存在,本次跳过`) + } else { + jctqBoxbody = jctqBoxbody + '&' + rBody + $.setdata(jctqBoxbody, 'jctqBoxbody'); + bodyList = jctqBoxbody.split('&') + $.msg(jsname+` 获取第${bodyList.length}个签到/奖励body成功`) + } + } else { + $.setdata(rBody, 'jctqBoxbody'); + $.msg(jsname+` 获取第1个签到/奖励body成功`) + } + } + + if($request.url.indexOf('v5/article/info.json') > -1 || + $request.url.indexOf('v5/article/detail.json') > -1) { + rUrl = $request.url + bodys = rUrl.split('?p=') + rBody = 'p=' + bodys[1] + if(jctqWzBody) { + if(jctqWzBody.indexOf(rBody) > -1) { + $.msg(jsname+` 此文章/视频body已存在,本次跳过`) + } else { + jctqWzBody = jctqWzBody + '&' + rBody + $.setdata(jctqWzBody, 'jctqWzBody'); + bodyList = jctqWzBody.split('&') + $.msg(jsname+` 获取第${bodyList.length}个文章/视频body成功`) + } + } else { + $.setdata(rBody, 'jctqWzBody'); + $.msg(jsname+` 获取第1个文章/视频body成功`) + } + } + + if($request.url.indexOf('v5/user/stay.json') > -1) { + rBody = $request.body + if(jctqTimeBody) { + if(jctqTimeBody.indexOf(rBody) > -1) { + $.msg(jsname+` 此时长body已存在,本次跳过`) + } else { + jctqTimeBody = jctqTimeBody + '&' + rBody + $.setdata(jctqTimeBody, 'jctqTimeBody'); + bodyList = jctqTimeBody.split('&') + $.msg(jsname+` 获取第${bodyList.length}个时长body成功`) + } + } else { + $.setdata(rBody, 'jctqTimeBody'); + $.msg(jsname+` 获取第1个时长body成功`) + } + } + + if($request.url.indexOf('v5/nameless/adlickstart.json') > -1) { + rBody = $request.body + if(jctqLookStartbody) { + if(jctqLookStartbody.indexOf(rBody) > -1) { + $.msg(jsname+` 此看看赚body已存在,本次跳过`) + } else { + jctqLookStartbody = jctqLookStartbody + '&' + rBody + $.setdata(jctqLookStartbody, 'jctqLookStartbody'); + bodyList = jctqLookStartbody.split('&') + $.msg(jsname+` 获取第${bodyList.length}个看看赚body成功`) + } + } else { + $.setdata(rBody, 'jctqLookStartbody'); + $.msg(jsname+` 获取第1个看看赚body成功`) + } + } + + if($request.url.indexOf('v5/wechat/withdraw2.json') > -1) { + rBody = $request.body + $.setdata(rBody, 'jctqWithdraw'); + $.msg(jsname+` 获取提现body成功`) + } + + if($request.url.indexOf('v5/Weather/giveBoxOnWeather.json') > -1) { + rBody = $request.body + if(jctqGiveBoxBody) { + if(jctqGiveBoxBody.indexOf(rBody) > -1) { + $.msg(jsname+` 此福利页宝箱/翻倍body已存在,本次跳过`) + } else { + jctqGiveBoxBody = jctqGiveBoxBody + '&' + rBody + $.setdata(jctqGiveBoxBody, 'jctqGiveBoxBody'); + bodyList = jctqGiveBoxBody.split('&') + $.msg(jsname+` 获取第${bodyList.length}个福利页宝箱/翻倍body成功`) + } + } else { + $.setdata(rBody, 'jctqGiveBoxBody'); + $.msg(jsname+` 获取第1个福利页宝箱/翻倍body成功`) + } + } + + if($request.url.indexOf('v5/weather/giveTimeInterval.json') > -1) { + rBody = $request.body + if(jctqBubbleBody) { + if(jctqBubbleBody.indexOf(rBody) > -1) { + $.msg(jsname+` 此首页气泡/翻倍body已存在,本次跳过`) + } else { + jctqBubbleBody = jctqBubbleBody + '&' + rBody + $.setdata(jctqBubbleBody, 'jctqBubbleBody'); + bodyList = jctqBubbleBody.split('&') + $.msg(jsname+` 获取第${bodyList.length}个首页气泡/翻倍body成功`) + } + } else { + $.setdata(rBody, 'jctqBubbleBody'); + $.msg(jsname+` 获取第1个首页气泡/翻倍body成功`) + } + } +} + +//////////////////////////////////////////////////////////////////// +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, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `\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 } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), a = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(a, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t) { let e = { "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 s in e) new RegExp("(" + s + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))); let h = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; h.push(e), s && h.push(s), i && h.push(i), console.log(h.join("\n")), this.logs = this.logs.concat(h) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/jctq/jctq_rewrite_subscribe.json b/jctq/jctq_rewrite_subscribe.json deleted file mode 100644 index d0888f5..0000000 --- a/jctq/jctq_rewrite_subscribe.json +++ /dev/null @@ -1,147 +0,0 @@ -{ - "name": "晶彩天气重写订阅", - "type": "rewrite", - "note": "仅供参考", - "author": "leaf", - "resource": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite_subscribe.json", - "mitmhost": [ - "tq.xunsl.com" - ], - "rewrite": [ - { - "match": "https://tq.xunsl.com/v5/nameless/adlickstart.json", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctqkkz.js", - "enable": true - }, - { - "match": "https://tq.xunsl.com/v17/NewTask/getTaskListByWeather.json", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_today_score.js", - "enable": true - }, - { - "match": "https://tq.xunsl.com/v5/article/info.json", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctqwz.js", - "enable": true - }, - { - "match": "https://tq.xunsl.com/v5/article/detail.json", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctqwz.js", - "enable": true - }, - { - "match": "https://tq.xunsl.com/v5/user/stay.json", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctqwz.js", - "enable": true - }, - { - "match": "https://tq.xunsl.com/v5/CommonReward/toGetReward.json", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctqqd.js", - "enable": true - }, - { - "match": "https://tq.xunsl.com/v5/CommonReward/toGetReward.json", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctqbox.js", - "enable": true - }, - { - "match": "https://tq.xunsl.com/v5/wechat/withdraw2.json", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_withdraw.js", - "enable": true - } - ], - "task": { - "type": "skip", - "list": [ - { - "name": "晶彩天气看看赚", - "type": "cron", - "time": "21 8,20 * * *", - "job": { - "type": "runjs", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctqkkz.js" - }, - }, - { - "name": "晶彩天气每日收益", - "type": "cron", - "time": "18 22 * * *", - "job": { - "type": "runjs", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_today_score.js" - }, - }, - { - "name": "晶彩天气签到", - "type": "cron", - "time": "23 0,6 * * *", - "job": { - "type": "runjs", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctqqd.js" - }, - }, - { - "name": "晶彩天气文章", - "type": "cron", - "time": "12 7,19 * * *", - "job": { - "type": "runjs", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctqwz.js" - }, - }, - { - "name": "晶彩天气火爆转发", - "type": "cron", - "time": "12 6,12,18 * * *", - "job": { - "type": "runjs", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_share.js" - }, - }, - { - "name": "晶彩天气福利视频", - "type": "cron", - "time": "20 9,17 * * *", - "job": { - "type": "runjs", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_Adv_video.js" - }, - }, - { - "name": "晶彩天气抽奖", - "type": "cron", - "time": "31 8,16 * * *", - "job": { - "type": "runjs", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_Rotary.js" - }, - }, - { - "name": "晶彩天气每日宝箱", - "type": "cron", - "time": "24 21,22 * * *", - "job": { - "type": "runjs", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctqbox.js" - }, - }, - { - "name": "晶彩天气好友红包", - "type": "cron", - "time": "32 2,6,20 * * *", - "job": { - "type": "runjs", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_friendSign.js" - }, - }, - { - "name": "晶彩天气提现", - "type": "cron", - "time": "34 23 * * *", - "job": { - "type": "runjs", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_withdraw.js" - }, - } - ] - } -} diff --git a/jctq/jctq_rewrite_subscribe_tmp.json b/jctq/jctq_rewrite_subscribe_tmp.json deleted file mode 100644 index 513ddb7..0000000 --- a/jctq/jctq_rewrite_subscribe_tmp.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "name": "晶彩天气重写订阅", - "type": "rewrite", - "note": "仅供参考", - "author": "leaf", - "resource": "jctq_rewrite_subscribe.json", - "mitmhost": [ - "tq.xunsl.com" - ], - "rewrite": [ - { - "match": "https://tq.xunsl.com/v17/NewTask/getTaskListByWeather.json", - "target": "jctq_rewrite.js", - "enable": false - }, - { - "match": "https://tq.xunsl.com/v5/CommonReward/toGetReward.json", - "target": "jctq_rewrite.js", - "enable": false - }, - { - "match": "https://tq.xunsl.com/v5/article/info.json", - "target": "jctq_rewrite.js", - "enable": false - }, - { - "match": "https://tq.xunsl.com/v5/article/detail.json", - "target": "jctq_rewrite.js", - "enable": true - }, - { - "match": "https://tq.xunsl.com/v5/user/stay.json", - "target": "jctq_rewrite.js", - "enable": false - }, - { - "match": "https://tq.xunsl.com/v5/nameless/adlickstart.json", - "target": "jctq_rewrite.js", - "enable": true - }, - { - "match": "https://tq.xunsl.com/v5/wechat/withdraw2.json", - "target": "jctq_rewrite.js", - "enable": true - }, - { - "match": "https://tq.xunsl.com/v5/Weather/giveBoxOnWeather.json", - "target": "jctq_rewrite.js", - "enable": false - }, - { - "match": "https://tq.xunsl.com/v5/weather/giveTimeInterval.json", - "target": "jctq_rewrite.js", - "enable": true - } - ], - "task": { - "type": "skip", - "list": [ - { - "id": "nlaVhTOS", - "name": "晶彩天气看看赚", - "type": "cron", - "time": "53 8,20 * * *", - "job": { - "type": "runjs", - "target": "jctq_kkz.js" - }, - "running": true - }, - { - "id": "fc9bqL6D", - "name": "晶彩天气文章视频", - "type": "cron", - "time": "45 7,19 * * *", - "job": { - "type": "runjs", - "target": "jctq_read.js" - }, - "running": true - }, - { - "id": "HXTBby7X", - "name": "晶彩天气日常任务", - "type": "cron", - "time": "12,42 * * * *", - "job": { - "type": "runjs", - "target": "jctq_daily.js" - }, - "running": true - }, - { - "id": "LiXAgyRF", - "name": "晶彩天气任务签到", - "type": "cron", - "time": "35 22 * * *", - "job": { - "type": "runjs", - "target": "jctq_reward.js" - }, - "running": true - } - ] - } -} \ No newline at end of file diff --git a/jctq/jctq_share.js b/jctq/jctq_share.js deleted file mode 100644 index 0bc38f4..0000000 --- a/jctq/jctq_share.js +++ /dev/null @@ -1,199 +0,0 @@ -const $ = new Env("晶彩天气火爆转发"); -const notify = $.isNode() ? require('./sendNotify') : ''; -message = "" -let jctqCookie= $.isNode() ? (process.env.jctqCookie ? process.env.jctqCookie : "") : ($.getdata('jctqCookie') ? $.getdata('jctqCookie') : "") -let jctqCookieArr = [] -let jctqCookies = "" - -var myDate = new Date(); -var hour=myDate.getHours(); -console.log(hour) - - - - - if (!jctqCookie) { - $.msg($.name, '【提示】进入点击右下角"赚钱图标",再跑一次脚本', '不知道说啥好', { - "open-url": "给您劈个叉吧" - }); - $.done() - } - else if (jctqCookie.indexOf("@") == -1 && jctqCookie.indexOf("@") == -1) { - jctqCookieArr.push(jctqCookie) - } - else if (jctqCookie.indexOf("@") > -1) { - jctqCookies = jctqCookie.split("@") - } - else if (process.env.jctqCookie && process.env.jctqCookie.indexOf('@') > -1) { - jctqCookieArr = process.env.jctqCookie.split('@'); - console.log(`您选择的是用"@"隔开\n`) - } - else { - jctqCookies = [process.env.jctqCookie] - }; - Object.keys(jctqCookies).forEach((item) => { - if (jctqCookies[item]) { - jctqCookieArr.push(jctqCookies[item]) - } - }) - -!(async () => { - if (typeof $request !== "undefined") { - await getjctqCookie() - $.done()}else { - console.log(`共${jctqCookieArr.length}个cookie`) - for (let k = 0; k < jctqCookieArr.length; k++) { - // $.message = "" - //bodyVal2 =jctqCookie2.split('&token=')[0] - //console.log(`${bodyVal2}`) - - - if (hour > 4 && hour !== 10 && hour !== 16 && hour !== 22) { - var time1 = Date.parse(new Date()).toString(); - time1 = time1.substr(0, 10); - bodyVal = jctqCookieArr[k].split('&uid=')[0]; - cookie = bodyVal.replace(/zqkey=/, "cookie=") - cookie_id = cookie.replace(/zqkey_id=/, "cookie_id=") - jctqCookie1 = cookie_id + '&device_brand=xfdg&device_id=cc7dgdsgfsz83e&device_model=1gx&device_platform=android&device_type=android&inner_version=202107261526&mi=0&openudid=cc7dgdsgfsz83e&os_api=27&os_version=bdftgsdfga&phone_network=WIFI&phone_sim=1' + '&request_time=' + time1 + '&time=' + time1 + '&' + bodyVal - - //待处理cookie - - //console.log(`${jctqCookie1}`) - console.log(`--------第 ${k + 1} 次转发奖励执行中--------\n`) - - await wzlist() - await $.wait(4000); - await sharejl() - //console.log(typeof(jctqCookie1)); - //console.log(jctqCookie1.length.toString()); - await $.wait(4000); - console.log("\n\n") - } else { - console.log('\n现在不是转发时段!') - } - } - } - })() - .catch((e) => $.logErr(e)) - .finally(() => $.done()) - -function wzlist(timeout = 5000) { - return new Promise((resolve) => { - let url = { - url : 'https://tq.xunsl.com/WebApi/ArticleTop/listsNewTag', - headers : {'Host': 'tq.xunsl.com'}, - //body : wzbody1, - }//xsgbody,} - $.post(url, async (err, resp, data) => { - try { - - const result = JSON.parse(data) - if(result.data.items !== "undefined" ){ - wzid = result.data.items[0].id - console.log(result.data.items[0].id) - await $.wait(3000); - await share(wzid) - - }else{ - console.log(result) - } - } catch (e) { - } finally { - resolve() - } - },timeout) - }) -} - -function share(wzid,timeout=0) { - return new Promise((resolve) => { - let url = { - url : 'https://tq.xunsl.com/WebApi/ShareNew/getShareArticleReward', - headers : { - 'Content-Type': 'application/x-www-form-urlencoded', - 'Content-Length': (jctqCookie1+ '&article_id='+wzid).length.toString(), - 'Host': 'tq.xunsl.com', - 'Referer': 'https://tq.xunsl.com/h5/hotShare/?' +jctqCookie1 -}, - body : jctqCookie1 + '&article_id='+wzid,} - $.post(url, async (err, resp, data) => { - try { - - const result = JSON.parse(data) - if(result.status == 1){ - console.log(result.data) - }else{ - console.log(result) - } - } catch (e) { - } finally { - resolve() - } - },timeout) - }) -} - -function sharejl(timeout=0) { - return new Promise((resolve) => { - if(hour >= 5 && hour <=10 ){ - reward = 'one' - }else if(hour >= 11 && hour <=16){ - reward = 'two' - }else if(hour >= 17 && hour <=22){ - reward = 'three' - } - let url = { - url : 'https://tq.xunsl.com/WebApi/ShareNew/execExtractTask', - headers : { - 'Content-Type': 'application/x-www-form-urlencoded', - 'Content-Length': (jctqCookie1+ '&action=beread_extra_reward_'+ reward).length.toString(), - 'Host': 'tq.xunsl.com', - 'Referer': 'https://tq.xunsl.com/h5/20200612makeMoney/?' +jctqCookie1 -}, - body : jctqCookie1 + '&action=beread_extra_reward_'+ reward,} - $.post(url, async (err, resp, data) => { - try { - - const result = JSON.parse(data) - if(result.status == 1){ - console.log(result.data) - }else{ - console.log(result) - } - } catch (e) { - } finally { - resolve() - } - },timeout) - }) -} - - -async function getjctqCookie() { - if ($request.url.match(/\/tq.xunsl.com\/v17\/NewTask\/getTaskList/)) { - bodyVal1 = $request.url.split('?')[1] - bodyVal2 = bodyVal1.split('&token')[0] - bodyVal3 = bodyVal2.split('&zqkey=')[1] - bodyVal4 = bodyVal2.split('&uid=')[1] - bodyVal5 = bodyVal4.split('&version_code=')[0] - bodyVal = 'zqkey='+ bodyVal3 + '&uid='+ bodyVal5 - if (jctqCookie) { - if (jctqCookie.indexOf(bodyVal5) > -1) { - $.log("此cookie已存在,本次跳过") - } else if (jctqCookie.indexOf(bodyVal5) === -1) { - jctqCookies = jctqCookie + "@" + bodyVal; - $.setdata(jctqCookies, 'jctqCookie'); - $.log(`${$.name}获取cookie: 成功, jctqCookies: ${bodyVal}`); - bodys = jctqCookies.split("@") - // $.msg($.name, "获取第" + bodys.length + "个阅读请求: 成功🎉", ``) - } - } else { - $.setdata(bodyVal, 'jctqCookie'); - $.log(`${$.name}获取cookie: 成功, jctqCookies: ${bodyVal}`); - $.msg($.name, `获取第一个cookie: 成功🎉`, ``) - } - } - - } - -function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\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}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"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 s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} \ No newline at end of file diff --git a/jctq/jctq_task_subscribe.json b/jctq/jctq_task_subscribe.json deleted file mode 100644 index 3817bc2..0000000 --- a/jctq/jctq_task_subscribe.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "name": "晶彩天气任务订阅", - "author": "leaf", - "note": "请自行修改运行时间", - "date": "2021-11-12 00:08:11", - "list": [ - { - "name": "晶彩天气看看赚", - "type": "cron", - "time": "21 8,20 * * *", - "job": { - "type": "runjs", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctqkkz.js" - } - }, - { - "name": "晶彩天气每日收益", - "type": "cron", - "time": "18 22 * * *", - "job": { - "type": "runjs", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_today_score.js" - } - }, - { - "name": "晶彩天气签到", - "type": "cron", - "time": "23 0,6 * * *", - "job": { - "type": "runjs", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctqqd.js" - } - }, - { - "name": "晶彩天气文章", - "type": "cron", - "time": "12 7,19 * * *", - "job": { - "type": "runjs", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctqwz.js" - } - }, - { - "name": "晶彩天气火爆转发", - "type": "cron", - "time": "12 6,12,18 * * *", - "job": { - "type": "runjs", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_share.js" - } - }, - { - "name": "晶彩天气福利视频", - "type": "cron", - "time": "20 9,17 * * *", - "job": { - "type": "runjs", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_Adv_video.js" - } - }, - { - "name": "晶彩天气抽奖", - "type": "cron", - "time": "31 8,16 * * *", - "job": { - "type": "runjs", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_Rotary.js" - } - }, - { - "name": "晶彩天气每日宝箱", - "type": "cron", - "time": "24 21,22 * * *", - "job": { - "type": "runjs", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctqbox.js" - } - }, - { - "name": "晶彩天气好友红包", - "type": "cron", - "time": "32 2,6,20 * * *", - "job": { - "type": "runjs", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_friendSign.js" - } - }, - { - "name": "晶彩天气提现", - "type": "cron", - "time": "34 23 * * *", - "job": { - "type": "runjs", - "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_withdraw.js" - } - } - ] -} diff --git a/jctq/jctq_today_score.js b/jctq/jctq_today_score.js deleted file mode 100644 index 4b760e6..0000000 --- a/jctq/jctq_today_score.js +++ /dev/null @@ -1,134 +0,0 @@ -const $ = new Env("晶彩天气收益统计"); -const notify = $.isNode() ? require('./sendNotify') : ''; -message = "" -let jctqCookie= $.isNode() ? (process.env.jctqCookie ? process.env.jctqCookie : "") : ($.getdata('jctqCookie') ? $.getdata('jctqCookie') : "") -let jctqCookieArr = [] -let jctqCookies = "" - - - - - -if (!jctqCookie) { - $.msg($.name, '【提示】进入点击右下角"赚钱图标",再跑一次脚本', '不知道说啥好', { - "open-url": "给您劈个叉吧" - }); - $.done() - } - else if (jctqCookie.indexOf("@") == -1 && jctqCookie.indexOf("@") == -1) { - jctqCookieArr.push(jctqCookie) - } - else if (jctqCookie.indexOf("@") > -1) { - jctqCookies = jctqCookie.split("@") - } - else if (process.env.jctqCookie && process.env.jctqCookie.indexOf('@') > -1) { - jctqCookieArr = process.env.jctqCookie.split('@'); - console.log(`您选择的是用"@"隔开\n`) - } - else { - jctqCookies = [process.env.jctqCookie] - }; - Object.keys(jctqCookies).forEach((item) => { - if (jctqCookies[item]) { - jctqCookieArr.push(jctqCookies[item]) - } - }) - -!(async () => { - if (typeof $request !== "undefined") { - getjctqCookie() - $.done() - }else { - console.log(`共${jctqCookieArr.length}个cookie`) - for (let k = 0; k < jctqCookieArr.length; k++) { - $.message = "" - bodyVal = jctqCookieArr[k].split('&uid=')[0]; - cookie = bodyVal.replace(/zqkey=/, "cookie=") - cookie_id = cookie.replace(/zqkey_id=/, "cookie_id=") - jctqCookie1 = cookie_id + '&' + bodyVal - //待处理cookie - console.log(`${jctqCookie1}`) - console.log(`--------第 ${k + 1} 个账号收益查询中--------\n`) - await today_score(jctqCookie1) - if ($.message.length != 0) { - message += "账号" + (k + 1) + ": " + $.message + " \n" - } - await $.wait(4000); - console.log("\n\n") - } - - - if (message.length != 0) { - await notify ? notify.sendNotify("晶彩天气收益查询", `${message}\n\n shaolin-kongfu`) : - $.msg($.name, "晶彩天气收益查询", `${message}`); - } else if ($.isNode()) { - await notify.sendNotify("晶彩天气收益查询", `${message}\n\nshaolin-kongfu`); - } - } - })() - .catch((e) => $.logErr(e)) - .finally(() => $.done()) - - -function today_score(jctqCookie1,timeout = 0) { - return new Promise((resolve) => { - let url = { - url : 'https://tq.xunsl.com/wap/user/balance?'+ jctqCookie1, - headers : { - 'Host': 'tq.xunsl.com' -}, - } - $.get(url, async (err, resp, data) => { - try { - - const result = JSON.parse(data) - if(result.status == 0){ - console.log('\n今日收益总计:'+result.user.today_score) - console.log('\n当前金币总数:'+result.user.score) - console.log('\n折合人民币总数:'+result.user.money) - $.message = `今日收益总计:${result.user.today_score}金币\n 当前金币总数:${result.user.score} \n 折合人民币总数:${result.user.money}元` - $.msg($.name, "", `今日收益总计:${result.user.today_score}金币\n 当前金币总数:${result.user.score} \n 折合人民币总数:${result.user.money}元`); - }else{ - console.log(result) - } - } catch (e) { - } finally { - resolve() - } - },timeout) - }) -} - - - -async function getjctqCookie() { - if ($request.url.match(/\/tq.xunsl.com\/v17\/NewTask\/getTaskList/)) { - bodyVal1 = $request.url.split('?')[1] - bodyVal2 = bodyVal1.split('&token')[0] - bodyVal3 = bodyVal2.split('&zqkey=')[1] - bodyVal4 = bodyVal2.split('&uid=')[1] - bodyVal5 = bodyVal4.split('&version_code=')[0] - bodyVal = 'zqkey='+ bodyVal3 + '&uid='+ bodyVal5 - if (jctqCookie) { - if (jctqCookie.indexOf(bodyVal5) > -1) { - $.log("此cookie已存在,本次跳过") - } else if (jctqCookie.indexOf(bodyVal5) === -1) { - jctqCookies = jctqCookie + "@" + bodyVal; - $.setdata(jctqCookies, 'jctqCookie'); - $.log(`${$.name}获取cookie: 成功, jctqCookies: ${bodyVal}`); - bodys = jctqCookies.split("@") - $.msg($.name, "获取第" + bodys.length + "个cookie: 成功🎉", ``) - } - } else { - $.setdata(bodyVal, 'jctqCookie'); - $.log(`${$.name}获取cookie: 成功, jctqCookies: ${bodyVal}`); - $.msg($.name, `获取第一个cookie: 成功🎉`, ``) - } - } - - } - -function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\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}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"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 s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} - - - diff --git a/jctq/jctq_withdraw.js b/jctq/jctq_withdraw.js deleted file mode 100644 index 636e5be..0000000 --- a/jctq/jctq_withdraw.js +++ /dev/null @@ -1,206 +0,0 @@ -const $ = new Env("晶彩天气提现"); -const notify = $.isNode() ? require('./sendNotify') : ''; -message = "" -let jctqWithdraw= $.isNode() ? (process.env.jctqWithdraw ? process.env.jctqWithdraw : "") : ($.getdata('jctqWithdraw') ? $.getdata('jctqWithdraw') : "") -let jctqWithdrawArr = [] -let jctqWithdraws = "" -let jc_cash = $.getdata('jc_cash') || 0.3; -let jctqCookie= $.isNode() ? (process.env.jctqCookie ? process.env.jctqCookie : "") : ($.getdata('jctqCookie') ? $.getdata('jctqCookie') : "") -let jctqCookieArr = [] -let jctqCookies = "" -let nowmoney; - - - -var time1 = Date.parse( new Date() ).toString(); - time1 = time1.substr(0,10); -if (!jctqWithdraw) { - $.msg($.name, '【提示】请先完成一次提现,明天再跑一次脚本', '不知道说啥好', { - "open-url": "给您劈个叉吧" - }); - - $.done() - } - else if (jctqWithdraw.indexOf("@") == -1 && jctqWithdraw.indexOf("@") == -1) { - jctqWithdrawArr.push(jctqWithdraw) - } - else if (jctqWithdraw.indexOf("@") > -1) { - jctqWithdraws = jctqWithdraw.split("@") - } - else if (process.env.jctqWithdraw && process.env.jctqWithdraw.indexOf('@') > -1) { - jctqWithdrawArr = process.env.jctqWithdraw.split('@'); - console.log(`您选择的是用"@"隔开\n`) - } - else { - jctqWithdraws = [process.env.jctqWithdraw] - }; - Object.keys(jctqWithdraws).forEach((item) => { - if (jctqWithdraws[item]) { - jctqWithdrawArr.push(jctqWithdraws[item]) - } - }) - - -if (!jctqCookie) { - $.msg($.name, '【提示】进入点击右下角"赚钱图标",再跑一次脚本', '不知道说啥好', { - "open-url": "给您劈个叉吧" - }); - $.done() - } - else if (jctqCookie.indexOf("@") == -1 && jctqCookie.indexOf("@") == -1) { - jctqCookieArr.push(jctqCookie) - } - else if (jctqCookie.indexOf("@") > -1) { - jctqCookies = jctqCookie.split("@") - } - else if (process.env.jctqCookie && process.env.jctqCookie.indexOf('@') > -1) { - jctqCookieArr = process.env.jctqCookie.split('@'); - console.log(`您选择的是用"@"隔开\n`) - } - else { - jctqCookies = [process.env.jctqCookie] - }; - Object.keys(jctqCookies).forEach((item) => { - if (jctqCookies[item]) { - jctqCookieArr.push(jctqCookies[item]) - } - }) - -!(async () => { - if (typeof $request !== "undefined") { - getbody() - $.done() - }else { - console.log(`共${jctqCookieArr.length}个cookie`) - for (let k = 0; k < jctqCookieArr.length; k++) { - $.message = "" - bodyVal = jctqCookieArr[k].split('&uid=')[0]; - cookie = bodyVal.replace(/zqkey=/, "cookie=") - cookie_id = cookie.replace(/zqkey_id=/, "cookie_id=") - jctqCookie1 = cookie_id + '&' + bodyVal - //待处理cookie - console.log(`--------第 ${k + 1} 个账号收益查询中--------\n`) - jctqWithdraw1 = jctqWithdrawArr[k] - await today_score(jctqCookie1) - - - if ($.message.length != 0) { - message += "账号" + (k + 1) + ": " + $.message + " \n" - } - await $.wait(4000); - console.log("\n\n") - } - - - if (message.length != 0) { - await notify ? notify.sendNotify("晶彩天气提现", `${message}\n\n shaolin-kongfu`) : - $.msg($.name, "晶彩天气提现", `${message}\n\n shaolin-kongfu`); - } else if ($.isNode()) { - await notify.sendNotify("晶彩天气提现", `${message}\n\nshaolin-kongfu`); - } - } - })() - .catch((e) => $.logErr(e)) - .finally(() => $.done()) - - - -function withdraw(jctqWithdraw1,timeout = 0) { - return new Promise((resolve) => { - let url = { - url : 'https://tq.xunsl.com/v5/wechat/withdraw2.json', - headers : { - 'request_time' : time1, - 'access' : 'WIFI', - 'os-api' : '29', - 'app-type' : 'jcweather', - 'device-platform' : 'android', - 'app-version' : '8.3.7', - 'Content-Type' : 'application/x-www-form-urlencoded', - 'Host' : 'tq.xunsl.com', - 'Connection' : 'Keep-Alive', - 'Accept-Encoding' : 'gzip', - 'User-Agent' : 'okhttp/3.12.2', - }, - body : jctqWithdraw1,} - $.post(url, async (err, resp, data) => { - try { - - const result = JSON.parse(data) - if (result.error_code == 0) { - console.log(result) - console.log(`【自动提现】提现${jc_cash}元成功\n`) - $.message = `【自动提现】提现${jc_cash}元成功\n` - //$.msg($.name,$.sub,$.desc) - } else { - console.log(result) - } - } catch (e) { - } finally { - resolve() - } - },timeout) - }) -} - - -function getbody() { - if ($request.url.match(/\/tq.xunsl.com\/v5\/wechat\/withdraw2.json/)) { - bodyVal=$request.body - console.log(bodyVal) - if (jctqWithdraw) { - if (jctqWithdraw.indexOf(bodyVal) > -1) { - $.log("此提现请求已存在,本次跳过") - } else if (jctqWithdraw.indexOf(bodyVal) == -1) { - jctqWithdraws = jctqWithdraw + "@" + bodyVal; - $.setdata(jctqWithdraws,'jctqWithdraw'); - $.log(`${$.name}获取提现: 成功, jctqWithdraws: ${bodyVal}`); - bodys = jctqWithdraws.split("@") - $.msg($.name, "获取第" + bodys.length + "个提现请求: 成功🎉", ``) - } - } else { - $.setdata($request.body,'jctqWithdraw'); - $.log(`${$.name}获取提现: 成功, jctqWithdraws: ${bodyVal}`); - $.msg($.name, `获取第一个提现请求: 成功🎉`, ``) - } - } -} - - -function today_score(jctqCookie1,timeout = 0) { - return new Promise((resolve) => { - let url = { - url : 'https://tq.xunsl.com/wap/user/balance?'+ jctqCookie1, - headers : { - 'Host': 'tq.xunsl.com' -}, - } - $.get(url, async (err, resp, data) => { - try { - - const result = JSON.parse(data) - if(result.status == 0){ - - console.log('\n当前金币总数:'+result.user.score) - console.log('\n折合人民币总数:'+result.user.money) - nowmoney = result.user.money - if(nowmoney >= jc_cash){ - await $.wait(3000); - await withdraw(jctqWithdraw1) - } - $.message = `当前金币总数:${result.user.score} \n 折合人民币总数:${result.user.money}元` - //$.msg($.name, "", `当前金币总数:${result.user.score} \n 折合人民币总数:${result.user.money}元`); - }else{ - console.log(result) - } - } catch (e) { - } finally { - resolve() - } - },timeout) - }) -} - -function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\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}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"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 s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} - - diff --git a/jctq/jctqbox.js b/jctq/jctqbox.js deleted file mode 100644 index 4645d9d..0000000 --- a/jctq/jctqbox.js +++ /dev/null @@ -1,108 +0,0 @@ -const $ = new Env('晶彩天气任务宝箱领取'); -let jctqBoxbody= $.isNode() ? (process.env.jctqBoxbody ? process.env.jctqBoxbody : "") : ($.getdata('jctqBoxbody') ? $.getdata('jctqBoxbody') : "") -let jctqBoxbodyArr = [] -let jctqBoxbodys = "" - - - -if (!jctqBoxbody) { - $.msg($.name, '【提示】请在app下方点击赚钱图标,在每日任务中点击所有可领取的奖励,获取body,明天再跑一次脚本', '不知道说啥好', { - "open-url": "给您劈个叉吧" - }); - $.done() - } - else if (jctqBoxbody.indexOf("&") == -1) { - jctqBoxbodyArr.push(jctqBoxbody) - } - else if (jctqBoxbody.indexOf("&") > -1) { - jctqBoxbodys = jctqBoxbody.split("&") - } - else if (process.env.jctqBoxbody && process.env.jctqBoxbody.indexOf('&') > -1) { - jctqBoxbodyArr = process.env.jctqBoxbody.split('&'); - console.log(`您选择的是用"&"隔开\n`) - } - else { - jctqBoxbodys = [process.env.jctqBoxbody] - }; - Object.keys(jctqBoxbodys).forEach((item) => { - if (jctqBoxbodys[item]) { - jctqBoxbodyArr.push(jctqBoxbodys[item]) - } - }) - -!(async () => { -if (typeof $request !== "undefined") { - getjctqBoxbody() - $.done() - }else { - console.log(`共${jctqBoxbodyArr.length}个宝箱奖励body`) - for (let k = 0; k < jctqBoxbodyArr.length; k++) { - // $.message = "" - jctqBoxbody1 = jctqBoxbodyArr[k]; - console.log(`${jctqBoxbody1}`) - console.log(`--------第 ${k + 1} 次宝箱奖励执行中--------\n`) - let jctqBoxheader = { - 'device-platform': 'android', - 'Content-Type': 'application/x-www-form-urlencoded', - 'Content-Length': jctqBoxbody1.length.toString(), - 'Host': 'tq.xunsl.com', - } - await jctqBoxreward(jctqBoxheader) - console.log(typeof (jctqBoxbody1)); - console.log(jctqBoxbody1.length.toString()); - await $.wait(4000); - console.log("\n\n") - } -} - })() - .catch((e) => $.logErr(e)) - .finally(() => $.done()) - -function getjctqBoxbody() { - if ($request.url.match(/\/tq.xunsl.com\/v5\/CommonReward\/toGetReward/)) { - bodyVal = $request.body - if (jctqBoxbody) { - if (jctqBoxbody.indexOf(bodyVal) > -1) { - $.log("此宝箱请求已存在,本次跳过") - } else if (jctqBoxbody.indexOf(bodyVal) == -1) { - jctqBoxbodys = jctqBoxbody + "&" + bodyVal; - $.setdata(jctqBoxbodys, 'jctqBoxbody'); - $.log(`${$.name}获取宝箱: 成功, jctqBoxbodys: ${bodyVal}`); - bodys = jctqBoxbodys.split("&") - $.msg($.name, "获取第" + bodys.length + "个宝箱请求: 成功🎉", ``) - } - } else { - $.setdata(bodyVal, 'jctqBoxbody'); - $.log(`${$.name}获取宝箱: 成功, jctqBoxbodys: ${bodyVal}`); - $.msg($.name, `获取第一个宝箱请求: 成功🎉`, ``) - } - } - - } -//宝箱 -function jctqBoxreward(jctqBoxheader,timeout=0) { - return new Promise((resolve) => { - let url = { - url : 'https://tq.xunsl.com/v5/CommonReward/toGetReward.json', - headers : jctqBoxheader, - body : jctqBoxbody1,} - $.post(url, async (err, resp, data) => { - try { - - const result = JSON.parse(data) - if(result.success !== false ){ - console.log('\n领取宝箱奖励成功,获得:'+result.items.score + '金币') - }else{ - console.log('\n领取宝箱奖励失败,'+result.error_code) - console.log(result) - } - } catch (e) { - } finally { - resolve() - } - },timeout) - }) -} - -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,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\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}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"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 s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} - diff --git a/jctq/jctqkkz.js b/jctq/jctqkkz.js deleted file mode 100644 index 46e93f0..0000000 --- a/jctq/jctqkkz.js +++ /dev/null @@ -1,271 +0,0 @@ -const $ = new Env("晶彩天气看看赚"); -const notify = $.isNode() ? require('./sendNotify') : ''; -message = "" - -let jctqLookStartbody= $.isNode() ? (process.env.jctqLookStartbody ? process.env.jctqLookStartbody : "") : ($.getdata('jctqLookStartbody') ? $.getdata('jctqLookStartbody') : "") -let jctqLookStartbodyArr = [] -let jctqLookStartbodys = "" - -let jctqCookie= $.isNode() ? (process.env.jctqCookie ? process.env.jctqCookie : "") : ($.getdata('jctqCookie') ? $.getdata('jctqCookie') : "") -let jctqCookieArr = [] -let jctqCookies = "" - - -const jctqLookheader = { - 'device-platform': 'android', - 'Content-Type': 'application/x-www-form-urlencoded', - 'Host': 'tq.xunsl.com', - 'app-type' : 'jcweather', -} - -const jctqRewardheader={ - 'device-platform': 'android', - 'Content-Type': 'application/x-www-form-urlencoded', - 'Host': 'tq.xunsl.com', - 'app-type' : 'jcweather', -} - -const jctqLookStartheader={ - 'device-platform': 'android', - 'Content-Type': 'application/x-www-form-urlencoded', - 'Host': 'tq.xunsl.com', - 'app-type' : 'jcweather', -} - - - -if (!jctqCookie) { - $.msg($.name, '【提示】进入点击右下角"赚钱图标",再跑一次脚本', '不知道说啥好', { - "open-url": "给您劈个叉吧" - }); - $.done() - } - else if (jctqCookie.indexOf("@") == -1 && jctqCookie.indexOf("@") == -1) { - jctqCookieArr.push(jctqCookie) - } - else if (jctqCookie.indexOf("@") > -1) { - jctqCookies = jctqCookie.split("@") - } - else if (process.env.jctqCookie && process.env.jctqCookie.indexOf('@') > -1) { - jctqCookieArr = process.env.jctqCookie.split('@'); - console.log(`您选择的是用"@"隔开\n`) - } - else { - jctqCookies = [process.env.jctqCookie] - }; - Object.keys(jctqCookies).forEach((item) => { - if (jctqCookies[item]) { - jctqCookieArr.push(jctqCookies[item]) - } - }) -if (!jctqLookStartbody) { - $.msg($.name, '【提示】请点击看看赚某一任务获取body', '不知道说啥好', { - "open-url": "给您劈个叉吧" - }); - $.done() - } - else if (jctqLookStartbody.indexOf("&") == -1) { - jctqLookStartbodyArr.push(jctqLookStartbody) - } - else if (jctqLookStartbody.indexOf("&") > -1) { - jctqLookStartbodys = jctqLookStartbody.split("&") - } - else if (process.env.jctqLookStartbody && process.env.jctqLookStartbody.indexOf('&') > -1) { - jctqLookStartbodyArr = process.env.jctqLookStartbody.split('&'); - console.log(`您选择的是用"&"隔开\n`) - } - else { - jctqLookStartbodys = [process.env.jctqLookStartbody] - }; - Object.keys(jctqLookStartbodys).forEach((item) => { - if (jctqLookStartbodys[item]) { - jctqLookStartbodyArr.push(jctqLookStartbodys[item]) - } - }) - -!(async () => { - if (typeof $request !== "undefined") { - await getjctqLookStartbody() - $.done() - }else{ - console.log(`共${jctqLookStartbodyArr.length}个看看赚body`) - for (let k = 0; k < jctqLookStartbodyArr.length; k++) { - - jctqLookStartbody1 = jctqLookStartbodyArr[k]; - console.log(`--------第 ${k + 1} 次看看赚激活执行中--------\n`) - await lookStart() - await $.wait(1000); - console.log("\n\n") - } - console.log(`共${jctqCookieArr.length}个cookie`) - for (let k = 0; k < jctqCookieArr.length; k++) { - bodyVal = jctqCookieArr[k].split('&uid=')[0]; - var time1 = Date.parse( new Date() ).toString(); - time1 = time1.substr(0,10); - - cookie = bodyVal.replace(/zqkey=/, "cookie=") - cookie_id = cookie.replace(/zqkey_id=/, "cookie_id=") - jctqCookie1= cookie_id +'&device_brand=xfdg&device_id=cc7dgdsgfsz83e&device_model=1gx&device_platform=android&device_type=android&inner_version=202107261526&mi=0&openudid=cc7dgdsgfsz83e&os_api=27&os_version=bdftgsdfga&phone_network=WIFI&phone_sim=1'+'&request_time=' + time1 +'&time=' + time1 +'&'+ bodyVal - //console.log(`${jctqCookie1}`) - console.log(`--------第 ${k + 1} 个账号看看赚上方宝箱奖励执行中--------\n`) - for(let k = 0; k < 3; k++){ - id = k.toString() - await openbox(id,jctqCookie1) - await $.wait(30000); - - } - - console.log("\n\n") - - } - - -function openbox(id,jctqCookie1,timeout=0) { - return new Promise((resolve) => { - let url = { - url : 'https://tq.xunsl.com/WebApi/Nameless/getBoxReward?id='+ id + '&' + jctqCookie1, - headers : { - 'Host': 'tq.xunsl.com', - //'Referer': 'https://tq.xunsl.com/h5/20190527watchMoney/?' +jctqCookie1 - 'Referer':'https://tq.xunsl.com/h5/20190527watchMoney/?keyword_wyq=woyaoq.com&access=WIFI&app-version=8.1.2&app_version=8.1.2&carrier=%E4%B8%AD%E5%9B%BD%E7%A7%BB%E5%8A%A8&channel=c1005&'+jctqCookie1}, - } - $.get(url, async (err, resp, data) => { - try { - - const result = JSON.parse(data) - if(result.status == 1){ - console.log(result.data) - }else{ - console.log(result) - } - } catch (e) { - } finally { - resolve() - } - },timeout) - }) -}} - })() - .catch((e) => $.logErr(e)) - .finally(() => $.done()) - - - - - - - - -//获取看看赚激活body -async function getjctqLookStartbody() { -if ($request.url.match(/\/tq.xunsl.com\/v5\/nameless\/adlickstart/)) { - bodyVal=$request.body - await $.wait(1100); - if (jctqLookStartbody) { - if (jctqLookStartbody.indexOf(bodyVal) > -1) { - $.log("此看看赚任务请求已存在,本次跳过") - } else if (jctqLookStartbody.indexOf(bodyVal) == -1) { - jctqLookStartbodys = jctqLookStartbody + "&" + bodyVal; - $.setdata(jctqLookStartbodys, 'jctqLookStartbody'); - $.log(`${$.name}获取看看赚任务: 成功, jctqLookStartbodys: ${bodyVal}`); - bodys = jctqLookStartbodys.split("&") - $.msg($.name, "获取第" + bodys.length + "个看看赚任务请求: 成功🎉", ``) - } - } else { - $.setdata(bodyVal, 'jctqLookStartbody'); - $.log(`${$.name}获取看看赚任务: 成功, jctqLookStartbodys: ${bodyVal}`); - $.msg($.name, `获取第一个看看赚任务请求: 成功🎉`, ``) - } - } - - } -//看看赚激活 -function lookStart(timeout = 0) { - return new Promise((resolve) => { - let url = { - url : 'https://tq.xunsl.com/v5/nameless/adlickstart.json', - headers : jctqLookStartheader, - body : jctqLookStartbody1,}//xsgbody,} - $.post(url, async (err, resp, data) => { - try { - - const result = JSON.parse(data) - if(result.success === true ){ - console.log('\n激活看看赚任务成功') - comstate = result.items.comtele_state - if(comstate === 1){ - console.log('\n任务: '+ result.items.banner_id+'已完成,跳过') - }else { - $.log("任务开始," + result.items.banner_id + result.message); - for (let j = 0; j < result.items.see_num - result.items.read_num; j++) { - $.log("任务执行第" + parseInt(j + 1) + "次") - await $.wait(8000); - await lookstart() - } - await $.wait(10000); - await reward() - } - - }else{ - console.log('\n激活看看赚任务失败') - smbody = $.getdata('jctqLookStartbody').replace(jctqLookStartbody1 + "&", ""); - $.setdata(smbody, 'jctqLookStartbody'); - console.log("该看看赚任务已自动删除") - } - } catch (e) { - } finally { - resolve() - } - },timeout) - }) -} -//看看赚阅读 -function lookstart(timeout = 0) { - return new Promise((resolve) => { - let url = { - url : 'https://tq.xunsl.com/v5/nameless/bannerstatus.json', - headers : jctqLookheader, - body : jctqLookStartbody1,}//xsgbody,} - $.post(url, async (err, resp, data) => { - try { - - const result = JSON.parse(data) - if(result.success === true ){ - console.log('\n浏览看看赚文章成功') - }else { - console.log('\n浏览看看赚文章失败') - } - - } catch (e) { - } finally { - resolve() - } - },timeout) - }) -} -//看看赚奖励 -function reward(timeout = 0) { - return new Promise((resolve) => { - let url = { - url : 'https://tq.xunsl.com/v5/nameless/adlickend.json', - headers : jctqRewardheader, - body : jctqLookStartbody1,}//xsgbody,} - $.post(url, async (err, resp, data) => { - try { - - const result = JSON.parse(data) - if(result.items.score !== "undefined" ){ - console.log('\n看看赚获得:'+result.items.score + '金币') - }else{ - console.log('\n领取奖励失败') - } - } catch (e) { - } finally { - resolve() - } - },timeout) - }) -} - - -function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\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}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"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 s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/jctq/jctqqd.js b/jctq/jctqqd.js deleted file mode 100644 index 0b97485..0000000 --- a/jctq/jctqqd.js +++ /dev/null @@ -1,118 +0,0 @@ -const $ = new Env("晶彩天气签到"); -const notify = $.isNode() ? require('./sendNotify') : ''; -message = "" -let jctqQdBody= $.isNode() ? (process.env.jctqQdBody ? process.env.jctqQdBody : "") : ($.getdata('jctqQdBody') ? $.getdata('jctqQdBody') : "") -let jctqQdBodyArr = [] -let jctqQdBodys = "" -const jctqQdHeader={ - 'device-platform': 'android', - 'Content-Type': 'application/x-www-form-urlencoded', - 'Content-Length': '1247', - 'Host': 'tq.xunsl.com' -}; - - if (typeof $request !== "undefined") { - getjctqQdBody() - $.done() - } - if (!jctqQdBody) { - $.msg($.name, '【提示】请签到以获取body,明天再跑一次脚本测试', '不知道说啥好', { - "open-url": "给您劈个叉吧" - }); - $.done() - } - else if (jctqQdBody.indexOf("&") == -1) { - jctqQdBodyArr.push(jctqQdBody) - } - else if (jctqQdBody.indexOf("&") > -1) { - jctqQdBodys = jctqQdBody.split("&") - } - else if (process.env.jctqQdBody && process.env.jctqQdBody.indexOf('&') > -1) { - jctqQdBodyArr = process.env.jctqQdBody.split('&'); - console.log(`您选择的是用"&"隔开\n`) - } - else { - jctqQdBodys = [process.env.jctqQdBody] - }; - Object.keys(jctqQdBodys).forEach((item) => { - if (jctqQdBodys[item]) { - jctqQdBodyArr.push(jctqQdBodys[item]) - } - }) - -!(async () => { - - - console.log(`共${jctqQdBodyArr.length}个账号`) - for (let k = 0; k < jctqQdBodyArr.length; k++) { - $.message = "" - jctqQdBody1 = jctqQdBodyArr[k]; - console.log(`${jctqQdBody1}`) - console.log(`--------账号 ${k+1} 签到任务执行中--------\n`) - await jcqd() - await $.wait(1000); - console.log("\n\n") - } - - date = new Date() - if ($.isNode() &&date.getHours() == 11 && date.getMinutes()<10) { - if (message.length != 0) { - await notify.sendNotify("晶彩天气签到", `${message}\n\n shaolin-kongfu`); - } - } else { - $.msg($.name, "", message) - } - - })() - .catch((e) => $.logErr(e)) - .finally(() => $.done()) - - -//获取签到body -function getjctqQdBody() { - if ($request.url.match(/\/tq.xunsl.com\/v5\/CommonReward\/toGetReward/)) { - bodyVal = $request.body - if (jctqQdBody) { - if (jctqQdBody.indexOf(bodyVal) > -1) { - $.log("此签到请求已存在,本次跳过") - } else if (jctqQdBody.indexOf(bodyVal) == -1) { - jctqQdBodys = jctqQdBody + "&" + bodyVal; - $.setdata(jctqQdBodys, 'jctqQdBody'); - $.log(`${$.name}获取签到: 成功, jctqQdBodys: ${bodyVal}`); - bodys = jctqQdBodys.split("&") - $.msg($.name, "获取第" + bodys.length + "个签到请求: 成功🎉", ``) - } - } else { - $.setdata(bodyVal, 'jctqQdBody'); - $.log(`${$.name}获取签到: 成功, jctqQdBodys: ${bodyVal}`); - $.msg($.name, `获取第一个签到请求: 成功🎉`, ``) - } - } - - } - -//签到 -function jcqd(timeout = 0) { - return new Promise((resolve) => { - let url = { - url : 'https://tq.xunsl.com/v5/CommonReward/toGetReward.json', - headers : jctqQdHeader, - body : jctqQdBody1,} - $.post(url, async (err, resp, data) => { - try { - - const result = JSON.parse(data) - if(result.success == true){ - console.log('\n签到成功,获得:'+result.items.score +'金币') - }else{ - console.log('\n今日已签到,明天再来吧^_^') - } - } catch (e) { - } finally { - resolve() - } - },timeout) - }) -} -function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\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}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"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 s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} - diff --git a/jctq/jctqwz.js b/jctq/jctqwz.js deleted file mode 100644 index c0088f5..0000000 --- a/jctq/jctqwz.js +++ /dev/null @@ -1,229 +0,0 @@ -const $ = new Env("晶彩天气阅读文章"); -const notify = $.isNode() ? require('./sendNotify') : ''; -message = "" - - -let jctqWzBody= $.isNode() ? (process.env.jctqWzBody ? process.env.jctqWzBody : "") : ($.getdata('jctqWzBody') ? $.getdata('jctqWzBody') : "") -let jctqWzBodyArr = [] -let jctqWzBodys = "" - -let jctqTimeBody= $.isNode() ? (process.env.jctqTimeBody ? process.env.jctqTimeBody : "") : ($.getdata('jctqTimeBody') ? $.getdata('jctqTimeBody') : "") -let jctqTimeBodyArr = [] -let jctqTimeBodys = "" - -let skipFlag = 0; - -const jctqTimeHeader={ - 'device-platform': 'android', - 'Content-Type': 'application/x-www-form-urlencoded', - 'Content-Length': '1198', - 'Host': 'tq.xunsl.com', - 'app-type' : 'jcweather', -} -const jctqWzHeader = { - 'device-platform': 'android', - 'Content-Type': 'application/x-www-form-urlencoded', - 'Content-Length': '1201', - 'Host': 'tq.xunsl.com', - 'app-type' : 'jcweather', -} - - if (!jctqTimeBody) { - $.msg($.name, '【提示】请点击文章获取body,再跑一次脚本', '不知道说啥好', { - "open-url": "给您劈个叉吧" - }); - $.done() - } - else if (jctqTimeBody.indexOf("&") == -1) { - jctqTimeBodyArr.push(jctqTimeBody) - } - else if (jctqTimeBody.indexOf("&") > -1) { - jctqTimeBodys = jctqTimeBody.split("&") - } - else if (process.env.jctqTimeBody && process.env.jctqTimeBody.indexOf('&') > -1) { - jctqTimeBodyArr = process.env.jctqTimeBody.split('&'); - console.log(`您选择的是用"&"隔开\n`) - } - else { - jctqTimeBodys = [process.env.jctqTimeBody] - }; - Object.keys(jctqTimeBodys).forEach((item) => { - if (jctqTimeBodys[item]) { - jctqTimeBodyArr.push(jctqTimeBodys[item]) - } - }) - - if (!jctqWzBody) { - $.msg($.name, '【提示】请点击文章获取body,再跑一次脚本', '不知道说啥好', { - "open-url": "给您劈个叉吧" - }); - $.done() - } - else if (jctqWzBody.indexOf("&") == -1) { - jctqWzBodyArr.push(jctqWzBody) - } - else if (jctqWzBody.indexOf("&") > -1) { - jctqWzBodys = jctqWzBody.split("&") - } - else if (process.env.jctqWzBody && process.env.jctqWzBody.indexOf('&') > -1) { - jctqWzBodyArr = process.env.jctqWzBody.split('&'); - console.log(`您选择的是用"&"隔开\n`) - } - else { - jctqWzBodys = [process.env.jctqWzBody] - }; - Object.keys(jctqWzBodys).forEach((item) => { - if (jctqWzBodys[item]) { - jctqWzBodyArr.push(jctqWzBodys[item]) - } - }) - -!(async () => { - if (typeof $request !== "undefined") { - getjctqWzBody() - getjctqTimeBody() - $.done() - }else { - - console.log(`共${jctqWzBodyArr.length}个阅读body`) - for (let k = 0; k < jctqWzBodyArr.length; k++) { - // $.message = "" - jctqWzBody1 = jctqWzBodyArr[k]; - // console.log(`${jctqWzBody1}`) - console.log(`--------第 ${k + 1} 次阅读任务执行中--------\n`) - $.skipFlag = 1 - await wzjl() - if($.skipFlag == 0) - { - await $.wait(60000); - for (let k = 0; k < jctqTimeBodyArr.length; k++) { - jctqTimeBody1 = jctqTimeBodyArr[k]; - await timejl() - } - }else{ - await $.wait(400); - } - console.log("\n\n") - } - } - - - - // date = new Date() - // if ($.isNode() &&date.getHours() == 11 && date.getMinutes()<10) { - // if (message.length != 0) { - // await notify.sendNotify("晶彩天气文章阅读", `${message}\n\n shaolin-kongfu`); - // } - // } else { - // $.msg($.name, "", message) - // } - - })() - .catch((e) => $.logErr(e)) - .finally(() => $.done()) - - -function getjctqWzBody() { - if ($request.url.match(/\/tq.xunsl.com\/v5\/article\/info.json/)||$request.url.match(/\/tq.xunsl.com\/v5\/article\/detail.json/)) { - bodyVal1 = $request.url.split('p=')[1] - console.log(encodeURIComponent(bodyVal1)) - bodyVal = 'p='+encodeURIComponent(bodyVal1) - console.log(bodyVal) - - - if (jctqWzBody) { - if (jctqWzBody.indexOf(bodyVal) > -1) { - $.log("此阅读请求已存在,本次跳过") - } else if (jctqWzBody.indexOf(bodyVal) == -1) { - jctqWzBodys = jctqWzBody + "&" + bodyVal; - $.setdata(jctqWzBodys, 'jctqWzBody'); - $.log(`${$.name}获取阅读: 成功, jctqWzBodys: ${bodyVal}`); - bodys = jctqWzBodys.split("&") - $.msg($.name, "获取第" + bodys.length + "个阅读请求: 成功🎉", ``) - } - } else { - $.setdata(bodyVal, 'jctqWzBody'); - $.log(`${$.name}获取阅读: 成功, jctqWzBodys: ${bodyVal}`); - $.msg($.name, `获取第一个阅读请求: 成功🎉`, ``) - } - } - - } -//阅读文章奖励 -function wzjl(timeout = 0) { - return new Promise((resolve) => { - let url = { - url : 'https://tq.xunsl.com/v5/article/complete.json', - headers : jctqWzHeader, - body : jctqWzBody1,}//xsgbody,} - $.post(url, async (err, resp, data) => { - try { - - const result = JSON.parse(data) - if(result.items.read_score){ - if(result.items.read_score == 0){ - console.log('\n获得0金币,下一篇') - $.skipFlag = 1 - }else{ - console.log('\n浏览文章成功,获得:'+result.items.read_score + '金币') - $.skipFlag = 0 - } - }else{ - console.log('\n看太久了,换一篇试试') - $.skipFlag = 1 - } - } catch (e) { - } finally { - resolve() - } - },timeout) - }) -} - - -function getjctqTimeBody() { - if ($request.url.match(/\/tq.xunsl.com\/v5\/user\/stay.json/)) { - bodyVal=$request.body - console.log(bodyVal) - if (jctqTimeBody) { - if (jctqTimeBody.indexOf(bodyVal) > -1) { - $.log("此阅读时长请求已存在,本次跳过") - } else if (jctqTimeBody.indexOf(bodyVal) == -1) { - jctqTimeBodys = jctqTimeBody + "&" + bodyVal; - $.setdata(jctqTimeBodys,'jctqTimeBody'); - $.log(`${$.name}获取阅读: 成功, jctqTimeBodys: ${bodyVal}`); - bodys = jctqTimeBodys.split("&") - $.msg($.name, "获取第" + bodys.length + "个阅读时长请求: 成功🎉", ``) - } - } else { - $.setdata($request.body,'jctqTimeBody'); - $.log(`${$.name}获取阅读: 成功, jctqTimeBodys: ${bodyVal}`); - $.msg($.name, `获取第一个阅读时长请求: 成功🎉`, ``) - } - } -} - -function timejl(timeout = 0) { - return new Promise((resolve) => { - let url = { - url : 'https://tq.xunsl.com/v5/user/stay.json', - headers : jctqTimeHeader, - body : jctqTimeBody1,}//xsgbody,} - $.post(url, async (err, resp, data) => { - try { - - const result = JSON.parse(data) - if(result.success === true ){ - console.log('\n阅读时长:'+result.time + '秒') - }else{ - console.log('\n更新阅读时长失败') - } - } catch (e) { - } finally { - resolve() - } - },timeout) - }) -} - -function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\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}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"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 s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} From edc02ef8dd10e9c9558cada00dc20ed2152310ef Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Wed, 17 Nov 2021 16:12:33 +0800 Subject: [PATCH 13/75] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=B0=E8=AE=A2?= =?UTF-8?q?=E9=98=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jctq/jctq_rewrite_subscribe.json | 102 +++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 jctq/jctq_rewrite_subscribe.json diff --git a/jctq/jctq_rewrite_subscribe.json b/jctq/jctq_rewrite_subscribe.json new file mode 100644 index 0000000..c38e922 --- /dev/null +++ b/jctq/jctq_rewrite_subscribe.json @@ -0,0 +1,102 @@ +{ + "name": "晶彩天气重写订阅", + "type": "rewrite", + "note": "仅供参考", + "author": "leaf", + "resource": "jctq_rewrite_subscribe.json", + "mitmhost": [ + "tq.xunsl.com" + ], + "rewrite": [ + { + "match": "https://tq.xunsl.com/v17/NewTask/getTaskListByWeather.json", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", + "enable": true + }, + { + "match": "https://tq.xunsl.com/v5/CommonReward/toGetReward.json", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", + "enable": true + }, + { + "match": "https://tq.xunsl.com/v5/article/info.json", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", + "enable": true + }, + { + "match": "https://tq.xunsl.com/v5/article/detail.json", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", + "enable": true + }, + { + "match": "https://tq.xunsl.com/v5/user/stay.json", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", + "enable": true + }, + { + "match": "https://tq.xunsl.com/v5/nameless/adlickstart.json", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", + "enable": true + }, + { + "match": "https://tq.xunsl.com/v5/wechat/withdraw2.json", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", + "enable": true + }, + { + "match": "https://tq.xunsl.com/v5/Weather/giveBoxOnWeather.json", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", + "enable": true + }, + { + "match": "https://tq.xunsl.com/v5/weather/giveTimeInterval.json", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", + "enable": true + } + ], + "task": { + "type": "skip", + "list": [ + { + "name": "晶彩天气看看赚", + "type": "cron", + "time": "30 9,20 * * *", + "job": { + "type": "runjs", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_kkz.js" + }, + "running": true + }, + { + "name": "晶彩天气文章视频", + "type": "cron", + "time": "20 7,18 * * *", + "job": { + "type": "runjs", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_read.js" + }, + "running": true + }, + { + "name": "晶彩天气日常任务", + "type": "cron", + "time": "15,45 * * * *", + "job": { + "type": "runjs", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_daily.js" + }, + "running": true + }, + { + "name": "晶彩天气任务签到", + "type": "cron", + "time": "30 22 * * *", + "job": { + "type": "runjs", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_reward.js" + }, + "running": true + } + ] + } +} \ No newline at end of file From 5d23364ebcd38045f625cdf2f2c4c189a0d58f7a Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Wed, 17 Nov 2021 16:17:40 +0800 Subject: [PATCH 14/75] =?UTF-8?q?=E6=89=93=E5=BC=80=E7=9C=8B=E7=9C=8B?= =?UTF-8?q?=E8=B5=9A=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jctq/jctq_kkz.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jctq/jctq_kkz.js b/jctq/jctq_kkz.js index b3acc30..1201419 100644 --- a/jctq/jctq_kkz.js +++ b/jctq/jctq_kkz.js @@ -41,11 +41,11 @@ let rewardAmount = 0 return } - /*for(let i=0; i Date: Wed, 17 Nov 2021 16:51:25 +0800 Subject: [PATCH 15/75] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E8=AE=A2=E9=98=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jctq/jctq_task_subscribe.json | 48 +++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 jctq/jctq_task_subscribe.json diff --git a/jctq/jctq_task_subscribe.json b/jctq/jctq_task_subscribe.json new file mode 100644 index 0000000..4064c76 --- /dev/null +++ b/jctq/jctq_task_subscribe.json @@ -0,0 +1,48 @@ +{ + "name": "晶彩天气重写订阅", + "type": "rewrite", + "note": "仅供参考", + "author": "leaf", + "list": [ + { + "name": "晶彩天气看看赚", + "type": "cron", + "time": "30 9,20 * * *", + "job": { + "type": "runjs", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_kkz.js" + }, + "running": true + }, + { + "name": "晶彩天气文章视频", + "type": "cron", + "time": "20 7,18 * * *", + "job": { + "type": "runjs", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_read.js" + }, + "running": true + }, + { + "name": "晶彩天气日常任务", + "type": "cron", + "time": "15,45 * * * *", + "job": { + "type": "runjs", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_daily.js" + }, + "running": true + }, + { + "name": "晶彩天气任务签到", + "type": "cron", + "time": "30 22 * * *", + "job": { + "type": "runjs", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_reward.js" + }, + "running": true + } + ] +} \ No newline at end of file From f675af9344c5054af2f2ea011a137271c88c9839 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Wed, 17 Nov 2021 17:08:39 +0800 Subject: [PATCH 16/75] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=AE=A2=E9=98=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jctq/jctq_rewrite_subscribe.json | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/jctq/jctq_rewrite_subscribe.json b/jctq/jctq_rewrite_subscribe.json index c38e922..d09930d 100644 --- a/jctq/jctq_rewrite_subscribe.json +++ b/jctq/jctq_rewrite_subscribe.json @@ -10,46 +10,55 @@ "rewrite": [ { "match": "https://tq.xunsl.com/v17/NewTask/getTaskListByWeather.json", + "stage": "req", "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", "enable": true }, { "match": "https://tq.xunsl.com/v5/CommonReward/toGetReward.json", + "stage": "req", "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", "enable": true }, { "match": "https://tq.xunsl.com/v5/article/info.json", + "stage": "req", "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", "enable": true }, { "match": "https://tq.xunsl.com/v5/article/detail.json", + "stage": "req", "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", "enable": true }, { "match": "https://tq.xunsl.com/v5/user/stay.json", + "stage": "req", "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", "enable": true }, { "match": "https://tq.xunsl.com/v5/nameless/adlickstart.json", + "stage": "req", "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", "enable": true }, { "match": "https://tq.xunsl.com/v5/wechat/withdraw2.json", + "stage": "req", "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", "enable": true }, { "match": "https://tq.xunsl.com/v5/Weather/giveBoxOnWeather.json", + "stage": "req", "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", "enable": true }, { "match": "https://tq.xunsl.com/v5/weather/giveTimeInterval.json", + "stage": "req", "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", "enable": true } @@ -64,8 +73,7 @@ "job": { "type": "runjs", "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_kkz.js" - }, - "running": true + } }, { "name": "晶彩天气文章视频", @@ -74,8 +82,7 @@ "job": { "type": "runjs", "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_read.js" - }, - "running": true + } }, { "name": "晶彩天气日常任务", @@ -84,8 +91,7 @@ "job": { "type": "runjs", "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_daily.js" - }, - "running": true + } }, { "name": "晶彩天气任务签到", @@ -94,8 +100,7 @@ "job": { "type": "runjs", "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_reward.js" - }, - "running": true + } } ] } From c5b34a02370988f5085bcdec8a79bc3f956e8cc5 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Thu, 18 Nov 2021 10:36:30 +0800 Subject: [PATCH 17/75] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=99=B6=E5=BD=A9?= =?UTF-8?q?=E5=A4=A9=E6=B0=94=E5=88=86=E4=BA=AB=E9=98=85=E8=AF=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shangtuo.jpg => bak/shangtuo.jpg | Bin shangtuo.js => bak/shangtuo.js | 0 jctq/jctq_shareRead.js | 329 +++++++++++++++++++++++++++++++ 3 files changed, 329 insertions(+) rename shangtuo.jpg => bak/shangtuo.jpg (100%) rename shangtuo.js => bak/shangtuo.js (100%) create mode 100644 jctq/jctq_shareRead.js diff --git a/shangtuo.jpg b/bak/shangtuo.jpg similarity index 100% rename from shangtuo.jpg rename to bak/shangtuo.jpg diff --git a/shangtuo.js b/bak/shangtuo.js similarity index 100% rename from shangtuo.js rename to bak/shangtuo.js diff --git a/jctq/jctq_shareRead.js b/jctq/jctq_shareRead.js new file mode 100644 index 0000000..a9bd90a --- /dev/null +++ b/jctq/jctq_shareRead.js @@ -0,0 +1,329 @@ +/* +安卓:晶彩天气(v8.3.7) + +转发和分享阅读,请勿贪心,小心黑号 +*/ + +const jsname = '晶彩天气分享阅读' +const $ = Env(jsname) +const notifyFlag = 1; //0为关闭通知,1为打开通知,默认为1 +const logDebug = 0 + +//const notify = $.isNode() ? require('./sendNotify') : ''; +let notifyStr = '' + +let rndtime = "" //毫秒 +let httpResult //global buffer + +let jctqCookie = ($.isNode() ? process.env.jctqCookie : $.getdata('jctqCookie')) || ''; +let jctqCookieArr = [] + +let userCk = '' +let readCount = 0 + +let jctqShareNum = ($.isNode() ? process.env.jctqShareNum : $.getdata('jctqShareNum')) || 0; + +let newsItem = '' +let UserAgent = '' +let si = '' +let iosVer = ['13_4_5', '13_4_1', '13_4', '13_3_1', '13_3', '13_2_3', '13_2_2', '13_2', '13_1_3', '13_1_2', '13_1_1', '13_1', '13_0', '12_4_1', '12_4', '12_3_1', '12_3', '12_2', '12_1_4', '12_1_3', '12_1_2', '12_1_1', '12_1', '12_0_1', '12_0', '11_4_1', '11_4', '11_3_1', '11_3', '11_2_6', '11_2_5', '11_2_2', '11_2_1', '11_2', '11_1_2', '11_1_1', '11_1', '11_0_3', '11_0_2', '11_0_1', '11_0', '10_3_3', '10_3_2', '10_3_1', '10_3', '10_2_1', '10_2', '10_1_1', '10_1', '10_0_2', '10_0_1', '9_3_5', '9_3_4', '9_3_3', '9_3_2', '9_3_1', '9_3', '9_2_1', '9_2', '9_1', '9_0_2', '9_0_1'] + +/////////////////////////////////////////////////////////////////// + +!(async () => { + + if(typeof $request !== "undefined") + { + $.msg(jsname+': 此脚本不做重写,请检查重写设置') + } + else + { + if(!(await checkEnv())){ + return + } + + for(let j=0; j maxWaitTime ? maxWaitTime : seedFactor + let randomTime = Math.floor(Math.random()*seedFactor) + 1000 + let second = Math.floor(randomTime/1000) + let idx = Math.floor(Math.random()*iosVer.length) + UserAgent = `'Mozilla/5.0 (iPhone; CPU iPhone OS ${iosVer[idx]} like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.16(0x1800102c) NetType/WIFI Language/zh_CN'` + si = randomString(32) + console.log(`--随机延迟${second}秒后开始模拟第${readCount}次分享阅读`) + await $.wait(randomTime) + console.log(`----模拟第${readCount}次阅读,使用si=${si}`) + await shareReadStep1() + await $.wait(Math.floor(Math.random()*500)+500) + await shareReadStep2() + await $.wait(Math.floor(Math.random()*1000)+2000) + await shareReadStep3() + await $.wait(Math.floor(Math.random()*1000)+2000) + await shareReadStep4() + console.log(`----模拟第${readCount}次阅读完成`) + } + + } + } + } + + +})() +.catch((e) => $.logErr(e)) +.finally(() => $.done()) + +//通知 +async function showmsg() { + + notifyBody = jsname + "运行通知\n\n" + notifyStr + + if (notifyFlag != 1) { + console.log(notifyBody); + } + + if (notifyFlag == 1) { + $.msg(notifyBody); + //if ($.isNode()){await notify.sendNotify($.name, notifyBody );} + } +} + +async function checkEnv() { + + if(jctqShareNum == 0) { + console.log('当前分享次数设置为0。如果需要开启分享阅读,请设置环境变量jctqShareNum为要被阅读的次数。') + return false + } + + if(jctqCookie) { + if(jctqCookie.indexOf('@') > -1) { + let jctqCookies = jctqCookie.split('@') + for(let i=0; i { + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": post请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + httpResult = JSON.parse(data,caller); + if(logDebug) console.log(httpResult); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +async function httpGet(url,caller) { + httpResult = null + return new Promise((resolve) => { + $.get(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": get请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + // + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function safeGet(data,caller) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } else { + console.log(`Function ${caller}: 未知错误`); + console.log(data) + } + } catch (e) { + console.log(e); + console.log(`Function ${caller}: 服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function printCaller(){ + return (new Error()).stack.split("\n")[2].trim().split(" ")[1] +} + +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, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `\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 } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), a = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(a, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t) { let e = { "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 s in e) new RegExp("(" + s + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))); let h = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; h.push(e), s && h.push(s), i && h.push(i), console.log(h.join("\n")), this.logs = this.logs.concat(h) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } From 3827faa3a7556f1a48f8cc711b3985c80ad2cdd9 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Thu, 18 Nov 2021 11:38:37 +0800 Subject: [PATCH 18/75] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=9A=8F=E6=9C=BA?= =?UTF-8?q?=E5=BB=B6=E8=BF=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jctq/jctq_shareRead.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jctq/jctq_shareRead.js b/jctq/jctq_shareRead.js index a9bd90a..dc44aaf 100644 --- a/jctq/jctq_shareRead.js +++ b/jctq/jctq_shareRead.js @@ -60,7 +60,7 @@ let iosVer = ['13_4_5', '13_4_1', '13_4', '13_3_1', '13_3', '13_2_3', '13_2_2', let minWaitTime = 30000 let seedFactor = minWaitTime + 10000*(i+1) let factor = seedFactor > maxWaitTime ? maxWaitTime : seedFactor - let randomTime = Math.floor(Math.random()*seedFactor) + 1000 + let randomTime = Math.floor(Math.random()*factor) + 1000 let second = Math.floor(randomTime/1000) let idx = Math.floor(Math.random()*iosVer.length) UserAgent = `'Mozilla/5.0 (iPhone; CPU iPhone OS ${iosVer[idx]} like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.16(0x1800102c) NetType/WIFI Language/zh_CN'` From f69bb69eee7004f44a32fac1f573bc10b64d1600 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Thu, 18 Nov 2021 12:56:14 +0800 Subject: [PATCH 19/75] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=A4=9A=E7=94=A8?= =?UTF-8?q?=E6=88=B7=EF=BC=8C=E4=BF=AE=E5=A4=8D=E7=AD=BE=E5=88=B0=E7=BF=BB?= =?UTF-8?q?=E5=80=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jctq/jctq_daily.js | 99 +++++++++++++--------- jctq/jctq_reward.js | 139 +++++++++++++++++++++++-------- jctq/jctq_rewrite.js | 59 ++++++++++--- jctq/jctq_rewrite_subscribe.json | 6 ++ 4 files changed, 215 insertions(+), 88 deletions(-) diff --git a/jctq/jctq_daily.js b/jctq/jctq_daily.js index b22a9c0..76308f1 100644 --- a/jctq/jctq_daily.js +++ b/jctq/jctq_daily.js @@ -16,10 +16,13 @@ let notifyStr = '' let rndtime = "" //毫秒 let httpResult //global buffer +let userCookie = '' + let jctqCookie = ($.isNode() ? process.env.jctqCookie : $.getdata('jctqCookie')) || ''; let jctqBubbleBody = ($.isNode() ? process.env.jctqBubbleBody : $.getdata('jctqBubbleBody')) || ''; let jctqGiveBoxBody = ($.isNode() ? process.env.jctqGiveBoxBody : $.getdata('jctqGiveBoxBody')) || ''; +let jctqCookieArr = [] let jctqBubbleBodyArr = [] let jctqGiveBoxBodyArr = [] @@ -39,20 +42,28 @@ let refRotory = 'https://tq.xunsl.com/html/rotaryTable/index.html?keyword_wyq=wo { await checkEnv() - await queryShareStatus() - await $.wait(1000) - - await queryGiveBoxStatus() - await $.wait(1000) - - await queryBubbleStatus() - await $.wait(1000) + numBoxbody = jctqCookieArr.length + console.log(`找到${numBoxbody}个cookie`) - await getTaskListByWeather() - await $.wait(1000) - - await queryRotaryTable() - await $.wait(1000) + for(let i=0; i -1) { - jctqCookies = jctqCookie.split('@') - jctqCookie = jctqCookies[0] - console.log('检测到多于一个jctqCookie,开始跑第一个账户。请注意本脚本只支持单账户,如需多账户请自行修改。') - } - if(jctqCookie.indexOf('cookie=') == -1 && jctqCookie.indexOf('zqkey=') > -1) { - jctqCookie = jctqCookie.replace(/zqkey=/, "cookie=") - } - if(jctqCookie.indexOf('cookie_id=') == -1 && jctqCookie.indexOf('zqkey_id=') > -1) { - jctqCookie = jctqCookie.replace(/zqkey_id=/, "cookie_id=") - } - if(jctqCookie.indexOf('app_version=') == -1) { - jctqCookie = 'app_version=8.3.7&' + jctqCookie + if(jctqCookie.indexOf('&') > -1) { + let jctqCookies = jctqCookie.split('@') + for(let i=0; i 0 && jctqWithdraw) { - await withdraw() - await $.wait(1000) + numBoxbody = jctqSignDoubleBodyArr.length + console.log(`找到${numBoxbody}个签到翻倍body`) + + for(let i=0; i 0 && jctqWithdrawArr.length > 0) { + numBoxbody = jctqWithdrawArr.length + console.log(`找到${numBoxbody}个提现body`) + + for(let i=0; i -1) { - jctqCookies = jctqCookie.split('@') - jctqCookie = jctqCookies[0] - console.log('检测到多于一个jctqCookie,开始跑第一个账户。请注意本脚本只支持单账户,如需多账户请自行修改。') - } - if(jctqCookie.indexOf('cookie=') == -1 && jctqCookie.indexOf('zqkey=') > -1) { - jctqCookie = jctqCookie.replace(/zqkey=/, "cookie=") - } - if(jctqCookie.indexOf('cookie_id=') == -1 && jctqCookie.indexOf('zqkey_id=') > -1) { - jctqCookie = jctqCookie.replace(/zqkey_id=/, "cookie_id=") - } - if(jctqCookie.indexOf('app_version=') == -1) { - jctqCookie = 'app_version=8.3.7&' + jctqCookie + if(jctqCookie.indexOf('&') > -1) { + let jctqCookies = jctqCookie.split('@') + for(let i=0; i -1) { - jctqWithdraws = jctqWithdraw.split('@') - jctqWithdraw = jctqWithdraws[0] - console.log('检测到多于一个提现body,使用第一个body') + if(jctqWithdraw) { + if(jctqWithdraw.indexOf('&') > -1) { + let jctqWithdraws = jctqWithdraw.split('&') + for(let i=0; i -1) { + let jctqSignDoubleBodys = jctqSignDoubleBody.split('&') + for(let i=0; i -1) { - $.msg(jsname+` 已获取过此用户的jctqCookie`) + + if(jctqCookie) { + if(jctqCookie.indexOf(uidStr) > -1) { + $.msg(jsname+` 此jctqCookie已存在,本次跳过`) + } else { + jctqCookie = jctqCookie + '&' + newCookie + $.setdata(jctqCookie, 'jctqCookie'); + bodyList = jctqCookie.split('&') + $.msg(jsname+` 获取第${bodyList.length}个jctqCookie成功`) + } } else { - jctqCookie = `app_version=${app_version}&cookie=${zqkey}&cookie_id=${zqkey_id}&uid=${uid}` - $.setdata(jctqCookie, 'jctqCookie'); - $.msg(jsname+` 获取jctqCookie成功`) + $.setdata(newCookie, 'jctqCookie'); + $.msg(jsname+` 获取第1个jctqCookie成功`) } } @@ -146,8 +153,19 @@ async function getRewrite() { if($request.url.indexOf('v5/wechat/withdraw2.json') > -1) { rBody = $request.body - $.setdata(rBody, 'jctqWithdraw'); - $.msg(jsname+` 获取提现body成功`) + if(jctqWithdraw) { + if(jctqWithdraw.indexOf(rBody) > -1) { + $.msg(jsname+` 此提现body已存在,本次跳过`) + } else { + jctqWithdraw = jctqWithdraw + '&' + rBody + $.setdata(jctqWithdraw, 'jctqWithdraw'); + bodyList = jctqWithdraw.split('&') + $.msg(jsname+` 获取第${bodyList.length}个提现body成功`) + } + } else { + $.setdata(rBody, 'jctqWithdraw'); + $.msg(jsname+` 获取第1个提现body成功`) + } } if($request.url.indexOf('v5/Weather/giveBoxOnWeather.json') > -1) { @@ -183,6 +201,23 @@ async function getRewrite() { $.msg(jsname+` 获取第1个首页气泡/翻倍body成功`) } } + + if($request.url.indexOf('v5/CommonReward/toDouble.json') > -1) { + rBody = $request.body + if(jctqSignDoubleBody) { + if(jctqSignDoubleBody.indexOf(rBody) > -1) { + $.msg(jsname+` 此签到翻倍body已存在,本次跳过`) + } else { + jctqSignDoubleBody = jctqSignDoubleBody + '&' + rBody + $.setdata(jctqSignDoubleBody, 'jctqSignDoubleBody'); + bodyList = jctqSignDoubleBody.split('&') + $.msg(jsname+` 获取第${bodyList.length}个签到翻倍body成功`) + } + } else { + $.setdata(rBody, 'jctqSignDoubleBody'); + $.msg(jsname+` 获取第1个签到翻倍body成功`) + } + } } //////////////////////////////////////////////////////////////////// diff --git a/jctq/jctq_rewrite_subscribe.json b/jctq/jctq_rewrite_subscribe.json index d09930d..03d415b 100644 --- a/jctq/jctq_rewrite_subscribe.json +++ b/jctq/jctq_rewrite_subscribe.json @@ -61,6 +61,12 @@ "stage": "req", "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", "enable": true + }, + { + "match": "https://tq.xunsl.com/v5/CommonReward/toDouble.json", + "stage": "req", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", + "enable": true } ], "task": { From 42cc1fabff3f8d84b0254d645d3cfdecec50a61d Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Thu, 18 Nov 2021 15:28:00 +0800 Subject: [PATCH 20/75] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=A4=9A=E8=B4=A6?= =?UTF-8?q?=E5=8F=B7=E9=97=AE=E9=A2=98=EF=BC=8C=E4=BF=AE=E5=A4=8D=E6=8F=90?= =?UTF-8?q?=E7=8E=B0bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jctq/jctq_kkz.js | 46 +++++++++++++++++++++++++++++--------------- jctq/jctq_reward.js | 8 ++++---- jctq/jctq_rewrite.js | 5 +++-- 3 files changed, 38 insertions(+), 21 deletions(-) diff --git a/jctq/jctq_kkz.js b/jctq/jctq_kkz.js index 1201419..9f51720 100644 --- a/jctq/jctq_kkz.js +++ b/jctq/jctq_kkz.js @@ -18,8 +18,12 @@ let httpResult //global buffer let jctqCookie = ($.isNode() ? process.env.jctqCookie : $.getdata('jctqCookie')) || ''; let jctqLookStartbody = ($.isNode() ? process.env.jctqLookStartbody : $.getdata('jctqLookStartbody')) || ''; + +let jctqCookieArr = [] let jctqLookStartbodyArr = [] +let userCookie = '' + let bannerIdList = [] let duplicatedCount = 0 let invalidCount = 0 @@ -47,7 +51,11 @@ let rewardAmount = 0 await $.wait(200) } - await getBoxRewardConf() + for(let i=0; i -1) { - jctqCookies = jctqCookie.split('@') - jctqCookie = jctqCookies[0] - console.log('检测到多于一个jctqCookie,开始跑第一个账户。请注意本脚本只支持单账户,如需多账户请自行修改。') - } - if(jctqCookie.indexOf('cookie=') == -1 && jctqCookie.indexOf('zqkey=') > -1) { - jctqCookie = jctqCookie.replace(/zqkey=/, "cookie=") - } - if(jctqCookie.indexOf('cookie_id=') == -1 && jctqCookie.indexOf('zqkey_id=') > -1) { - jctqCookie = jctqCookie.replace(/zqkey_id=/, "cookie_id=") - } - if(jctqCookie.indexOf('app_version=') == -1) { - jctqCookie = 'app_version=8.3.7&' + jctqCookie + let jctqCookies = jctqCookie.split('@') + for(let i=0; i 0 && jctqWithdrawArr.length > 0) { + if(jctqWithdrawFlag > 0 && jctqWithdrawArr.length > 0) { numBoxbody = jctqWithdrawArr.length console.log(`找到${numBoxbody}个提现body`) @@ -74,7 +74,7 @@ let withdrawSuccess = 0 await withdraw(withBody) await $.wait(1000) } - } else if(jctqWithdraw == 0) { + } else if(jctqWithdrawFlag == 0) { console.log(`你设置了不自动提现`) } else if(jctqWithdrawArr.length == 0) { console.log(`没有找到提现body`) @@ -116,7 +116,7 @@ async function showmsg() { async function checkEnv() { if(jctqCookie) { - if(jctqCookie.indexOf('&') > -1) { + if(jctqCookie.indexOf('@') > -1) { let jctqCookies = jctqCookie.split('@') for(let i=0; i -1) { $.msg(jsname+` 此jctqCookie已存在,本次跳过`) } else { - jctqCookie = jctqCookie + '&' + newCookie + jctqCookie = jctqCookie + '@' + newCookie $.setdata(jctqCookie, 'jctqCookie'); - bodyList = jctqCookie.split('&') + bodyList = jctqCookie.split('@') $.msg(jsname+` 获取第${bodyList.length}个jctqCookie成功`) } } else { From ddb2096e1436e1da49c18eb68c53829778bc1af8 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Thu, 18 Nov 2021 15:41:43 +0800 Subject: [PATCH 21/75] Create README.md --- jctq/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 jctq/README.md diff --git a/jctq/README.md b/jctq/README.md new file mode 100644 index 0000000..9daeafb --- /dev/null +++ b/jctq/README.md @@ -0,0 +1 @@ +test From 70a3448ae5be57e238fdf16924c34346f92bc4b8 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Thu, 18 Nov 2021 15:49:23 +0800 Subject: [PATCH 22/75] Update README.md --- jctq/README.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/jctq/README.md b/jctq/README.md index 9daeafb..fd71e30 100644 --- a/jctq/README.md +++ b/jctq/README.md @@ -1 +1,22 @@ -test +# 晶彩天气(v8.3.7) + +## 重写: +https://tq.xunsl.com/v17/NewTask/getTaskListByWeather.json -- 点开福利页即可获取jctqCookie +https://tq.xunsl.com/v5/CommonReward/toGetReward.json -- 签到,和福利页任务奖励 +https://tq.xunsl.com/v5/article/info.json -- 点开文章获取文章body +https://tq.xunsl.com/v5/article/detail.json -- 点开视频获取视频body +https://tq.xunsl.com/v5/user/stay.json -- 阅读文章或者看视频一段时间后可以获取到时长body +https://tq.xunsl.com/v5/nameless/adlickstart.json -- 点开看看赚获取body,可以一直开着,脚本会自动删除重复和失效body +https://tq.xunsl.com/v5/Weather/giveBoxOnWeather.json -- 点开福利页浮窗宝箱和观看翻倍视频获取body +https://tq.xunsl.com/v5/weather/giveTimeInterval.json -- 点开首页气泡红包和观看翻倍视频获取body +https://tq.xunsl.com/v5/wechat/withdraw2.json -- 提现一次对应金额获取body +https://tq.xunsl.com/v5/CommonReward/toDouble.json -- 领取签到翻倍奖励后可获取 + +## 任务: +jctq_daily.js -- 领转发页定时宝箱,领福利页定时宝箱,领首页气泡红包,时段转发,刷福利视频,抽奖5次 +jctq_reward.js -- 签到和翻倍,任务奖励领取,统计今日收益,自动提现 +jctq_kkz.js -- 完成看看赚任务,删除重复和失效的body +jctq_read.js -- 阅读文章,浏览视频 + +## 分享阅读: +jctq_shareRead.js -- 分享和助力阅读,需要在环境变量jctqShareNum里设置要被阅读的次数,不设置默认不跑 From 20f33d0a2fae059f584b85d5170b7e5ad55376e2 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Thu, 18 Nov 2021 16:25:16 +0800 Subject: [PATCH 23/75] =?UTF-8?q?=E4=B8=8D=E5=86=8D=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=A4=B1=E6=95=88=E7=9A=84=E7=9C=8B=E7=9C=8B=E8=B5=9Abody?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jctq/README.md | 2 +- jctq/jctq_kkz.js | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/jctq/README.md b/jctq/README.md index fd71e30..2e15bfb 100644 --- a/jctq/README.md +++ b/jctq/README.md @@ -6,7 +6,7 @@ https://tq.xunsl.com/v5/CommonReward/toGetReward.json -- 签到,和福 https://tq.xunsl.com/v5/article/info.json -- 点开文章获取文章body https://tq.xunsl.com/v5/article/detail.json -- 点开视频获取视频body https://tq.xunsl.com/v5/user/stay.json -- 阅读文章或者看视频一段时间后可以获取到时长body -https://tq.xunsl.com/v5/nameless/adlickstart.json -- 点开看看赚获取body,可以一直开着,脚本会自动删除重复和失效body +https://tq.xunsl.com/v5/nameless/adlickstart.json -- 点开看看赚获取body,可以一直开着,脚本会自动删除重复body https://tq.xunsl.com/v5/Weather/giveBoxOnWeather.json -- 点开福利页浮窗宝箱和观看翻倍视频获取body https://tq.xunsl.com/v5/weather/giveTimeInterval.json -- 点开首页气泡红包和观看翻倍视频获取body https://tq.xunsl.com/v5/wechat/withdraw2.json -- 提现一次对应金额获取body diff --git a/jctq/jctq_kkz.js b/jctq/jctq_kkz.js index 9f51720..9efcb3c 100644 --- a/jctq/jctq_kkz.js +++ b/jctq/jctq_kkz.js @@ -26,7 +26,6 @@ let userCookie = '' let bannerIdList = [] let duplicatedCount = 0 -let invalidCount = 0 let finishCount = 0 let rewardAmount = 0 @@ -157,8 +156,6 @@ async function adlickstart(lookStartBody,idx) { console.log(`第${idx+1}次看看赚任务[id:${bannerId}]重复`) } } else { - invalidCount++ - await removeBody(lookStartBody) console.log(`激活第${idx+1}个看看赚失败:${result.message}`) } } @@ -268,7 +265,6 @@ async function getStatus() { notifyStr += `本次运行情况:\n` notifyStr += `共完成了${finishCount}个看看赚任务,获得${rewardAmount}金币\n` if(duplicatedCount > 0) notifyStr += `删除了${duplicatedCount}个重复的body\n` - if(invalidCount > 0) notifyStr += `删除了${invalidCount}个无效的body\n` } //////////////////////////////////////////////////////////////////// From 0289f091e120c935301d4c06414d3b1bb81ea0ba Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Fri, 19 Nov 2021 22:26:57 +0800 Subject: [PATCH 24/75] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E5=8E=BB=E9=87=8D?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=8C=E4=BF=AE=E5=A4=8D=E5=A4=9A=E8=B4=A6?= =?UTF-8?q?=E6=88=B7=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jctq/jctq_kkz.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/jctq/jctq_kkz.js b/jctq/jctq_kkz.js index 9efcb3c..8f4d5a7 100644 --- a/jctq/jctq_kkz.js +++ b/jctq/jctq_kkz.js @@ -25,7 +25,7 @@ let jctqLookStartbodyArr = [] let userCookie = '' let bannerIdList = [] -let duplicatedCount = 0 +//let duplicatedCount = 0 let finishCount = 0 let rewardAmount = 0 @@ -137,7 +137,7 @@ async function adlickstart(lookStartBody,idx) { if(result.success == true) { let bannerId = result.items.banner_id - if(await checkDuplicated(lookStartBody,bannerId)) { + //if(await checkDuplicated(lookStartBody,bannerId)) { if(result.items.comtele_state == 1) { console.log(`第${idx+1}个看看赚[id:${bannerId}]已完成`) } else { @@ -152,9 +152,9 @@ async function adlickstart(lookStartBody,idx) { await $.wait(1000) await adlickend(lookStartBody,idx) } - } else { - console.log(`第${idx+1}次看看赚任务[id:${bannerId}]重复`) - } + //} else { + // console.log(`第${idx+1}次看看赚任务[id:${bannerId}]重复`) + //} } else { console.log(`激活第${idx+1}个看看赚失败:${result.message}`) } @@ -240,6 +240,7 @@ async function getBoxReward(id) { } //看看赚去重 +/* async function checkDuplicated(lookStartBody,bannerId) { for(let i=0; i 0) notifyStr += `删除了${duplicatedCount}个重复的body\n` } //////////////////////////////////////////////////////////////////// From e65056a7391538b042c373bc100c55d47aed4f0b Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Sat, 20 Nov 2021 22:22:58 +0800 Subject: [PATCH 25/75] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=88=86=E4=BA=AB?= =?UTF-8?q?=E9=98=85=E8=AF=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jckd/jckd_shareRead.js | 324 +++++++++++++++++++++++++++ jctq/jctq_rewrite_subscribe.json.bak | 102 +++++++++ jctq/jctq_shareRead.js | 4 +- zqkd/zqkd_shareRead.js | 324 +++++++++++++++++++++++++++ 4 files changed, 751 insertions(+), 3 deletions(-) create mode 100644 jckd/jckd_shareRead.js create mode 100644 jctq/jctq_rewrite_subscribe.json.bak create mode 100644 zqkd/zqkd_shareRead.js diff --git a/jckd/jckd_shareRead.js b/jckd/jckd_shareRead.js new file mode 100644 index 0000000..b41c330 --- /dev/null +++ b/jckd/jckd_shareRead.js @@ -0,0 +1,324 @@ +/* +安卓:晶彩看点 + +转发和分享阅读,请勿贪心,小心黑号 +*/ + +const jsname = '晶彩看点分享阅读' +const $ = Env(jsname) +const notifyFlag = 1; //0为关闭通知,1为打开通知,默认为1 +const logDebug = 0 + +//const notify = $.isNode() ? require('./sendNotify') : ''; +let notifyStr = '' + +let rndtime = "" //毫秒 +let httpResult //global buffer + +let jckdCookie = ($.isNode() ? process.env.jc_cookie : $.getdata('jc_cookie')) || ''; +let jckdCookieArr = [] + +let userCk = '' +let readCount = 0 + +let jckdShareNum = ($.isNode() ? process.env.jckdShareNum : $.getdata('jckdShareNum')) || 0; + +let newsItem = '' +let UserAgent = '' +let si = '' + +/////////////////////////////////////////////////////////////////// + +!(async () => { + + if(typeof $request !== "undefined") + { + $.msg(jsname+': 此脚本不做重写,请检查重写设置') + } + else + { + if(!(await checkEnv())){ + return + } + + for(let j=0; j maxWaitTime ? maxWaitTime : seedFactor + let randomTime = Math.floor(Math.random()*factor) + 1000 + let second = Math.floor(randomTime/1000) + UserAgent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.16(0x1800102c) NetType/WIFI Language/zh_CN' + si = randomString(32) + console.log(`--随机延迟${second}秒后开始模拟第${readCount}次分享阅读`) + await $.wait(randomTime) + console.log(`----模拟第${readCount}次阅读,使用si=${si}`) + await shareReadStep1() + await $.wait(Math.floor(Math.random()*500)+500) + await shareReadStep2() + await $.wait(Math.floor(Math.random()*1000)+2000) + await shareReadStep3() + await $.wait(Math.floor(Math.random()*1000)+2000) + await shareReadStep4() + console.log(`----模拟第${readCount}次阅读完成`) + } + + } + } + } + + +})() +.catch((e) => $.logErr(e)) +.finally(() => $.done()) + +//通知 +async function showmsg() { + + notifyBody = jsname + "运行通知\n\n" + notifyStr + + if (notifyFlag != 1) { + console.log(notifyBody); + } + + if (notifyFlag == 1) { + $.msg(notifyBody); + //if ($.isNode()){await notify.sendNotify($.name, notifyBody );} + } +} + +async function checkEnv() { + + if(jckdShareNum == 0) { + console.log('当前分享次数设置为0。如果需要开启分享阅读,请设置环境变量jckdShareNum为要被阅读的次数。') + return false + } + + if(jckdCookie) { + if(jckdCookie.indexOf('@') > -1) { + let jckdCookies = jckdCookie.split('@') + for(let i=0; i { + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": post请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + httpResult = JSON.parse(data,caller); + if(logDebug) console.log(httpResult); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +async function httpGet(url,caller) { + httpResult = null + return new Promise((resolve) => { + $.get(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": get请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + // + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function safeGet(data,caller) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } else { + console.log(`Function ${caller}: 未知错误`); + console.log(data) + } + } catch (e) { + console.log(e); + console.log(`Function ${caller}: 服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function printCaller(){ + return (new Error()).stack.split("\n")[2].trim().split(" ")[1] +} + +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, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `\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 } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), a = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(a, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t) { let e = { "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 s in e) new RegExp("(" + s + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))); let h = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; h.push(e), s && h.push(s), i && h.push(i), console.log(h.join("\n")), this.logs = this.logs.concat(h) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/jctq/jctq_rewrite_subscribe.json.bak b/jctq/jctq_rewrite_subscribe.json.bak new file mode 100644 index 0000000..c38e922 --- /dev/null +++ b/jctq/jctq_rewrite_subscribe.json.bak @@ -0,0 +1,102 @@ +{ + "name": "晶彩天气重写订阅", + "type": "rewrite", + "note": "仅供参考", + "author": "leaf", + "resource": "jctq_rewrite_subscribe.json", + "mitmhost": [ + "tq.xunsl.com" + ], + "rewrite": [ + { + "match": "https://tq.xunsl.com/v17/NewTask/getTaskListByWeather.json", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", + "enable": true + }, + { + "match": "https://tq.xunsl.com/v5/CommonReward/toGetReward.json", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", + "enable": true + }, + { + "match": "https://tq.xunsl.com/v5/article/info.json", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", + "enable": true + }, + { + "match": "https://tq.xunsl.com/v5/article/detail.json", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", + "enable": true + }, + { + "match": "https://tq.xunsl.com/v5/user/stay.json", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", + "enable": true + }, + { + "match": "https://tq.xunsl.com/v5/nameless/adlickstart.json", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", + "enable": true + }, + { + "match": "https://tq.xunsl.com/v5/wechat/withdraw2.json", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", + "enable": true + }, + { + "match": "https://tq.xunsl.com/v5/Weather/giveBoxOnWeather.json", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", + "enable": true + }, + { + "match": "https://tq.xunsl.com/v5/weather/giveTimeInterval.json", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_rewrite.js", + "enable": true + } + ], + "task": { + "type": "skip", + "list": [ + { + "name": "晶彩天气看看赚", + "type": "cron", + "time": "30 9,20 * * *", + "job": { + "type": "runjs", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_kkz.js" + }, + "running": true + }, + { + "name": "晶彩天气文章视频", + "type": "cron", + "time": "20 7,18 * * *", + "job": { + "type": "runjs", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_read.js" + }, + "running": true + }, + { + "name": "晶彩天气日常任务", + "type": "cron", + "time": "15,45 * * * *", + "job": { + "type": "runjs", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_daily.js" + }, + "running": true + }, + { + "name": "晶彩天气任务签到", + "type": "cron", + "time": "30 22 * * *", + "job": { + "type": "runjs", + "target": "https://raw.githubusercontent.com/leafxcy/JavaScript/main/jctq/jctq_reward.js" + }, + "running": true + } + ] + } +} \ No newline at end of file diff --git a/jctq/jctq_shareRead.js b/jctq/jctq_shareRead.js index dc44aaf..36e9af6 100644 --- a/jctq/jctq_shareRead.js +++ b/jctq/jctq_shareRead.js @@ -26,7 +26,6 @@ let jctqShareNum = ($.isNode() ? process.env.jctqShareNum : $.getdata('jctqShare let newsItem = '' let UserAgent = '' let si = '' -let iosVer = ['13_4_5', '13_4_1', '13_4', '13_3_1', '13_3', '13_2_3', '13_2_2', '13_2', '13_1_3', '13_1_2', '13_1_1', '13_1', '13_0', '12_4_1', '12_4', '12_3_1', '12_3', '12_2', '12_1_4', '12_1_3', '12_1_2', '12_1_1', '12_1', '12_0_1', '12_0', '11_4_1', '11_4', '11_3_1', '11_3', '11_2_6', '11_2_5', '11_2_2', '11_2_1', '11_2', '11_1_2', '11_1_1', '11_1', '11_0_3', '11_0_2', '11_0_1', '11_0', '10_3_3', '10_3_2', '10_3_1', '10_3', '10_2_1', '10_2', '10_1_1', '10_1', '10_0_2', '10_0_1', '9_3_5', '9_3_4', '9_3_3', '9_3_2', '9_3_1', '9_3', '9_2_1', '9_2', '9_1', '9_0_2', '9_0_1'] /////////////////////////////////////////////////////////////////// @@ -62,8 +61,7 @@ let iosVer = ['13_4_5', '13_4_1', '13_4', '13_3_1', '13_3', '13_2_3', '13_2_2', let factor = seedFactor > maxWaitTime ? maxWaitTime : seedFactor let randomTime = Math.floor(Math.random()*factor) + 1000 let second = Math.floor(randomTime/1000) - let idx = Math.floor(Math.random()*iosVer.length) - UserAgent = `'Mozilla/5.0 (iPhone; CPU iPhone OS ${iosVer[idx]} like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.16(0x1800102c) NetType/WIFI Language/zh_CN'` + UserAgent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.16(0x1800102c) NetType/WIFI Language/zh_CN' si = randomString(32) console.log(`--随机延迟${second}秒后开始模拟第${readCount}次分享阅读`) await $.wait(randomTime) diff --git a/zqkd/zqkd_shareRead.js b/zqkd/zqkd_shareRead.js new file mode 100644 index 0000000..9c3181b --- /dev/null +++ b/zqkd/zqkd_shareRead.js @@ -0,0 +1,324 @@ +/* +安卓:中青看点 + +转发和分享阅读,请勿贪心,小心黑号 +*/ + +const jsname = '中青看点分享阅读' +const $ = Env(jsname) +const notifyFlag = 1; //0为关闭通知,1为打开通知,默认为1 +const logDebug = 0 + +//const notify = $.isNode() ? require('./sendNotify') : ''; +let notifyStr = '' + +let rndtime = "" //毫秒 +let httpResult //global buffer + +let zqkdCookie = ($.isNode() ? process.env.zq_cookie : $.getdata('zq_cookie')) || ''; +let zqkdCookieArr = [] + +let userCk = '' +let readCount = 0 + +let zqkdShareNum = ($.isNode() ? process.env.zqkdShareNum : $.getdata('zqkdShareNum')) || 0; + +let newsItem = '' +let UserAgent = '' +let si = '' + +/////////////////////////////////////////////////////////////////// + +!(async () => { + + if(typeof $request !== "undefined") + { + $.msg(jsname+': 此脚本不做重写,请检查重写设置') + } + else + { + if(!(await checkEnv())){ + return + } + + for(let j=0; j maxWaitTime ? maxWaitTime : seedFactor + let randomTime = Math.floor(Math.random()*factor) + 1000 + let second = Math.floor(randomTime/1000) + UserAgent = `Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.16(0x1800102c) NetType/WIFI Language/zh_CN` + si = randomString(32) + console.log(`--随机延迟${second}秒后开始模拟第${readCount}次分享阅读`) + await $.wait(randomTime) + console.log(`----模拟第${readCount}次阅读,使用si=${si}`) + await shareReadStep1() + await $.wait(Math.floor(Math.random()*500)+500) + await shareReadStep2() + await $.wait(Math.floor(Math.random()*1000)+2000) + await shareReadStep3() + await $.wait(Math.floor(Math.random()*1000)+2000) + await shareReadStep4() + console.log(`----模拟第${readCount}次阅读完成`) + } + + } + } + } + + +})() +.catch((e) => $.logErr(e)) +.finally(() => $.done()) + +//通知 +async function showmsg() { + + notifyBody = jsname + "运行通知\n\n" + notifyStr + + if (notifyFlag != 1) { + console.log(notifyBody); + } + + if (notifyFlag == 1) { + $.msg(notifyBody); + //if ($.isNode()){await notify.sendNotify($.name, notifyBody );} + } +} + +async function checkEnv() { + + if(zqkdShareNum == 0) { + console.log('当前分享次数设置为0。如果需要开启分享阅读,请设置环境变量zqkdShareNum为要被阅读的次数。') + return false + } + + if(zqkdCookie) { + if(zqkdCookie.indexOf('@') > -1) { + let zqkdCookies = zqkdCookie.split('@') + for(let i=0; i { + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": post请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + httpResult = JSON.parse(data,caller); + if(logDebug) console.log(httpResult); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +async function httpGet(url,caller) { + httpResult = null + return new Promise((resolve) => { + $.get(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": get请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + // + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function safeGet(data,caller) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } else { + console.log(`Function ${caller}: 未知错误`); + console.log(data) + } + } catch (e) { + console.log(e); + console.log(`Function ${caller}: 服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function printCaller(){ + return (new Error()).stack.split("\n")[2].trim().split(" ")[1] +} + +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, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `\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 } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), a = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(a, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t) { let e = { "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 s in e) new RegExp("(" + s + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))); let h = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; h.push(e), s && h.push(s), i && h.push(i), console.log(h.join("\n")), this.logs = this.logs.concat(h) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } From 6be8464528664737e196287810b5a92957bd26ee Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Sun, 21 Nov 2021 03:50:29 +0800 Subject: [PATCH 26/75] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=83=BD=E7=88=B1?= =?UTF-8?q?=E7=8E=A9=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- daw.js | 854 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 854 insertions(+) create mode 100644 daw.js diff --git a/daw.js b/daw.js new file mode 100644 index 0000000..86a509b --- /dev/null +++ b/daw.js @@ -0,0 +1,854 @@ +/* +IOS/安卓:都爱玩 +下载注册地址,微信打开: +https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx592b7bf2a9f7f003&redirect_uri=https://v3.sdk.haowusong.com/api/auth/wechat/sharelogin&response_type=code&scope=snsapi_userinfo&state=AAABQKAW,dawbox-android#wechat_redirect + +炒个冷饭,之前有几位大佬已经写过了 +现在支持了苹果和安卓双端的任务,两边账户分红币独立,理论上收益可以翻倍,每天2块多到3块的样子,不过提现次数似乎两边共用 +支持多账户,可以并发看视频广告,减少运行时间,V2P跑有时会有code=400错误信息,忽略就好 +重写捉包只需要捉其中一端的账号即可,ck通用 +脚本内置了自动提现,默认提现到微信 +在【我的】页面可以花0.1购买普通会员,马上返1元可提现。会员每日可以积分兑换0.1-0.2的红包,聊胜于无吧,建议购买 +建议每天多跑几次,池子有额度就能投进去分红 + +青龙: +捉取https://v3.sdk.haowusong.com/api/box/wallet/info的包里的token,写到环境变量dawToken里,多账户用@隔开 +export dawToken='account1@account2@account3' + +V2P重写:打开APP即可获取CK,没有的话点一下下面分红币页面,可以直接捉多账号 +[task_local] +#都爱玩 +15 0,1,8,15,20 * * * https://raw.githubusercontent.com/leafxcy/JavaScript/main/daw.js, tag=都爱玩, enabled=true +[rewrite_local] +https://v3.sdk.haowusong.com/api/box/wallet/info url script-request-header https://raw.githubusercontent.com/leafxcy/JavaScript/main/daw.js +[MITM] +hostname = v3.sdk.haowusong.com +*/ + +const jsname = '都爱玩 by leaf ' +const $ = Env(jsname) + +const logDebug = 0 + +//0为关闭通知,1为打开通知,默认为1,可以在环境变量设置 +let notifyFlag = ($.isNode() ? process.env.dawNotify : $.getdata('dawNotify')) || 1; +let notifyStr = '' +const notify = $.isNode() ? require('./sendNotify') : ''; + +let rndtime = "" //毫秒 +let httpResult //global buffer + +let userToken = '' +let userIdx = 0 +let numBoxbody = 0 + +let maxTryNum = 12 +let waitTime = 0 +let allCompFlag = 0 + +let channelIdx = 0 +let channel = ['dawbox','dawbox-android'] +let channelStr = ['苹果端','安卓端'] + +let dawToken = ($.isNode() ? process.env.dawToken : $.getdata('dawToken')) || ''; +let dawTokenArr = [] + +let userName = '' +let isVip = 0 +let vipLevel = 0 + +/////////////////////////////////////////////////////////////////// + +!(async () => { + + if(typeof $request !== "undefined") + { + await GetRewrite() + } + else + { + await CheckEnv() + + numBoxbody = dawTokenArr.length + console.log(`找到${numBoxbody}个账户,脚本会同时做IOS和安卓端任务\n`) + + for(channelIdx=0; channelIdx 0) { + console.log(`等待${waitTime}ms 进行下一轮看视频抽奖\n`) + await $.wait(waitTime) + } + } + } + + console.log(`\n开始签到,领取任务奖励,兑换红包和提现`) + for(channelIdx=0; channelIdx $.logErr(e)) +.finally(() => $.done()) + +//通知 +async function Showmsg() { + + notifyBody = jsname + "运行通知\n\n" + notifyStr + + if (notifyFlag != 1) { + console.log(notifyBody); + } + + if (notifyFlag == 1) { + $.msg(notifyBody); + if ($.isNode()){await notify.sendNotify($.name, notifyBody );} + } +} + +async function GetRewrite() { + + if($request.url.indexOf('api/box/wallet/info') > -1) { + let headers = $request.headers + let token = headers['token'] ? headers['token'] : '' + + if(!token) return; + + if(dawToken) { + if(dawToken.indexOf(token) > -1) { + $.msg(jsname+` 此dawToken已存在`) + } else { + dawToken = dawToken + '@' + token + $.setdata(dawToken, 'dawToken'); + ckList = dawToken.split('@') + $.msg(jsname+` 获取第${ckList.length}个dawToken成功`) + } + } else { + $.setdata(token, 'dawToken'); + $.msg(jsname+` 获取第1个dawToken成功`) + } + } +} + +async function CheckEnv() { + if(dawToken) { + if(dawToken.indexOf('@') > -1) { + let dawTokens = dawToken.split('@') + for(let i=0; i 0) { + if(integral_num >= integral_min_put_num && can_put_num >= integral_min_put_num) { + let putNum = (integral_num>can_put_num) ? can_put_num : integral_num + await $.wait(100) + await PutInPool(putNum,1) + } + } + } else if(type == 1) { + if(result.data.tasks.vedio_task && Array.isArray(result.data.tasks.vedio_task)) { + for(let i=0; i -1) { + if(taskItem.complete_num < taskItem.contribution_num) { + allCompFlag = 0 + await $.wait(100) + waitTime -= 100 + await ReceiveCoin(taskItem) + } + } + } + } + if(result.data.tasks.game_task && Array.isArray(result.data.tasks.game_task)) { + for(let i=0; i -1) { + if(taskItem.complete_num < taskItem.contribution_num) { + allCompFlag = 0 + await $.wait(100) + waitTime -= 100 + await QueryTurntable(taskItem) + } + } + } + } + } else if(type == 2) { + let integral_num = result.data.player.integral_num ? result.data.player.integral_num : 0 + let use_integral_num = result.data.player.use_integral_num ? result.data.player.use_integral_num : 0 + let money = result.data.player.money ? result.data.player.money : 0 + console.log(`【DAB币】:${integral_num}`) + console.log(`【今日已投】:${use_integral_num}`) + console.log(`【分红余额】:${money}`) + notifyStr += `【DAB币】:${integral_num}\n` + notifyStr += `【今日已投】:${use_integral_num}\n` + notifyStr += `【分红余额】:${money}\n` + } + } else { + console.log(`\n查询信息失败:${result.error}`) + } +} + +//领币任务奖励 +async function ReceiveCoin(taskItem) { + let caller = PrintCaller() + let url = `https://v3.sdk.haowusong.com/api/channel/integral/task/receive` + let reqBody = `{"task_id":${taskItem.task_id},"channel":"${channel[channelIdx]}"}` + let urlObject = PopulatePostUrl(url,reqBody) + await HttpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 200) { + console.log(`完成任务【${taskItem.title}】,领取DAB币成功`) + } else { + console.log(`完成任务【${taskItem.title}】失败:${result.error}`) + } +} + +//转盘次数查询 +async function QueryTurntable(taskItem) { + let caller = PrintCaller() + let url = `https://v3.sdk.haowusong.com/api/channel/integral/turntable/config?channel=${channel[channelIdx]}&task_id=${taskItem.task_id}` + let urlObject = PopulateGetUrl(url) + await HttpGet(urlObject,caller) + let result = httpResult; + if(!result) return false + + if(result.code == 200) { + let can_video_num = result.data.lottery_num.can_video_num ? result.data.lottery_num.can_video_num : 0 + let max_video_num = result.data.lottery_num.max_video_num ? result.data.lottery_num.max_video_num : 0 + let can_lottery_num = result.data.lottery_num.can_lottery_num ? result.data.lottery_num.can_lottery_num : 0 + let max_lottery_num = result.data.lottery_num.max_lottery_num ? result.data.lottery_num.max_lottery_num : 0 + if(can_video_num < max_video_num) { + //先看视频领次数 + await $.wait(100) + waitTime -= 100 + await ReceiveVideoReward(taskItem) + } else if(can_lottery_num < max_lottery_num) { + //已看完视频,直接抽奖 + await $.wait(100) + waitTime -= 100 + await Turntable(taskItem) + } + } else { + console.log(`\n获取转盘次数失败:${result.error}`) + return false + } + + return true +} + +//看视频领抽奖次数 +async function ReceiveVideoReward(taskItem) { + let caller = PrintCaller() + let url = `https://v3.sdk.haowusong.com/api/channel/integral/turntable/video/receive` + let reqBody = `{"channel":"${channel[channelIdx]}","task_id":"${taskItem.task_id}"}` + let urlObject = PopulatePostUrl(url,reqBody) + await HttpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 200) { + console.log(`看视频获得了一次抽奖机会`) + await $.wait(100) + waitTime -= 100 + await Turntable(taskItem) + } else { + console.log(`看视频得抽奖机会失败:${result.error}`) + } +} + +//转盘抽奖 +async function Turntable(taskItem) { + let caller = PrintCaller() + let url = `https://v3.sdk.haowusong.com/api/channel/integral/turntable/result` + let reqBody = `{"channel":"${channel[channelIdx]}","task_id":"${taskItem.task_id}"}` + let urlObject = PopulatePostUrl(url,reqBody) + await HttpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 200) { + let reward = result.data.title ? result.data.title : '【?】' + console.log(`抽奖成功,获得了${reward}`) + await $.wait(100) + waitTime -= 100 + await ReceiveTurntable(taskItem) + } else { + console.log(`抽奖失败:${result.error}`) + } +} + +//转盘抽奖奖励翻倍领取 +async function ReceiveTurntable(taskItem) { + let caller = PrintCaller() + let url = `https://v3.sdk.haowusong.com/api/channel/integral/turntable/receive` + let reqBody = `{"channel":"${channel[channelIdx]}","task_id":"${taskItem.task_id}","type":1}` + let urlObject = PopulatePostUrl(url,reqBody) + await HttpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 200) { + console.log(`看视频获得抽奖翻倍奖励成功`) + } else { + console.log(`看视频获得抽奖翻倍奖励失败:${result.error}`) + } +} + +//瓜分池投入 +async function PutInPool(num,pool_lv) { + let caller = PrintCaller() + let url = `https://v3.sdk.haowusong.com/api/channel/integral/put?channel=${channel[channelIdx]}&num=${num}&pool_lv=${pool_lv}` + let urlObject = PopulateGetUrl(url) + await HttpPost(urlObject,caller) + let result = httpResult; + if(!result) return false + + if(result.code == 200) { + console.log(`投入瓜分池${num}币成功`) + notifyStr += `投入瓜分池${num}币成功\n` + } else { + console.log(`投入瓜分池${num}币失败:${result.error}`) + } +} + +//签到信息查询 +async function QuerySignList() { + let caller = PrintCaller() + let url = `https://v3.sdk.haowusong.com/api/box/sign/list` + let urlObject = PopulateGetUrl(url) + await HttpGet(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 200) { + if(result.data.today_sign_status == 0) { + await $.wait(100) + await SignToday() + } else { + console.log(`\n今日已签到`) + } + } else { + console.log(`\n获取签到信息失败:${result.error}`) + } +} + +//签到 +async function SignToday() { + let caller = PrintCaller() + let url = `https://v3.sdk.haowusong.com/api/box/sign/post` + let urlObject = PopulateGetUrl(url) + await HttpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 200) { + console.log(`\n签到成功,获得${result.data.total_credit_num}积分`) + } else { + console.log(`\n签到失败:${result.error}`) + } +} + +//积分任务列表查询 +async function QueryTaskList() { + let caller = PrintCaller() + let url = `https://v3.sdk.haowusong.com/api/box/task/list` + let urlObject = PopulateGetUrl(url) + await HttpGet(urlObject,caller) + let result = httpResult; + if(!result) return false + + if(result.code == 200) { + if(result.data && Array.isArray(result.data)) { + for(let i=0; i 0 && vipLevel >= exchangeItem.vip_level) { + await $.wait(100) + await MallExchange(exchangeItem,exchangeItem.today_ex_num) + } + } + } + } else { + console.log(`\n获取积分红包兑换列表失败:${result.error}`) + } +} + +//积分红包兑换 +async function MallExchange(exchangeItem,num) { + let caller = PrintCaller() + let url = `https://v3.sdk.haowusong.com/api/box/mall/exchange` + let reqBody = `{"mall_id":${exchangeItem.id},"num":${num}}` + let urlObject = PopulatePostUrl(url,reqBody) + await HttpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 200) { + console.log(`兑换【${exchangeItem.title}】成功`) + } else { + console.log(`兑换【${exchangeItem.title}】失败:${result.error}`) + } +} + +//积分红包提现列表查询 +async function QueryWithdrawBox(page) { + let caller = PrintCaller() + let url = `https://v3.sdk.haowusong.com/api/box/withdraw/platform/config?channel=${channel[channelIdx]}&page=${page}&page_count=10` + let urlObject = PopulateGetUrl(url) + await HttpGet(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 200) { + let money = result.data.money ? result.data.money : 0 + let is_bind_alipay = result.data.is_bind_alipay ? result.data.is_bind_alipay : 0 + let is_bind_wechat = result.data.is_bind_wechat ? result.data.is_bind_wechat : 0 + let payType = '' + if(is_bind_alipay==1) payType += ' 支付宝' + if(is_bind_wechat==1) payType += ' 微信' + if(!payType) payType += '无' + console.log(`\n积分红包余额:${result.data.money},已绑定支付方式:${payType}`) + let withList = [] + if(result.data.withdraw_config && Array.isArray(result.data.withdraw_config)) { + for(let i=0; i= withItem.money) { + withList.push(withItem) + } + } + if(withList.length == 0) { + console.log(`积分红包余额不足,暂时无法提现`) + return + } + let sortList = withList.sort(function(a,b){return b["money"]-a["money"]}); + for(let i=0; i -1) { + return true + } + } + return false +} + +//分红提现列表查询 +async function QueryWithdrawIntegral(page) { + let caller = PrintCaller() + let url = `https://v3.sdk.haowusong.com/api/channel/integral/withdraw/config?channel=${channel[channelIdx]}&page=${page}&page_count=10` + let urlObject = PopulateGetUrl(url) + await HttpGet(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 200) { + let money = result.data.money ? result.data.money : 0 + let is_bind_alipay = result.data.is_bind_alipay ? result.data.is_bind_alipay : 0 + let is_bind_wechat = result.data.is_bind_wechat ? result.data.is_bind_wechat : 0 + let payType = '' + if(is_bind_alipay==1) payType += ' 支付宝' + if(is_bind_wechat==1) payType += ' 微信' + if(!payType) payType += '无' + console.log(`\n分红余额:${result.data.money},已绑定支付方式:${payType}`) + let withList = [] + if(result.data.withdraw_config && Array.isArray(result.data.withdraw_config)) { + for(let i=0; i= withItem.money) { + withList.push(withItem) + } + } + if(withList.length == 0) { + console.log(`分红余额不足,暂时无法提现`) + return + } + let sortList = withList.sort(function(a,b){return b["money"]-a["money"]}); + for(let i=0; i -1) { + return true + } + } + return false +} + +//////////////////////////////////////////////////////////////////// +function PopulatePostUrl(url,reqBody){ + let urlObject = { + url: url, + headers: { + 'Host' : 'v3.sdk.haowusong.com', + 'Origin' : 'https://v3.h5.haowusong.com', + 'Content-Type' : 'application/json', + 'Accept-Encoding' : 'gzip, deflate, br', + 'Connection' : 'keep-alive', + 'Accept' : 'application/json, text/plain, */*', + 'User-Agent' : 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148', + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Referer' : 'https://v3.h5.haowusong.com/', + 'token' : dawTokenArr[userIdx], + }, + body: reqBody, + } + return urlObject; +} + +function PopulateGetUrl(url){ + let urlObject = { + url: url, + headers: { + 'Host' : 'v3.sdk.haowusong.com', + 'Origin' : 'https://v3.h5.haowusong.com', + 'Content-Type' : 'application/json', + 'Accept-Encoding' : 'gzip, deflate, br', + 'Connection' : 'keep-alive', + 'Accept' : 'application/json, text/plain, */*', + 'User-Agent' : 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148', + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Referer' : 'https://v3.h5.haowusong.com/', + 'token' : dawTokenArr[userIdx], + } + } + return urlObject; +} + +async function HttpPost(url,caller) { + httpResult = null + return new Promise((resolve) => { + $.post(url, async (err, resp, data) => { + try { + if (SafeGet(data,caller)) { + httpResult = JSON.parse(data); + if(logDebug) console.log(httpResult); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +async function HttpGet(url,caller) { + httpResult = null + return new Promise((resolve) => { + $.get(url, async (err, resp, data) => { + try { + if (SafeGet(data,caller)) { + httpResult = JSON.parse(data); + if(logDebug) console.log(httpResult); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function SafeGet(data,caller) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } else { + console.log(`Function ${caller}: 未知错误`); + console.log(data) + } + } catch (e) { + console.log(e); + console.log(data) + console.log(`Function ${caller}: 服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function PrintCaller(){ + return (new Error()).stack.split("\n")[2].trim().split(" ")[1] +} + +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, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `\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 } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), a = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(a, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t) { let e = { "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 s in e) new RegExp("(" + s + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))); let h = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; h.push(e), s && h.push(s), i && h.push(i), console.log(h.join("\n")), this.logs = this.logs.concat(h) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } From 6f801acb9ea3c31151a0536e59c01b3fbf352bac Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Sun, 21 Nov 2021 09:28:05 +0800 Subject: [PATCH 27/75] =?UTF-8?q?=E4=BF=AE=E5=A4=8DIOS=E5=92=8C=E5=AE=89?= =?UTF-8?q?=E5=8D=93=E7=AB=AF=E7=9C=8B=E5=B9=BF=E5=91=8A=E5=86=B7=E5=8D=B4?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- daw.js | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/daw.js b/daw.js index 86a509b..4104757 100644 --- a/daw.js +++ b/daw.js @@ -81,27 +81,28 @@ let vipLevel = 0 } } - console.log(`\n先每个账号并发看广告和抽奖`) - for(let i=0; i 0) { - console.log(`等待${waitTime}ms 进行下一轮看视频抽奖\n`) - await $.wait(waitTime) + + if(allCompFlag) { + console.log(`所有账号已完成看广告和抽奖任务`) + break + } else if (i < maxTryNum-1){ + if(waitTime > 0) { + console.log(`等待${waitTime}ms 进行下一轮看视频抽奖\n`) + await $.wait(waitTime) + } } } } From 64b3b8f376f75ebf8cbd24072289fef846811713 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Mon, 22 Nov 2021 09:52:07 +0800 Subject: [PATCH 28/75] =?UTF-8?q?=E4=BB=93=E5=BA=93=E6=BB=A1=E6=97=B6?= =?UTF-8?q?=E5=B0=9D=E8=AF=95=E6=8A=95=E5=85=A5=E6=B1=A0=E5=AD=90=EF=BC=8C?= =?UTF-8?q?=E6=9A=82=E5=81=9C=E5=81=9A=E8=AF=A5=E8=B4=A6=E6=88=B7=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- daw.js | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/daw.js b/daw.js index 4104757..129892e 100644 --- a/daw.js +++ b/daw.js @@ -41,6 +41,7 @@ let httpResult //global buffer let userToken = '' let userIdx = 0 let numBoxbody = 0 +let coinStatus = [] let maxTryNum = 12 let waitTime = 0 @@ -75,6 +76,7 @@ let vipLevel = 0 for(channelIdx=0; channelIdx -1) { + let idx = channelIdx*numBoxbody+userIdx + if(coinStatus[idx] == 1) { + console.log(`仓库已存满,尝试先投入分红池`) + coinStatus[idx] = 2 + await $.wait(100) + await QueryCoinInfo(0) + } else if(coinStatus[idx] == 2) { + console.log(`仓库已存满,且无法投入分红池,此用户暂时不再做任务`) + } + } } } @@ -464,6 +481,17 @@ async function ReceiveTurntable(taskItem) { console.log(`看视频获得抽奖翻倍奖励成功`) } else { console.log(`看视频获得抽奖翻倍奖励失败:${result.error}`) + if(result.error.indexOf('当前仓库已存满') > -1) { + let idx = channelIdx*numBoxbody+userIdx + if(coinStatus[idx] == 1) { + console.log(`仓库已存满,尝试先投入分红池`) + coinStatus[idx] = 2 + await $.wait(100) + await QueryCoinInfo(0) + } else if(coinStatus[idx] == 2) { + console.log(`仓库已存满,且无法投入分红池,此用户暂时不再做任务`) + } + } } } @@ -479,6 +507,7 @@ async function PutInPool(num,pool_lv) { if(result.code == 200) { console.log(`投入瓜分池${num}币成功`) notifyStr += `投入瓜分池${num}币成功\n` + coinStatus[idx] = 1 } else { console.log(`投入瓜分池${num}币失败:${result.error}`) } @@ -641,10 +670,10 @@ async function QueryWithdrawBox(page) { let sortList = withList.sort(function(a,b){return b["money"]-a["money"]}); for(let i=0; i 0.5 && is_bind_wechat == 1 && withItem.is_wechat == 1) { await $.wait(100) if(await WithdrawBox(withItem,1)) break; - } else if(is_bind_alipay == 1 && withItem.is_alipay == 1) { + } else if(withItem.money > 0.5 && is_bind_alipay == 1 && withItem.is_alipay == 1) { await $.wait(100) if(await WithdrawBox(withItem,0)) break; } From e7a827b332eceef1a7ec61a9fb5007dd072fcc68 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Mon, 22 Nov 2021 12:18:48 +0800 Subject: [PATCH 29/75] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=8C=9C=E4=B8=AA?= =?UTF-8?q?=E8=82=A1=E6=B6=A8=E8=B7=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- txstock.js | 217 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 198 insertions(+), 19 deletions(-) diff --git a/txstock.js b/txstock.js index bb4da46..16c8591 100644 --- a/txstock.js +++ b/txstock.js @@ -4,7 +4,8 @@ 只适配了IOS,测试了青龙和V2P,其他平台请自行测试,安卓请自行测试 多用户用#隔开 -脚本只会在10点到13点之间进行猜涨跌,请务必在这段时间内跑一次脚本,猜涨跌开奖时间为15:15 +脚本只会在10点到13点之间进行猜涨跌,请务必在这段时间内跑一次脚本 +上证和个股猜涨跌开奖时间为15:15和16:30,建议16:30后再跑一次领奖 有些任务会提示任务完成发奖失败 -- 可以忽略 或者任务完成前置条件不符合 -- 一般为需要分享,会在完成日常任务后尝试做互助 @@ -37,7 +38,7 @@ MITM: wzq.tenpay.com 圈X: [task_local] #腾讯自选股 -16 12,15 * * * txstock.js, tag=腾讯自选股, enabled=true +35 11,16 * * * txstock.js, tag=腾讯自选股, enabled=true [rewrite_local] #获取APP和微信微证券的URL和header https://wzq.tenpay.com/cgi-bin/activity_task_daily.fcgi? url script-request-header https://raw.githubusercontent.com/leafxcy/JavaScript/main/txstock.js @@ -84,6 +85,12 @@ let scanList = [] let nickname = [] let bullStatusFlag = 0 +let guessOption = 0 +let guessStockFlag = 0 +let stockName = '' +let stockList = [] +let marketCode = {'sz':0, 'sh':1, 'hk':2, } + let appShareFlag = 1 let wxShareFlag = 1 let appTaskFlag = 1 @@ -374,13 +381,17 @@ async function getEnvParam(userNum) app_UA = "" Object.keys(appHeaderArrVal).forEach((item) => { if(item.toLowerCase() == "cookie") { - app_ck = appHeaderArrVal[item] + //app_ck = appHeaderArrVal[item] + cookie = appHeaderArrVal[item] + pgv_info_ssid = cookie.match(/pgv_info=ssid=([\w]+)/)[1] + pgv_pvid = cookie.match(/pgv_pvid=([\w]+)/)[1] + ts_sid = cookie.match(/ts_sid=([\w]+)/)[1] + ts_uid = cookie.match(/ts_uid=([\w]+)/)[1] } else if(item.toLowerCase() == "user-agent") { app_UA = appHeaderArrVal[item] } }) - app_ck = appHeaderArrVal["Cookie"] - app_UA = appHeaderArrVal["User-Agent"] + app_ck = `pgv_info=ssid=${pgv_info_ssid}; pgv_pvid=${pgv_pvid}; ts_sid=${ts_sid}; ts_uid=${ts_uid}` wx_ck_tmp = "" wx_UA = "" @@ -1977,10 +1988,11 @@ async function appGuessStatus() { curTime = new Date() rndtime = Math.round(curTime.getTime()) currentHour = curTime.getHours() - let isGuessTime = ((currentHour < 13) && (currentHour > 9)) ? 1 : 0 + currentDay = curTime.getDay() + let isGuessTime = ((currentHour < 13) && (currentHour > 9) && (currentDay < 6)) ? 1 : 0 return new Promise((resolve) => { let url = { - url: `https://zqact.tenpay.com/cgi-bin/guess_home.fcgi?channel=1&source=2&new_version=2&_=${rndtime}&openid=${app_openid}&fskey=${app_fskey}&access_token=${app_token}&_appName=${app_appName}&_appver=${app_appver}&_osVer=${app_osVer}&_devId=${app_devId}`, + url: `https://zqact.tenpay.com/cgi-bin/guess_home.fcgi?channel=1&source=2&new_version=3&_=${rndtime}&openid=${app_openid}&fskey=${app_fskey}&access_token=${app_token}&_appName=${app_appName}&_appver=${app_appver}&_osVer=${app_osVer}&_devId=${app_devId}`, headers: { 'Cookie': app_ck, 'Accept': `application/json, text/plain, */*`, @@ -2017,24 +2029,34 @@ async function appGuessStatus() { if(isGuessTime) { if((result.T_info && result.T_info[0] && result.T_info[0].user_answer == 0) || (result.T1_info && result.T1_info[0] && result.T1_info[0].user_answer == 0)) { - let guessOption = 1 - if(result.stockinfo && result.stockinfo[0]) { - guessOption = (result.stockinfo[0].zdf.indexOf('-') > -1) ? 2 : 1 - let guessStr = (guessOption == 2) ? "跌" : "涨" - $.log(`当前上证指数涨幅为${result.stockinfo[0].zdf}%,为你猜${guessStr}\n`); - } else { - $.log(`未获取到上证指数状态,默认为你猜涨\n`); - } if(result.date_list) { for(let i=0; i 0) { + await $.wait(100) + await appGuessRiseFall(guessOption,guessItem.date) + } else { + $.log(`获取猜涨跌错误:guessOption=${guessOption}\n`); + } } } } } else { - $.log(`已竞猜当期涨跌\n`); + $.log(`已竞猜当期上证指数涨跌\n`); + } + if(result.recommend && Array.isArray(result.recommend)) { + recList = result.recommend + stockList = recList.sort(function(a,b){return Math.abs(b["zdf"])-Math.abs(a["zdf"])}); + guessStockFlag = 1 + for(let k=0; k { + let url = { + url: `https://zqact.tenpay.com/cgi-bin/open_stockinfo.fcgi?scode=${scode}&markets=${markets}&needfive=0&needquote=1&needfollow=0&type=0&channel=1&_=${rndtime}&openid=${app_openid}&fskey=${app_fskey}&access_token=${app_token}&_appName=${app_appName}&_appver=${app_appver}&_osVer=${app_osVer}&_devId=${app_devId}`, + headers: { + 'Cookie': app_ck, + 'Accept': `*/*`, + 'Connection': `keep-alive`, + 'Referer': `https://zqact.tenpay.com/activity/page/guessRiseFall/`, + 'Accept-Encoding': `gzip, deflate, br`, + 'Host': `zqact.tenpay.com`, + 'User-Agent': app_UA, + 'Accept-Language': `zh-cn`, + }, + }; + + $.get(url, async (err, resp, data) => { + try { + data = data.replace(/\\x/g,'') + if (err) { + console.log("腾讯自选股: API查询请求失败 ‼️‼️"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result) + if(result.retcode == 0) { + stockName = result.secu_info.secu_name || '' + if(stockName) { + let dqj = result.secu_quote.dqj || 0 + let zsj = result.secu_quote.zsj || 0 + let raise = dqj - zsj + let ratio = raise/zsj*100 + let guessStr = (raise < 0) ? '跌' : '涨' + $.log(`${stockName}:当前价格${dqj},前天收市价${zsj},涨幅${Math.floor(ratio*100)/100}% (${Math.floor(raise*100)/100}),猜${guessStr}`); + } + } else { + $.log(`获取个股信息失败:${result.retmsg}`); + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + //猜涨跌奖励 async function appGuessAward(guessDate) { rndtime = Math.round(curTime.getTime()) @@ -2138,9 +2214,111 @@ async function appGuessRiseFall(answer,guessDate) { if(logDebug) console.log(result) guessStr = (answer==1) ? "猜涨" : "猜跌" if(result.retcode == 0) { - $.log(`用户 ${nickname[numUser]} 猜涨跌成功:${guessStr}\n`); + $.log(`上证指数 猜涨跌成功:${guessStr}\n`); + } else { + $.log(`上证指数 ${guessStr}失败:${result.retmsg}\n`); + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//猜个股涨跌次数 +async function appGuessStockStatus(stockItem) { + rndtime = Math.round(new Date().getTime()) + return new Promise((resolve) => { + let url = { + url: `https://wzq.tenpay.com/cgi-bin/guess_home.fcgi?access_token=${app_token}&openid=${app_openid}&fskey=${app_fskey}&check=11&_dev=iPhone13,2&_devId=${app_devId}&_appver=${app_appver}&_osVer=${app_osVer}&_appName=${app_appName}&source=3&channel=1&symbol=${stockItem.symbol}&new_version=3`, + headers: { + 'Cookie': app_ck, + 'Accept': `application/json, text/plain, */*`, + 'Connection': `keep-alive`, + 'Referer': `https://zqact.tenpay.com/activity/page/guessRiseFall/`, + 'Accept-Encoding': `gzip, deflate, br`, + 'Host': `zqact.tenpay.com`, + 'User-Agent': app_UA, + 'Accept-Language': `zh-cn` + }, + }; + $.get(url, async (err, resp, data) => { + try { + if (err) { + console.log("腾讯自选股: API查询请求失败 ‼️‼️"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result) + if(result.retcode == 0) { + $.log(`剩余猜个股涨跌次数:${result.guess_times_left}`); + if(result.guess_times_left > 0) { + if(result.T_info.user_answer > 0) { + $.log(`已竞猜:${stockItem.stockname}\n`); + } else { + let guessStr = (stockItem.zdf < 0) ? '跌' : '涨' + let answer = (stockItem.zdf < 0) ? 2 : 1 + console.log(`${stockItem.stockname}今天涨幅为${stockItem.zdf}%,猜${guessStr}`) + await $.wait(1000) + await appGuessStock(stockItem,answer) + } + } else { + $.log(`竞猜个股次数已用完\n`); + guessStockFlag = 0 + } + } else { + $.log(`获取猜个股涨跌次数失败:${result.retmsg}\n`); + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//猜个股涨跌 +async function appGuessStock(stockItem,answer) { + rndtime = Math.round(curTime.getTime()) + return new Promise((resolve) => { + let url = { + url: `https://wzq.tenpay.com/cgi-bin/guess_op.fcgi?access_token=${app_token}&openid=${app_openid}&fskey=${app_fskey}&check=11&_dev=iPhone13,2&_devId=${app_devId}&_appver=${app_appver}&_osVer=${app_osVer}&_appName=${app_appName}&`, + headers: { + 'Cookie': app_ck, + 'Accept': `application/json, text/plain, */*`, + 'Connection': `keep-alive`, + 'Referer': `https://zqact.tenpay.com/activity/page/guessRiseFall/`, + 'Accept-Encoding': `gzip, deflate, br`, + 'Host': `zqact.tenpay.com`, + 'User-Agent': app_UA, + 'Accept-Language': `zh-cn` + }, + body: `source=3&channel=1&outer_src=0&new_version=3&symbol=${stockItem.symbol}&date=${todayDate}&action=2&user_answer=${answer}&access_token=${app_token}&openid=${app_openid}&fskey=${app_fskey}&check=11&`, + }; + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log("腾讯自选股: API查询请求失败 ‼️‼️"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result) + let guessStr = (answer==1) ? "猜涨" : "猜跌" + if(result.retcode == 0) { + $.log(`${stockItem.stockname} 猜涨跌成功:${guessStr}\n`); } else { - $.log(`用户 ${nickname[numUser]} ${guessStr}失败:${result.retmsg}\n`); + $.log(`${stockItem.stockname} ${guessStr}失败:${result.retmsg}\n`); } } } @@ -2152,6 +2330,7 @@ async function appGuessRiseFall(answer,guessDate) { }); }); } + //////////////////////////////////////////////////////////////////// function time(time) { From 151eb8f0dff14549617de7c7ad0dfeb7b40b229a Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Mon, 22 Nov 2021 18:01:27 +0800 Subject: [PATCH 30/75] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=A2=86=E4=B8=AA?= =?UTF-8?q?=E8=82=A1=E7=AB=9E=E7=8C=9C=E5=A5=96=E5=8A=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- txstock.js | 81 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 72 insertions(+), 9 deletions(-) diff --git a/txstock.js b/txstock.js index 16c8591..36d5a21 100644 --- a/txstock.js +++ b/txstock.js @@ -1,6 +1,6 @@ /* 腾讯自选股APP & 微信微证券公众号 -改自@CenBoMin大佬的脚本 + 只适配了IOS,测试了青龙和V2P,其他平台请自行测试,安卓请自行测试 多用户用#隔开 @@ -253,12 +253,15 @@ async function getRewrite() if($request.url.indexOf("openid=") > -1) { //APP包 + let msgStr = '' $.setdata($request.url,'TxStockAppUrl') $.log(`获取TxStockAppUrl成功: ${$request.url}\n`) - $.msg(`获取TxStockAppUrl成功: ${$request.url}\n`) + msgStr += `获取TxStockAppUrl成功: ${$request.url}\n` $.setdata(JSON.stringify($request.headers),'TxStockAppHeader') $.log(`获取TxStockAppHeader成功: ${JSON.stringify($request.headers)}\n`) - $.msg(`获取TxStockAppHeader成功: ${JSON.stringify($request.headers)}\n`) + msgStr += `获取TxStockAppHeader成功: ${JSON.stringify($request.headers)}\n` + + $.msg(msgStr) } else { @@ -1989,7 +1992,7 @@ async function appGuessStatus() { rndtime = Math.round(curTime.getTime()) currentHour = curTime.getHours() currentDay = curTime.getDay() - let isGuessTime = ((currentHour < 13) && (currentHour > 9) && (currentDay < 6)) ? 1 : 0 + let isGuessTime = ((currentHour < 13) && (currentHour > 9) && (currentDay < 6) && (currentDay > 0)) ? 1 : 0 return new Promise((resolve) => { let url = { url: `https://zqact.tenpay.com/cgi-bin/guess_home.fcgi?channel=1&source=2&new_version=3&_=${rndtime}&openid=${app_openid}&fskey=${app_fskey}&access_token=${app_token}&_appName=${app_appName}&_appver=${app_appver}&_osVer=${app_osVer}&_devId=${app_devId}`, @@ -2019,10 +2022,20 @@ async function appGuessStatus() { if(result.notice_info && result.notice_info[0]) { if(logDebug) console.log(result) if(result.notice_info[0].answer_status == 1) { - $.log(`上期猜涨跌回答正确,正在取得奖励\n`); + $.log(`上期猜上证指数涨跌回答正确,正在取得奖励\n`); await appGuessAward(result.notice_info[0].date) } else { - $.log(`上期猜涨跌回答错误\n`); + $.log(`上期猜上证指数涨跌回答错误\n`); + } + await $.wait(1000) + } + if(result.stock_notice_info && result.stock_notice_info[0]) { + if(logDebug) console.log(result) + if(result.stock_notice_info[0].guess_correct == 1) { + $.log(`上期猜个股涨跌回答正确,正在取得奖励\n`); + await appGuessStockAward(result.stock_notice_info[0].date) + } else { + $.log(`上期猜个股涨跌回答错误\n`); } await $.wait(1000) } @@ -2142,7 +2155,7 @@ async function appGetStockInfo(scode,markets) { }); } -//猜涨跌奖励 +//猜上证指数涨跌奖励 async function appGuessAward(guessDate) { rndtime = Math.round(curTime.getTime()) return new Promise((resolve) => { @@ -2170,9 +2183,59 @@ async function appGuessAward(guessDate) { let result = JSON.parse(data); if(logDebug) console.log(result) if(result.retcode == 0) { - $.log(`获得猜涨跌奖励:${result.reward_memo} ${result.reward_value}金币\n`); + $.log(`获得上证指数猜涨跌奖励:${result.reward_memo} ${result.reward_value}金币\n`); + } else { + $.log(`获得上证指数猜涨跌奖励失败:${result.retmsg}\n`); + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//猜个股涨跌奖励 +async function appGuessStockAward(guessDate) { + rndtime = Math.round(curTime.getTime()) + return new Promise((resolve) => { + let url = { + url: `https://zqact.tenpay.com/cgi-bin/activity/activity.fcgi?activity=guess_new&action=guess_stock_reward&guess_date=${guessDate}&channel=1&_=${rndtime}&openid=${app_openid}&fskey=${app_fskey}&access_token=${app_token}&_appName=${app_appName}&_appver=${app_appver}&_osVer=${app_osVer}&_devId=${app_devId}`, + headers: { + 'Cookie': app_ck, + 'Accept': `application/json, text/plain, */*`, + 'Connection': `keep-alive`, + 'Referer': `https://zqact.tenpay.com/activity/page/guessRiseFall/`, + 'Accept-Encoding': `gzip, deflate, br`, + 'Host': `zqact.tenpay.com`, + 'User-Agent': app_UA, + 'Accept-Language': `zh-cn` + }, + }; + $.get(url, async (err, resp, data) => { + try { + if (err) { + console.log("腾讯自选股: API查询请求失败 ‼️‼️"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + let result = JSON.parse(data); + if(logDebug) console.log(result) + if(result.retcode == 0) { + if(result.stock_rewards && Array.isArray(result.stock_rewards)) { + for(let i=0; i Date: Mon, 22 Nov 2021 18:11:26 +0800 Subject: [PATCH 31/75] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=A2=86=E7=AB=9E?= =?UTF-8?q?=E7=8C=9C=E4=B8=AA=E8=82=A1=E5=A5=96=E5=8A=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- txstock.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/txstock.js b/txstock.js index 36d5a21..96bb6db 100644 --- a/txstock.js +++ b/txstock.js @@ -2229,11 +2229,13 @@ async function appGuessStockAward(guessDate) { if(result.stock_rewards && Array.isArray(result.stock_rewards)) { for(let i=0; i Date: Mon, 22 Nov 2021 18:42:50 +0800 Subject: [PATCH 32/75] =?UTF-8?q?=E5=87=8F=E5=B0=91ck=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- txstock.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/txstock.js b/txstock.js index 96bb6db..fb2f617 100644 --- a/txstock.js +++ b/txstock.js @@ -408,14 +408,14 @@ async function getEnvParam(userNum) pgv_info = wx_ck_tmp.match(/pgv_info=([\w=]+)/)[1] pgv_pvid = wx_ck_tmp.match(/pgv_pvid=([\w]+)/)[1] - ts_last = wx_ck_tmp.match(/ts_last=([\w\/]+)/)[1] - ts_refer = wx_ck_tmp.match(/ts_refer=([\w\/\.]+)/)[1] + //ts_last = wx_ck_tmp.match(/ts_last=([\w\/]+)/)[1] + //ts_refer = wx_ck_tmp.match(/ts_refer=([\w\/\.]+)/)[1] ts_sid = wx_ck_tmp.match(/ts_sid=([\w]+)/)[1] ts_uid = wx_ck_tmp.match(/ts_uid=([\w]+)/)[1] qlappid = wx_ck_tmp.match(/qlappid=([\w]+)/)[1] qlskey = wx_ck_tmp.match(/qlskey=([\w]+)/)[1] qluin = wx_ck_tmp.match(/qluin=([\w@\.]+)/)[1] - qq_logtype = wx_ck_tmp.match(/qq_logtype=([\w]+)/)[1] + //qq_logtype = wx_ck_tmp.match(/qq_logtype=([\w]+)/)[1] wzq_qlappid = wx_ck_tmp.match(/wzq_qlappid=([\w]+)/)[1] wzq_qlskey = wx_ck_tmp.match(/wzq_qlskey=([\w]+)/)[1] wzq_qluin = wx_ck_tmp.match(/wzq_qluin=([\w-]+)/)[1] @@ -423,7 +423,7 @@ async function getEnvParam(userNum) //wx_ck = `pgv_info=${pgv_info}; pgv_pvid=${pgv_pvid}; ts_last=${ts_last}; ts_refer=${ts_refer}; ts_sid=${ts_sid}; ts_uid=${ts_uid}; qlappid=${qlappid}; qlskey=${qlskey}; qluin=${qluin}; qq_logtype=${qq_logtype}; wx_session_time=${sessionTime}; wzq_qlappid=${wzq_qlappid}; wzq_qlskey=${wzq_qlskey}; wzq_qluin=${wzq_qluin}; zxg_openid=${zxg_openid}` - wx_ck = `pgv_info=${pgv_info}; pgv_pvid=${pgv_pvid}; ts_last=${ts_last}; ts_refer=${ts_refer}; ts_sid=${ts_sid}; ts_uid=${ts_uid}; qlappid=${qlappid}; qlskey=${qlskey}; qluin=${qluin}; qq_logtype=${qq_logtype}; wzq_qlappid=${wzq_qlappid}; wzq_qlskey=${wzq_qlskey}; wzq_qluin=${wzq_qluin}; zxg_openid=${zxg_openid}` + wx_ck = `pgv_info=${pgv_info}; pgv_pvid=${pgv_pvid}; ts_sid=${ts_sid}; ts_uid=${ts_uid}; qlappid=${qlappid}; qlskey=${qlskey}; qluin=${qluin}; wzq_qlappid=${wzq_qlappid}; wzq_qlskey=${wzq_qlskey}; wzq_qluin=${wzq_qluin}; zxg_openid=${zxg_openid}` } async function initAccountInfo() From 94bbb2b0148f55bd2d9c09dada9e7c4b40e9dca1 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Mon, 22 Nov 2021 23:42:22 +0800 Subject: [PATCH 33/75] =?UTF-8?q?=E6=9B=B4=E6=AD=A3=E5=9C=88X=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- txstock.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/txstock.js b/txstock.js index fb2f617..04258cc 100644 --- a/txstock.js +++ b/txstock.js @@ -38,7 +38,7 @@ MITM: wzq.tenpay.com 圈X: [task_local] #腾讯自选股 -35 11,16 * * * txstock.js, tag=腾讯自选股, enabled=true +35 11,16 * * * https://raw.githubusercontent.com/leafxcy/JavaScript/main/txstock.js, tag=腾讯自选股, enabled=true [rewrite_local] #获取APP和微信微证券的URL和header https://wzq.tenpay.com/cgi-bin/activity_task_daily.fcgi? url script-request-header https://raw.githubusercontent.com/leafxcy/JavaScript/main/txstock.js From 84c32679fd4f041dac5e254ad83a5d9a798effda Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Tue, 23 Nov 2021 09:25:16 +0800 Subject: [PATCH 34/75] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8A=95=E6=B1=A0?= =?UTF-8?q?=E5=AD=90bug=EF=BC=8C=E7=BC=A9=E7=9F=AD=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E5=8D=95=E8=A1=8C=E9=95=BF=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- daw.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/daw.js b/daw.js index 129892e..1647ce7 100644 --- a/daw.js +++ b/daw.js @@ -118,7 +118,7 @@ let vipLevel = 0 for(userIdx=0; userIdx Date: Wed, 24 Nov 2021 23:49:56 +0800 Subject: [PATCH 35/75] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8F=90=E7=8E=B0?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=8C=E4=BC=98=E5=85=88=E6=8F=90=E7=8E=B0?= =?UTF-8?q?=E5=8F=8C=E7=AB=AF=E9=87=8C=E6=9C=80=E5=A4=A7=E9=87=91=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- daw.js | 236 +++++++++++++++++++++++++++++++-------------------------- 1 file changed, 127 insertions(+), 109 deletions(-) diff --git a/daw.js b/daw.js index 1647ce7..c2160ff 100644 --- a/daw.js +++ b/daw.js @@ -50,6 +50,8 @@ let allCompFlag = 0 let channelIdx = 0 let channel = ['dawbox','dawbox-android'] let channelStr = ['苹果端','安卓端'] +let withdrawList = [] +let withdrawMethod = [] let dawToken = ($.isNode() ? process.env.dawToken : $.getdata('dawToken')) || ''; let dawTokenArr = [] @@ -78,7 +80,7 @@ let vipLevel = 0 if(await QueryVipInfo()) { if(!coinStatus[channelIdx*numBoxbody+userIdx]) coinStatus.push(1) await $.wait(100) - await QueryWarehouse() + await QueryWarehouse() //查询现有币和仓库容量 } } } @@ -86,7 +88,7 @@ let vipLevel = 0 for(channelIdx=0; channelIdx 0) { if(integral_num >= integral_min_put_num && can_put_num >= integral_min_put_num) { let putNum = (integral_num>can_put_num) ? can_put_num : integral_num @@ -419,7 +440,7 @@ async function QueryTurntable(taskItem) { await Turntable(taskItem) } } else { - console.log(`\n获取转盘次数失败:${result.error}`) + console.log(`获取转盘次数失败:${result.error}`) return false } @@ -527,10 +548,10 @@ async function QuerySignList() { await $.wait(100) await SignToday() } else { - console.log(`\n今日已签到`) + console.log(`今日已签到`) } } else { - console.log(`\n获取签到信息失败:${result.error}`) + console.log(`获取签到信息失败:${result.error}`) } } @@ -544,9 +565,9 @@ async function SignToday() { if(!result) return if(result.code == 200) { - console.log(`\n签到成功,获得${result.data.total_credit_num}积分`) + console.log(`签到成功,获得${result.data.total_credit_num}积分`) } else { - console.log(`\n签到失败:${result.error}`) + console.log(`签到失败:${result.error}`) } } @@ -570,7 +591,7 @@ async function QueryTaskList() { } } } else { - console.log(`\n获取积分任务列表失败:${result.error}`) + console.log(`获取积分任务列表失败:${result.error}`) return false } @@ -616,7 +637,7 @@ async function QueryMallExchange(page) { } } } else { - console.log(`\n获取积分红包兑换列表失败:${result.error}`) + console.log(`获取积分红包兑换列表失败:${result.error}`) } } @@ -648,67 +669,27 @@ async function QueryWithdrawBox(page) { if(result.code == 200) { let money = result.data.money ? result.data.money : 0 - let is_bind_alipay = result.data.is_bind_alipay ? result.data.is_bind_alipay : 0 - let is_bind_wechat = result.data.is_bind_wechat ? result.data.is_bind_wechat : 0 + withdrawMethod[userIdx].alipay = result.data.is_bind_alipay ? result.data.is_bind_alipay : 0 + withdrawMethod[userIdx].wechat = result.data.is_bind_wechat ? result.data.is_bind_wechat : 0 let payType = '' - if(is_bind_alipay==1) payType += ' 支付宝' - if(is_bind_wechat==1) payType += ' 微信' + if(result.data.is_bind_wechat==1) payType += ' 微信' + if(result.data.is_bind_alipay==1) payType += ' 支付宝' if(!payType) payType += '无' - console.log(`\n积分红包余额:${result.data.money},已绑定支付方式:${payType}`) - let withList = [] + console.log(`积分红包余额:${result.data.money}`) + console.log(`已绑定支付方式:${payType}`) if(result.data.withdraw_config && Array.isArray(result.data.withdraw_config)) { for(let i=0; i= withItem.money) { - withList.push(withItem) - } - } - if(withList.length == 0) { - console.log(`积分红包余额不足,暂时无法提现`) - return - } - let sortList = withList.sort(function(a,b){return b["money"]-a["money"]}); - for(let i=0; i 0.5 && is_bind_wechat == 1 && withItem.is_wechat == 1) { - await $.wait(100) - if(await WithdrawBox(withItem,1)) break; - } else if(withItem.money > 0.5 && is_bind_alipay == 1 && withItem.is_alipay == 1) { - await $.wait(100) - if(await WithdrawBox(withItem,0)) break; + withdrawList[userIdx].push({type:'box',channel:channelIdx,item:withItem}) } } } else { - console.log(`获取积分红包提现列表失败`) + console.log(`账号${userIdx+1}${channelStr[channelIdx]}获取积分红包提现列表失败`) } } else { - console.log(`\n获取积分红包提现列表失败:${result.error}`) - } -} - -//积分红包提现 -async function WithdrawBox(withItem,pay_type) { - let caller = PrintCaller() - let url = `https://v3.sdk.haowusong.com/api/box/withdraw/platform/apply?config_id=${withItem.id}&channel=${channel[channelIdx]}&pay_type=${pay_type}` - let urlObject = PopulateGetUrl(url) - await HttpPost(urlObject,caller) - let result = httpResult; - if(!result) { - console.log(`提现积分红包${withItem.money}元失败:服务器无响应`) - return false - } - - if(result.code == 200) { - console.log(`提现积分红包${withItem.money}元成功`) - notifyStr += `提现积分红包${withItem.money}元成功\n` - return true - } else { - console.log(`提现积分红包${withItem.money}元失败:${result.error}`) - if(result.error.indexOf('今日提现次数超出限制') > -1) { - return true - } + console.log(`账号${userIdx+1}${channelStr[channelIdx]}获取积分红包提现列表失败:${result.error}`) } - return false } //分红提现列表查询 @@ -722,62 +703,99 @@ async function QueryWithdrawIntegral(page) { if(result.code == 200) { let money = result.data.money ? result.data.money : 0 - let is_bind_alipay = result.data.is_bind_alipay ? result.data.is_bind_alipay : 0 - let is_bind_wechat = result.data.is_bind_wechat ? result.data.is_bind_wechat : 0 - let payType = '' - if(is_bind_alipay==1) payType += ' 支付宝' - if(is_bind_wechat==1) payType += ' 微信' - if(!payType) payType += '无' - console.log(`\n分红余额:${result.data.money},已绑定支付方式:${payType}`) - let withList = [] + console.log(`\n账号${userIdx+1}${channelStr[channelIdx]}:`) + console.log(`分红余额:${result.data.money}`) if(result.data.withdraw_config && Array.isArray(result.data.withdraw_config)) { for(let i=0; i= withItem.money) { - withList.push(withItem) - } - } - if(withList.length == 0) { - console.log(`分红余额不足,暂时无法提现`) - return - } - let sortList = withList.sort(function(a,b){return b["money"]-a["money"]}); - for(let i=0; i 0) { + console.log(`\n账号${userIdx+1}开始尝试提现:`) + let sortList = withdrawList[userIdx].sort(function(a,b){return b['item']['money']-a['item']['money']}); + for(let i=0; i -1) { + return true + } + } + return false } //分红提现 -async function WithdrawIntegral(withItem,pay_type) { +async function WithdrawIntegral(withItem,withMethod) { let caller = PrintCaller() - let url = `https://v3.sdk.haowusong.com/api/channel/integral/withdraw/apply?config_id=${withItem.id}&channel=${channel[channelIdx]}&pay_type=${pay_type}` + let pay_type = 0 + if(withMethod.wechat == 1 && withItem.item.is_wechat == 1) { + pay_type = 1 + } else if(withMethod.alipay == 1 && withItem.item.is_alipay == 1) { + pay_type = 2 + } else { + return false + } + let url = `https://v3.sdk.haowusong.com/api/channel/integral/withdraw/apply?config_id=${withItem.item.id}&channel=${channel[withItem.channel]}&pay_type=${pay_type}` let urlObject = PopulateGetUrl(url) await HttpPost(urlObject,caller) let result = httpResult; if(!result) { - console.log(`提现分红${withItem.money}元失败:服务器无响应`) + console.log(`--账号${userIdx+1}${channelStr[withItem.channel]}提现分红${withItem.item.money}元失败:服务器无响应`) return false } if(result.code == 200) { - console.log(`提现分红${withItem.money}元成功`) - notifyStr += `提现分红${withItem.money}元成功\n` + console.log(`--账号${userIdx+1}${channelStr[withItem.channel]}提现分红${withItem.item.money}元成功`) + notifyStr += `--账号${userIdx+1}${channelStr[withItem.channel]}提现分红${withItem.item.money}元成功\n` return true } else { - console.log(`提现分红${withItem.money}元失败:${result.error}`) + console.log(`--账号${userIdx+1}${channelStr[withItem.channel]}提现分红${withItem.item.money}元失败:${result.error}`) if(result.error.indexOf('今日提现次数超出限制') > -1) { return true } @@ -881,4 +899,4 @@ function PrintCaller(){ return (new Error()).stack.split("\n")[2].trim().split(" ")[1] } -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, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `\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 } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), a = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(a, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t) { let e = { "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 s in e) new RegExp("(" + s + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))); let h = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; h.push(e), s && h.push(s), i && h.push(i), console.log(h.join("\n")), this.logs = this.logs.concat(h) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } +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, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `\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 } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), a = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(a, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t) { let e = { "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 s in e) new RegExp("(" + s + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))); let h = ["", "=========\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3========="]; h.push(e), s && h.push(s), i && h.push(i), console.log(h.join("\n")), this.logs = this.logs.concat(h) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } From 48279d1504b763cb86ba035b6b09575549508132 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Thu, 25 Nov 2021 15:30:45 +0800 Subject: [PATCH 36/75] =?UTF-8?q?=E5=87=8F=E5=B0=91=E5=BF=85=E9=A1=BB?= =?UTF-8?q?=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- txstock.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/txstock.js b/txstock.js index 04258cc..0636fd5 100644 --- a/txstock.js +++ b/txstock.js @@ -386,7 +386,7 @@ async function getEnvParam(userNum) if(item.toLowerCase() == "cookie") { //app_ck = appHeaderArrVal[item] cookie = appHeaderArrVal[item] - pgv_info_ssid = cookie.match(/pgv_info=ssid=([\w]+)/)[1] + //pgv_info_ssid = cookie.match(/pgv_info=ssid=([\w]+)/)[1] pgv_pvid = cookie.match(/pgv_pvid=([\w]+)/)[1] ts_sid = cookie.match(/ts_sid=([\w]+)/)[1] ts_uid = cookie.match(/ts_uid=([\w]+)/)[1] @@ -394,7 +394,7 @@ async function getEnvParam(userNum) app_UA = appHeaderArrVal[item] } }) - app_ck = `pgv_info=ssid=${pgv_info_ssid}; pgv_pvid=${pgv_pvid}; ts_sid=${ts_sid}; ts_uid=${ts_uid}` + app_ck = `pgv_pvid=${pgv_pvid}; ts_sid=${ts_sid}; ts_uid=${ts_uid}` wx_ck_tmp = "" wx_UA = "" @@ -410,8 +410,8 @@ async function getEnvParam(userNum) pgv_pvid = wx_ck_tmp.match(/pgv_pvid=([\w]+)/)[1] //ts_last = wx_ck_tmp.match(/ts_last=([\w\/]+)/)[1] //ts_refer = wx_ck_tmp.match(/ts_refer=([\w\/\.]+)/)[1] - ts_sid = wx_ck_tmp.match(/ts_sid=([\w]+)/)[1] - ts_uid = wx_ck_tmp.match(/ts_uid=([\w]+)/)[1] + //ts_sid = wx_ck_tmp.match(/ts_sid=([\w]+)/)[1] + //ts_uid = wx_ck_tmp.match(/ts_uid=([\w]+)/)[1] qlappid = wx_ck_tmp.match(/qlappid=([\w]+)/)[1] qlskey = wx_ck_tmp.match(/qlskey=([\w]+)/)[1] qluin = wx_ck_tmp.match(/qluin=([\w@\.]+)/)[1] @@ -423,7 +423,7 @@ async function getEnvParam(userNum) //wx_ck = `pgv_info=${pgv_info}; pgv_pvid=${pgv_pvid}; ts_last=${ts_last}; ts_refer=${ts_refer}; ts_sid=${ts_sid}; ts_uid=${ts_uid}; qlappid=${qlappid}; qlskey=${qlskey}; qluin=${qluin}; qq_logtype=${qq_logtype}; wx_session_time=${sessionTime}; wzq_qlappid=${wzq_qlappid}; wzq_qlskey=${wzq_qlskey}; wzq_qluin=${wzq_qluin}; zxg_openid=${zxg_openid}` - wx_ck = `pgv_info=${pgv_info}; pgv_pvid=${pgv_pvid}; ts_sid=${ts_sid}; ts_uid=${ts_uid}; qlappid=${qlappid}; qlskey=${qlskey}; qluin=${qluin}; wzq_qlappid=${wzq_qlappid}; wzq_qlskey=${wzq_qlskey}; wzq_qluin=${wzq_qluin}; zxg_openid=${zxg_openid}` + wx_ck = `pgv_info=${pgv_info}; pgv_pvid=${pgv_pvid}; qlappid=${qlappid}; qlskey=${qlskey}; qluin=${qluin}; wzq_qlappid=${wzq_qlappid}; wzq_qlskey=${wzq_qlskey}; wzq_qluin=${wzq_qluin}; zxg_openid=${zxg_openid}` } async function initAccountInfo() From ba1b53598d18454870f5398db2815177905da413 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Thu, 25 Nov 2021 16:48:40 +0800 Subject: [PATCH 37/75] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=8C=9C=E6=B6=A8?= =?UTF-8?q?=E8=B7=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- txstock.js | 1 + 1 file changed, 1 insertion(+) diff --git a/txstock.js b/txstock.js index 0636fd5..dfc362f 100644 --- a/txstock.js +++ b/txstock.js @@ -2139,6 +2139,7 @@ async function appGetStockInfo(scode,markets) { let raise = dqj - zsj let ratio = raise/zsj*100 let guessStr = (raise < 0) ? '跌' : '涨' + guessOption = (raise < 0) ? 2 : 1 $.log(`${stockName}:当前价格${dqj},前天收市价${zsj},涨幅${Math.floor(ratio*100)/100}% (${Math.floor(raise*100)/100}),猜${guessStr}`); } } else { From 1580e3b931f81bf4f69c3b5d3984c57efd3748bb Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Fri, 26 Nov 2021 12:36:07 +0800 Subject: [PATCH 38/75] =?UTF-8?q?=E5=9B=9E=E6=BB=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- txstock.js | 1 + 1 file changed, 1 insertion(+) diff --git a/txstock.js b/txstock.js index dfc362f..01da36a 100644 --- a/txstock.js +++ b/txstock.js @@ -2279,6 +2279,7 @@ async function appGuessRiseFall(answer,guessDate) { let result = JSON.parse(data); if(logDebug) console.log(result) guessStr = (answer==1) ? "猜涨" : "猜跌" + guessOption = (raise < 0) ? 2 : 1 if(result.retcode == 0) { $.log(`上证指数 猜涨跌成功:${guessStr}\n`); } else { From 9ebf2fb4dba7be47dd54f4863c5d5450b88fb5fd Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Sat, 27 Nov 2021 20:23:02 +0800 Subject: [PATCH 39/75] Update daw.js --- daw.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daw.js b/daw.js index c2160ff..ad64838 100644 --- a/daw.js +++ b/daw.js @@ -1,7 +1,7 @@ /* IOS/安卓:都爱玩 下载注册地址,微信打开: -https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx592b7bf2a9f7f003&redirect_uri=https://v3.sdk.haowusong.com/api/auth/wechat/sharelogin&response_type=code&scope=snsapi_userinfo&state=AAABQKAW,dawbox-android#wechat_redirect +https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx592b7bf2a9f7f003&redirect_uri=https://v3.sdk.haowusong.com/api/auth/wechat/sharelogin&response_type=code&scope=snsapi_userinfo&state=AAABRKAD,dawbox-android#wechat_redirect 炒个冷饭,之前有几位大佬已经写过了 现在支持了苹果和安卓双端的任务,两边账户分红币独立,理论上收益可以翻倍,每天2块多到3块的样子,不过提现次数似乎两边共用 From 7bdae02880705d762f0cc57b20b29719686c3c37 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Mon, 29 Nov 2021 11:18:32 +0800 Subject: [PATCH 40/75] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=8C=9C=E6=B6=A8?= =?UTF-8?q?=E8=B7=8C=E6=89=93=E5=8D=B0=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- txstock.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/txstock.js b/txstock.js index 01da36a..07125a7 100644 --- a/txstock.js +++ b/txstock.js @@ -2279,7 +2279,7 @@ async function appGuessRiseFall(answer,guessDate) { let result = JSON.parse(data); if(logDebug) console.log(result) guessStr = (answer==1) ? "猜涨" : "猜跌" - guessOption = (raise < 0) ? 2 : 1 + //guessOption = (raise < 0) ? 2 : 1 if(result.retcode == 0) { $.log(`上证指数 猜涨跌成功:${guessStr}\n`); } else { From 6079fba74e6bf742d53573708f761b460cae9b60 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Wed, 1 Dec 2021 13:34:49 +0800 Subject: [PATCH 41/75] Create zqkd_risk.js --- zqkd/zqkd_risk.js | 303 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 303 insertions(+) create mode 100644 zqkd/zqkd_risk.js diff --git a/zqkd/zqkd_risk.js b/zqkd/zqkd_risk.js new file mode 100644 index 0000000..e35229f --- /dev/null +++ b/zqkd/zqkd_risk.js @@ -0,0 +1,303 @@ +/* +安卓:中青看点 风险查询+今日收益详情 + +需要用到zqkdCookie,只测试了青龙,理论上V2P也能用 +本脚本没有设置重写,请自己复制zq_cookie到青龙环境下使用,多账号用@隔开 +例子: export zqkdCookie='uid=xxx&zqkey=yyy&zqkey_id=zzz@uid=aaa&zqkey=bbb&zqkey_id=ccc@uid=qqq&zqkey=sss&zqkey_id=ttt' +*/ + +const jsname = '中青看点风险查询' +const $ = Env(jsname) +const notifyFlag = 1; //0为关闭通知,1为打开通知,默认为1 +const logDebug = 0 + +//const notify = $.isNode() ? require('./sendNotify') : ''; +let notifyStr = '' + +let rndtime = "" //毫秒 +let httpResult //global buffer + +let userCookie = ($.isNode() ? process.env.zqkdCookie : $.getdata('zqkdCookie')) || ''; +let userCookieArr = [] + +let nickname = [] +/////////////////////////////////////////////////////////////////// + +!(async () => { + + if(typeof $request !== "undefined") + { + $.msg(jsname+': 此脚本不做重写,请检查重写设置') + } + else + { + if(!(await checkEnv())) { + return + } + + await initAccountInfo() + await RunRiskInfo() + await RunUserBalance() + + await showmsg() + } + + +})() +.catch((e) => $.logErr(e)) +.finally(() => $.done()) + +//通知 +async function showmsg() { + + notifyBody = jsname + "运行通知\n\n" + notifyStr + + if (notifyFlag != 1) { + console.log(notifyBody); + } + + if (notifyFlag == 1) { + $.msg(notifyBody); + //if($.isNode()){await notify.sendNotify($.name, notifyBody );} + } +} + +async function checkEnv() { + if(userCookie) { + if(userCookie.indexOf('@') > -1) { + let userCookies = userCookie.split('@') + for(let i=0; i -1) { + for(let j=0; j { + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": post请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + httpResult = JSON.parse(data); + if(logDebug) console.log(httpResult); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +async function httpGet(url,caller) { + httpResult = null + return new Promise((resolve) => { + $.get(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": get请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data,caller)) { + httpResult = JSON.parse(data); + if(logDebug) console.log(httpResult); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function safeGet(data,caller) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } else { + console.log(`Function ${caller}: 未知错误`); + console.log(data) + } + } catch (e) { + console.log(e); + console.log(`Function ${caller}: 服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function printCaller(){ + return (new Error()).stack.split("\n")[2].trim().split(" ")[1] +} + +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, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `\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 } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), a = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(a, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t) { let e = { "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 s in e) new RegExp("(" + s + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))); let h = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; h.push(e), s && h.push(s), i && h.push(i), console.log(h.join("\n")), this.logs = this.logs.concat(h) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } From 5a950ed58bddfe4e686bc8f924974dabe5e0c2d8 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Fri, 3 Dec 2021 02:28:15 +0800 Subject: [PATCH 42/75] =?UTF-8?q?=E9=80=82=E9=85=8D=E5=A4=A9=E6=B0=94?= =?UTF-8?q?=E6=96=B0=E7=89=88=E6=9C=AC8.3.9=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=87=A0=E4=B8=AA=E6=97=B6=E6=AE=B5=E5=A5=96=E5=8A=B1=E9=A2=86?= =?UTF-8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jctq/jctq_daily.js | 115 ++++++++++++++++++++++++++++++- jctq/jctq_kkz.js | 8 +-- jctq/jctq_read.js | 4 +- jctq/jctq_reward.js | 8 +-- jctq/jctq_rewrite.js | 76 +++++++++++++++----- jctq/jctq_rewrite_subscribe.json | 12 ++++ jctq/jctq_shareRead.js | 2 +- 7 files changed, 192 insertions(+), 33 deletions(-) diff --git a/jctq/jctq_daily.js b/jctq/jctq_daily.js index 76308f1..8f61908 100644 --- a/jctq/jctq_daily.js +++ b/jctq/jctq_daily.js @@ -1,8 +1,9 @@ /* -安卓:晶彩天气(v8.3.7) +安卓:水果天气(v8.3.9) 此脚本负责: -领转发页定时宝箱,领福利页定时宝箱,领首页气泡红包,时段转发,刷福利视频,抽奖5次 +旧版本8.3.7:领首页气泡红包和翻倍奖励,福利页定时宝箱和翻倍奖励 +新版本8.3.9:领转发页定时宝箱,领资讯页宝箱和视频奖励,任务页一键收金币,时段转发,刷福利视频,抽奖5次 */ const jsname = '晶彩天气日常' @@ -21,10 +22,14 @@ let userCookie = '' let jctqCookie = ($.isNode() ? process.env.jctqCookie : $.getdata('jctqCookie')) || ''; let jctqBubbleBody = ($.isNode() ? process.env.jctqBubbleBody : $.getdata('jctqBubbleBody')) || ''; let jctqGiveBoxBody = ($.isNode() ? process.env.jctqGiveBoxBody : $.getdata('jctqGiveBoxBody')) || ''; +let jctqGoldBody = ($.isNode() ? process.env.jctqGoldBody : $.getdata('jctqGoldBody')) || ''; +let jctqVideoBody = ($.isNode() ? process.env.jctqVideoBody : $.getdata('jctqVideoBody')) || ''; let jctqCookieArr = [] let jctqBubbleBodyArr = [] let jctqGiveBoxBodyArr = [] +let jctqGoldBodyArr = [] +let jctqVideoBodyArr = [] let refHotShare = 'http://tq.xunsl.com/h5/hotShare/?' let refRotory = 'https://tq.xunsl.com/html/rotaryTable/index.html?keyword_wyq=woyaoq.com&' @@ -58,6 +63,12 @@ let refRotory = 'https://tq.xunsl.com/html/rotaryTable/index.html?keyword_wyq=wo await queryBubbleStatus() await $.wait(1000) + await getVideoReward() + await $.wait(1000) + + await giveGoldCoin() + await $.wait(1000) + await getTaskListByWeather() await $.wait(1000) @@ -121,6 +132,28 @@ async function checkEnv() { jctqGiveBoxBodyArr.push(jctqGiveBoxBody) } } + + if(jctqGoldBody) { + if(jctqGoldBody.indexOf('&') > -1) { + let jctqGoldBodyArrs = jctqGoldBody.split('&') + for(let i=0; i -1) { + let jctqVideoBodyArrs = jctqVideoBody.split('@') + for(let i=0; i Date: Mon, 6 Dec 2021 11:07:16 +0800 Subject: [PATCH 44/75] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zqkd/zqkd_risk.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zqkd/zqkd_risk.js b/zqkd/zqkd_risk.js index 3b92326..aae8e1b 100644 --- a/zqkd/zqkd_risk.js +++ b/zqkd/zqkd_risk.js @@ -117,7 +117,7 @@ function replaceCookie(userCookieItem) { //风险信息 async function RunRiskInfo() { for(userIdx=0; userIdx Date: Tue, 7 Dec 2021 09:39:12 +0800 Subject: [PATCH 45/75] Create ydd.js --- ydd.js | 1084 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1084 insertions(+) create mode 100644 ydd.js diff --git a/ydd.js b/ydd.js new file mode 100644 index 0000000..56c723d --- /dev/null +++ b/ydd.js @@ -0,0 +1,1084 @@ +/* +IOS:阅多多/悦看点 +理论上可以直接跑两个APP的账号 +阅多多下载注册地址:https://yuekandian.yichengw.cn/download?app=3&referrer=729879 + +青龙: +捉取 https://yuekandian.yichengw.cn/api/v1/member/profile 的包里的Authorization,device和User-Agent,按顺序用#连起来写到yddCookie里,多账户用@隔开 +export yddCookie='账号1的Authorization#device#UA@账号2的Authorization#device#UA' + +V2P重写:打开APP即可获取CK,没有的话点一下我的页面或者赚钱页面 +[task_local] +#阅多多 +0-59/15 8-23 * * * https://raw.githubusercontent.com/leafxcy/JavaScript/main/ydd.js, tag=阅多多, enabled=true +[rewrite_local] +https://yuekandian.yichengw.cn/api/v1/member/profile url script-request-header https://raw.githubusercontent.com/leafxcy/JavaScript/main/ydd.js +[MITM] +hostname = yuekandian.yichengw.cn +*/ + +const jsname = '阅多多' +const $ = Env(jsname) +const notifyFlag = 1; //0为关闭通知,1为打开通知,默认为1 +const logDebug = 0 + +//const notify = $.isNode() ? require('./sendNotify') : ''; +let notifyStr = '' + +let rndtime = "" //毫秒 +let httpResult //global buffer + +let host = 'yuekandian.yichengw.cn' +let hostname = 'https://' + host + +let yddCookie = ($.isNode() ? process.env.yddCookie : $.getdata('yddCookie')) || ''; +let yddCookieArr = [] +let userToken = [] +let userDevice = [] +let userAgent = [] +let userCookie = [] + +let userIdx = 0 +let taskIdx = 0 +let coinList = [] +let signFlag = [] +let contSignFlag = [] +let lotteryTicket = [] +let lotteryAdTicket = [] +let helpTicket = [] +let userTicket = [] +let userWaitTime = [] +let extraRewardFlag = [] +let userInfo = [] +let withdrawFlag = [] +let adVideoFlag = [] +let adVideoTicket = [] +let doAliFlag = [] +let barrierFlag = [] +let doneTaskList = [] +let doneTaskTicket = [] + +let NUM_PER_ROUND = 1 + +let LOTTERY_TYPE = 1 +let AD_TICKET_TYPE = 5 +let AD_VIDEO_TYPE = 10 +let HELP_TYPE = 13 +let COIN_TYPE = 14 + +/////////////////////////////////////////////////////////////////// + +!(async () => { + + if(typeof $request !== "undefined") + { + await GetRewrite() + } + else + { + if(!(await checkEnv())) { + return + } + + await initAccountInfo() + await RunMultiUser() + } + + +})() +.catch((e) => $.logErr(e)) +.finally(() => $.done()) + +//通知 +async function showmsg() { + + notifyBody = jsname + "运行通知\n\n" + notifyStr + + if (notifyFlag != 1) { + console.log(notifyBody); + } + + if (notifyFlag == 1) { + $.msg(notifyBody); + //if ($.isNode()){await notify.sendNotify($.name, notifyBody );} + } +} + +async function GetRewrite() { + if($request.url.indexOf('/api/v1/member/profile') > -1) { + let headers = $request.headers + let auth = headers.Authorization + if(!auth) return + auth = auth.replace(/Bearer /g,'') + let device = headers['device'] + if(!device) return + let ua = headers['User-Agent'] + if(!ua) return + let ck = auth + '#' + device + '#' + ua + + if(yddCookie) { + if(yddCookie.indexOf(ck) == -1) { + yddCookie = yddCookie + '@' + ck + $.setdata(yddCookie, 'yddCookie'); + ckList = yddCookie.split('@') + $.msg(jsname+` 获取第${ckList.length}个yddCookie成功`) + } + } else { + $.setdata(ck, 'yddCookie'); + $.msg(jsname+` 获取第1个yddCookie成功`) + } + } +} + +async function checkEnv() { + if(yddCookie) { + if(yddCookie.indexOf('@') > -1) { + let yddCookies = yddCookie.split('@') + for(let i=0; i 0) { + console.log('\n开始领取首页气泡红包...') + for(let i=0; i 0) { + console.log('\n开始签到...') + for(userIdx=0; userIdx 0) { + console.log('\n开始领取连续签到奖励...') + for(userIdx=0; userIdx 0) { + console.log('\n开始抽奖...') + for(userIdx=0; userIdx 0) { + for(userIdx=0; userIdx0) needBarrier=1 + } + await $.wait(100) + + if(needBarrier > 0) { + for(userIdx=0; userIdx 0) { + console.log('\n开始领取任务奖励...') + for(taskIdx=0; taskIdx 0) { + console.log('\n开始做跳转支付宝任务...') + for(userIdx=0; userIdx 0) { + console.log('\n开始看广告...') + for(userIdx=0; userIdx 0) { + for(userIdx=0; userIdx 0; i++) { + haveTicket = 0 + console.log(`--- 开始刷第${i+1}轮 ---`) + + let waitTime = Math.floor(Math.random()*1000) + userWaitTime*1000 + console.log(`随机等待${waitTime/1000}秒...`) + await $.wait(waitTime) + for(userIdx=0; userIdx 0) { + for(userIdx=0; userIdx 0; i++) { + haveTicket = 0 + console.log(`--- 开始刷第${i+1}轮 ---`) + + let waitTime = Math.floor(Math.random()*1000) + userWaitTime*1000 + console.log(`随机等待${waitTime/1000}秒...`) + await $.wait(waitTime) + for(userIdx=0; userIdx= items.days) { + console.log(`用户${userIdx+1}可领取${items.desc}奖励`) + contSignFlag[userIdx] = 1 + } + } + } else { + console.log(`用户${userIdx+1}查询签到状态失败:${result.message}`) + } +} + +//签到 +async function DoSign() { + let caller = printCaller() + let url = `${hostname}/api/v1/reward/sign?` + let urlObject = populatePostUrl(url) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 0) { + console.log(`用户${userIdx+1}签到获得:${result.result.coin}金币`) + } else { + console.log(`用户${userIdx+1}签到失败:${result.message}`) + } +} + +//连续签到奖励 +async function RewardContinuesSign() { + let caller = printCaller() + let url = `${hostname}/api/v1/reward/sign/red_envelope?` + let urlObject = populatePostUrl(url) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 0) { + console.log(`用户${userIdx+1}获得连续签到奖励:${result.result.amount}元`) + } else { + console.log(`用户${userIdx+1}获得连续签到奖励失败:${result.message}`) + } +} + +//查询首页金币气泡 +async function QueryCoinInfo() { + let caller = printCaller() + let url = `${hostname}/api/v1/reward/coin?` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 0) { + for(let items of result.result.coins) { + if(items.num > 0) { + coinList[userIdx].push(items) + } + } + console.log(`用户${userIdx+1}有${coinList[userIdx].length}个可以领取的首页气泡`) + } else { + console.log(`用户${userIdx+1}查询首页气泡信息失败:${result.message}`) + } +} + +//领取首页气泡 +async function GetCoin(id) { + let caller = printCaller() + let url = `${hostname}/api/v1/reward/coin?` + let body = `id=${id}&` + let urlObject = populatePostUrl(url,body) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 0) { + console.log(`用户${userIdx+1}领取首页气泡获得:${result.result.coin}金币`) + } else { + console.log(`用户${userIdx+1}领取首页气泡失败:${result.message}`) + } +} + +//查询抽奖状态 +async function QueryLotteryInfo() { + let caller = printCaller() + let url = `${hostname}/api/v1/reward/lottery/index?` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 0) { + console.log(`用户${userIdx+1}今天剩余抽奖次数:${result.result.lottery_count}`) + if(result.result.lottery_count>0) { + lotteryTicket[userIdx] = result.result.ticket + } + } else { + console.log(`用户${userIdx+1}查询抽奖状态失败:${result.message}`) + } +} + +//抽奖 +async function DoLottery(ticket) { + let caller = printCaller() + let url = `${hostname}/api/v1/reward/lottery/index?` + let body = `ticket=${ticket}&` + let urlObject = populatePostUrl(url,body) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 0) { + if(result.result.type==2) { + lotteryAdTicket[userIdx] = result.result.ticket + console.log(`用户${userIdx+1}抽奖获得:${result.result.num}金币`) + } else if (result.result.type==1) { + console.log(`用户${userIdx+1}抽奖获得:${result.result.num}手机碎片`) + } else { + console.log(result) + } + } else { + console.log(`用户${userIdx+1}抽奖失败:${result.message}`) + } +} + +//助力领现金-看视频 +async function HelpClick() { + let caller = printCaller() + let url = `${hostname}/api/v1/reward/help/click?` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 0) { + if(result.result && result.result.ticket) { + helpTicket[userIdx] = result.result.ticket + console.log(`用户${userIdx+1}看助力领现金视频将获得${result.result.coin/10000}元余额`) + } else { + console.log(`用户${userIdx+1}看助力领现金视频失败:${result.message}`) + } + } else { + console.log(`用户${userIdx+1}看助力领现金视频失败:${result.message}`) + } +} + +//助力领现金信息 +async function HelpInfo() { + let caller = printCaller() + let url = `${hostname}/api/v1/reward/help/index?` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 0) { + console.log(`用户${userIdx+1}助力领现金金额:${result.result.jinbi}元,还差${result.result.diff_jinbi}元可以提现`) + } else { + console.log(`用户${userIdx+1}看助力领现金视频失败:${result.message}`) + } +} + +//开始广告 +async function WatchAd(type) { + let caller = printCaller() + let url = `${hostname}/api/v1/ad/topon/placement/id?type=${type}&` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 0) { + console.log(`用户${userIdx+1}开始看广告`) + } else { + console.log(`用户${userIdx+1}看广告失败:${result.message}`) + } +} + +//完成广告 +async function LogAd(type,ticket='') { + let caller = printCaller() + let ticketStr = '' + if(ticket) ticketStr = `ticket=${ticket}&` + let url = `${hostname}/api/v1/ad/log?${ticketStr}type=${type}&` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 0) { + console.log(`用户${userIdx+1}完成看广告`) + } else { + console.log(`用户${userIdx+1}完成看广告失败:${result.message}`) + } +} + +//获取ticket +async function GetTicket(suburl) { + userTicket[userIdx] = '' + userWaitTime[userIdx] = 0 + let caller = printCaller() + let url = `${hostname}/api/v1/reward/${suburl}` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 0) { + if(result.result.coin_status==1) { + if(result.result.ticket) { + userTicket[userIdx] = result.result.ticket + userWaitTime[userIdx] = result.result.time + console.log(`用户${userIdx+1}获取到ticket`) + } else { + console.log(`用户${userIdx+1}获取ticket失败:${result.message}`) + } + } else { + console.log(`用户${userIdx+1}已无法获得更多金币`) + } + } else { + console.log(`用户${userIdx+1}获取ticket失败:${result.message}`) + } +} + +//记录时间 +async function TimeRecord(suburl,isEnd=false) { + let caller = printCaller() + let endStr = '' + let desc = '开始' + if(isEnd) { + endStr = 'end=1&' + desc = '结束' + } + let url = `${hostname}/api/v1/reward/${suburl}/interval?${endStr}` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 0) { + console.log(`用户${userIdx+1}${desc}记录时长`) + } else { + console.log(`用户${userIdx+1}${desc}记录时长失败:${result.message}`) + } +} + +//获得奖励 +async function Reward(suburl,ticket,subbody='') { + extraRewardFlag[userIdx] = 0 + userTicket[userIdx] = '' + userWaitTime[userIdx] = 0 + let caller = printCaller() + let url = `${hostname}/api/v1/reward/${suburl}` + let body = `ticket=${ticket}&${subbody}` + let urlObject = populatePostUrl(url,body) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 0) { + if(result.result.count >= result.result.target && result.result.ren_status == 1) extraRewardFlag[userIdx]=1 + if(result.result.ticket) { + userTicket[userIdx] = result.result.ticket + userWaitTime[userIdx] = result.result.time + console.log(`用户${userIdx+1}获取到下一个ticket`) + } else { + console.log(`用户${userIdx+1}获取下一个ticket失败:${result.message}`) + } + console.log(`用户${userIdx+1}获得:${result.result.reward}金币,额外奖励次数${result.result.target},目前已刷${result.result.count}次`) + } else { + console.log(`用户${userIdx+1}获得奖励失败:${result.message}`) + } +} + +//额外次数奖励 +async function RewardOpen(suburl,body='') { + let caller = printCaller() + let url = `${hostname}/api/v1/reward/${suburl}/open?` + let urlObject = populatePostUrl(url,body) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 0) { + console.log(`用户${userIdx+1}获得额外奖励:${result.result.reward}金币`) + } else { + console.log(`用户${userIdx+1}获得额外奖励失败:${result.message}`) + } +} + +//账号信息 +async function QueryUserInfo() { + let caller = printCaller() + let url = `${hostname}/api/v1/member/profile?debug=0&` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 0) { + console.log(`\n==== 用户${userIdx+1}: ${result.result.nickname} ====`) + console.log(`今日收益: ${result.result.today_point}`) + console.log(`提现券 : ${result.result.ticket}`) + console.log(`手机碎片: ${result.result.fragment}`) + console.log(`金币余额: ${result.result.point}`) + console.log(`历史收益: ${result.result.total_point}`) + userInfo[userIdx] = result.result + } else { + console.log(`用户${userIdx+1}查询账号信息失败:${result.message}`) + } +} + +//提现列表 +async function QueryWithdrawList() { + let caller = printCaller() + let url = `${hostname}/api/v1/cash/exchange?` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 0) { + let sortList = result.result.items.sort(function(a,b){return b["jine"]-a["jine"]}); + for(let item of sortList) { + if(userInfo[userIdx].point>item.jinbi && userInfo[userIdx].ticket>item.cond && item.is_ok==1) { + await Withdraw(item.jine) + if(withdrawFlag[userIdx]==1) break; + } + } + } else { + console.log(`用户${userIdx+1}查询提现列表失败:${result.message}`) + } +} + +//提现 +async function Withdraw(amount) { + let caller = printCaller() + let url = `${hostname}/api/v1/cash/exchange?` + let body = `amount=${amount}&gate=wechat&` + let urlObject = populatePostUrl(url,body) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return false + + if(result.code == 0) { + withdrawFlag[userIdx] = 1 + console.log(`用户${userIdx+1}提现${amount}:${result.result.title}, ${result.result.message}`) + } else { + console.log(`用户${userIdx+1}提现${amount}失败:${result.message}`) + } + return false +} + +//获取任务列表状态 +async function QueryTaskList() { + let caller = printCaller() + let url = `${hostname}/api/v1/zhuan/index?` + let urlObject = populatePostUrl(url) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 0) { + for(let item of result.result.items) { + let str = (item.st==0) ? '未完成' : '已完成' + if(item.title.indexOf('观看广告视频') > -1) { + let matchItem = item.title.match(/"red">(\w+)<\/font>\/(\w+)/) + str = (parseInt(matchItem[2]) > parseInt(matchItem[1])) ? '未完成' : '已完成' + if(item.st==0) adVideoFlag[userIdx] = 1 + console.log(`用户${userIdx+1}${str}看广告任务,总次数${matchItem[2]}次,已完成${matchItem[1]}次`) + } else if(item.title.indexOf('支付宝红包') > -1) { + if(item.st==0) doAliFlag[userIdx] = 1 + console.log(`用户${userIdx+1}${str}跳转支付宝任务`) + } else if(item.title.indexOf('看资讯') > -1) { + let matchItem = item.rate.split('$') + console.log(`用户${userIdx+1}${str}看资讯任务,总次数${matchItem[1]}次,已完成${matchItem[0]}次`) + } else if(item.title.indexOf('刷视频') > -1) { + let matchItem = item.rate.split('$') + console.log(`用户${userIdx+1}${str}刷视频任务,总次数${matchItem[1]}次,已完成${matchItem[0]}次`) + } + if(item.st==1) { + if(item.id != 10 && item.time <= 0) { + doneTaskList[userIdx].push(item.id) + doneTaskTicket[userIdx].push('') + } + } + } + } else { + console.log(`用户${userIdx+1}获取任务列表状态失败:${result.message}`) + } +} + +//获取看广告视频任务ticket +async function DoAdVideo() { + let caller = printCaller() + let url = `${hostname}/api/v1/zhuan/video?` + let urlObject = populatePostUrl(url) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 0) { + if(result.result.ticket) { + adVideoTicket[userIdx] = result.result.ticket + console.log(`用户${userIdx+1}获取看广告视频ticket成功,将获得:${result.result.coin}金币,${result.result.coupon}提现券`) + } else { + console.log(`用户${userIdx+1}获取看广告视频ticket失败`) + } + } else { + console.log(`用户${userIdx+1}获取看广告视频ticket失败:${result.message}`) + } +} + +//跳转支付宝 +async function DoAliTask() { + let caller = printCaller() + let url = `${hostname}/api/v1/zhuan/aliaaa?` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 0) { + console.log(`用户${userIdx+1}完成跳转支付宝任务`) + } else { + console.log(`用户${userIdx+1}完成跳转支付宝任务失败:${result.message}`) + } +} + +//闯关换手机状态 +async function QueryBarrierInfo() { + let caller = printCaller() + let url = `${hostname}/api/v1/reward/barrier/index?` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 0) { + console.log(`用户${userIdx+1}今天已闯关${result.result.current_barrier}次`) + if(result.result.current_barrier<7) { + barrierFlag[userIdx] = parseInt(result.result.current_barrier) + 1 + } + } else { + console.log(`用户${userIdx+1}获取看广告视频ticket失败:${result.message}`) + } +} + +//闯关 +async function DoBarrier(num) { + let caller = printCaller() + let url = `${hostname}/api/v1/reward/barrier/index?` + let body = `no=${num}&` + let urlObject = populatePostUrl(url,body) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 0) { + console.log(`用户${userIdx+1}闯关获得:${result.result.coin}金币,${result.result.fragment}手机碎片`) + } else { + console.log(`用户${userIdx+1}闯关失败:${result.message}`) + } +} + +//领任务奖励 +async function doneTaskReward(id) { + let caller = printCaller() + let url = `${hostname}/api/v1/zhuan/done?` + let body = `id=${id}&` + let urlObject = populatePostUrl(url,body) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + + if(result.code == 0) { + if(result.result.ticket) doneTaskTicket[userIdx][taskIdx] = result.result.ticket + console.log(`用户${userIdx+1}领取任务[id=${id}]奖励获得:${result.result.coin}金币`) + } else { + console.log(`用户${userIdx+1}领取任务[id=${id}]奖励失败:${result.message}`) + } +} +//////////////////////////////////////////////////////////////////// +function populatePostUrl(url,reqBody=''){ + let urlObject = { + url: url, + headers: { + 'Host' : 'yuekandian.yichengw.cn', + 'version' : '8', + 'Authorization' : 'Bearer ' + userToken[userIdx], + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding' : 'gzip, deflate, br', + 'platform' : '2', + 'Accept' : '*/*', + 'User-Agent' : userAgent[userIdx], + 'Connection' : 'keep-alive', + 'device' : userDevice[userIdx], + 'store' : '100', + }, + body: reqBody + } + if(userAgent[userIdx].indexOf('CBD') > -1) { + urlObject.headers['version'] = '2' + urlObject.headers['app'] = '3' + } + return urlObject; +} + +function populateGetUrl(url){ + let urlObject = { + url: url, + headers: { + 'Host' : 'yuekandian.yichengw.cn', + 'version' : '8', + 'Authorization' : 'Bearer ' + userToken[userIdx], + 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding' : 'gzip, deflate, br', + 'platform' : '2', + 'Accept' : '*/*', + 'User-Agent' : userAgent[userIdx], + 'Connection' : 'keep-alive', + 'device' : userDevice[userIdx], + 'store' : '100', + } + } + if(userAgent[userIdx].indexOf('CBD') > -1) { + urlObject.headers['version'] = '2' + urlObject.headers['app'] = '3' + } + return urlObject; +} + +async function httpPost(url,caller) { + httpResult = null + return new Promise((resolve) => { + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": post请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + httpResult = JSON.parse(data); + if(logDebug) console.log(httpResult); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +async function httpGet(url,caller) { + httpResult = null + return new Promise((resolve) => { + $.get(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": get请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data,caller)) { + httpResult = JSON.parse(data); + if(logDebug) console.log(httpResult); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function safeGet(data,caller) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } else { + console.log(`Function ${caller}: 未知错误`); + console.log(data) + } + } catch (e) { + console.log(e); + console.log(`Function ${caller}: 服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function printCaller(){ + return (new Error()).stack.split("\n")[2].trim().split(" ")[1] +} + +function getMin(a,b){ + return ((a { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `\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 } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), a = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(a, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t) { let e = { "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 s in e) new RegExp("(" + s + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))); let h = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; h.push(e), s && h.push(s), i && h.push(i), console.log(h.join("\n")), this.logs = this.logs.concat(h) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } From c213335363d05277873d73c8821110cdb17b3010 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Tue, 7 Dec 2021 10:18:03 +0800 Subject: [PATCH 46/75] =?UTF-8?q?=E5=85=BC=E5=AE=B9auth=E5=89=8D=E9=9D=A2?= =?UTF-8?q?=E5=B8=A6Bearer=E7=9A=84=E5=90=8C=E5=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ydd.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ydd.js b/ydd.js index 56c723d..401c6c2 100644 --- a/ydd.js +++ b/ydd.js @@ -1,10 +1,10 @@ /* IOS:阅多多/悦看点 -理论上可以直接跑两个APP的账号 +理论上可以直接跑两个APP的账号,每天金币7毛多吧,提现1元和5元需要做任务拿提现券 阅多多下载注册地址:https://yuekandian.yichengw.cn/download?app=3&referrer=729879 青龙: -捉取 https://yuekandian.yichengw.cn/api/v1/member/profile 的包里的Authorization,device和User-Agent,按顺序用#连起来写到yddCookie里,多账户用@隔开 +捉取 https://yuekandian.yichengw.cn/api/v1/member/profile 的包里的Authorization(把前面的Bearer删掉),device和User-Agent,按顺序用#连起来写到yddCookie里,多账户用@隔开 export yddCookie='账号1的Authorization#device#UA@账号2的Authorization#device#UA' V2P重写:打开APP即可获取CK,没有的话点一下我的页面或者赚钱页面 @@ -132,10 +132,11 @@ async function GetRewrite() { async function checkEnv() { if(yddCookie) { + yddCookie = yddCookie.replace(/Bearer/g,'') if(yddCookie.indexOf('@') > -1) { let yddCookies = yddCookie.split('@') for(let i=0; i Date: Tue, 7 Dec 2021 10:28:43 +0800 Subject: [PATCH 47/75] =?UTF-8?q?=E5=A4=9A=E8=B4=A6=E5=8F=B7=E7=AD=89?= =?UTF-8?q?=E5=BE=85=E6=97=B6=E9=95=BF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ydd.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/ydd.js b/ydd.js index 401c6c2..cd3d378 100644 --- a/ydd.js +++ b/ydd.js @@ -185,6 +185,7 @@ async function initAccountInfo() { async function RunMultiUser() { let maxCoinNum = 0 + let maxWaitTime = 0 let needSign = 0 let needContSign = 0 let needLottery = 0 @@ -376,9 +377,13 @@ async function RunMultiUser() { //============= 看小视频 ============= console.log(`\n准备刷小视频${NUM_PER_ROUND}次...`) haveTicket = 0 + maxWaitTime = 0 for(userIdx=0; userIdx 0) { for(userIdx=0; userIdx 0) { for(userIdx=0; userIdx Date: Tue, 7 Dec 2021 10:46:19 +0800 Subject: [PATCH 48/75] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=87=8D=E5=86=99?= =?UTF-8?q?=E6=89=93=E5=8D=B0ck?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ydd.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ydd.js b/ydd.js index cd3d378..f14b0b2 100644 --- a/ydd.js +++ b/ydd.js @@ -121,11 +121,11 @@ async function GetRewrite() { yddCookie = yddCookie + '@' + ck $.setdata(yddCookie, 'yddCookie'); ckList = yddCookie.split('@') - $.msg(jsname+` 获取第${ckList.length}个yddCookie成功`) + $.msg(jsname+` 获取第${ckList.length}个yddCookie成功: ${yddCookie}`) } } else { $.setdata(ck, 'yddCookie'); - $.msg(jsname+` 获取第1个yddCookie成功`) + $.msg(jsname+` 获取第1个yddCookie成功: ${ck}`) } } } From 0edf232150c0b2dee150b1c112d74d6acc4cc87d Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Tue, 7 Dec 2021 23:52:41 +0800 Subject: [PATCH 49/75] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=B1=8F=E8=94=BD?= =?UTF-8?q?=E6=8C=87=E5=AE=9A=E9=87=91=E9=A2=9D=E6=8F=90=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ydd.js | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/ydd.js b/ydd.js index f14b0b2..d381fe9 100644 --- a/ydd.js +++ b/ydd.js @@ -1,8 +1,11 @@ /* IOS:阅多多/悦看点 -理论上可以直接跑两个APP的账号,每天金币7毛多吧,提现1元和5元需要做任务拿提现券 +理论上可以直接跑两个APP的账号,每天金币7毛以上,提现1元和5元需要做任务拿提现券 阅多多下载注册地址:https://yuekandian.yichengw.cn/download?app=3&referrer=729879 +默认不提现1块,可以在环境变量yddSkipWithdraw设置不想提现的金额,逗号隔开,填0就会尝试提现所有金额 +export yddSkipWithdraw='1,5' + 青龙: 捉取 https://yuekandian.yichengw.cn/api/v1/member/profile 的包里的Authorization(把前面的Bearer删掉),device和User-Agent,按顺序用#连起来写到yddCookie里,多账户用@隔开 export yddCookie='账号1的Authorization#device#UA@账号2的Authorization#device#UA' @@ -38,6 +41,9 @@ let userDevice = [] let userAgent = [] let userCookie = [] +let yddSkipWithdraw = ($.isNode() ? process.env.yddSkipWithdraw : $.getdata('yddSkipWithdraw')) || '1'; +let skipWithdraw = [] + let userIdx = 0 let taskIdx = 0 let coinList = [] @@ -157,6 +163,14 @@ async function checkEnv() { userAgent.push(userItem[2]) } + if(yddSkipWithdraw) { + if(yddSkipWithdraw.indexOf(',') > -1) { + skipWithdraw = yddSkipWithdraw.split(',') + } else { + skipWithdraw.push(yddSkipWithdraw) + } + } + console.log(`共找到${yddCookieArr.length}个用户`) return true } @@ -808,6 +822,16 @@ async function QueryWithdrawList() { if(result.code == 0) { let sortList = result.result.items.sort(function(a,b){return b["jine"]-a["jine"]}); for(let item of sortList) { + let skipFlag = 0 + if(skipWithdraw.length>0) { + for(let skipItem of skipWithdraw) { + if(parseInt(item.jine) == parseInt(skipItem)) { + skipFlag = 1 + break + } + } + } + if(skipFlag==1) continue if(userInfo[userIdx].point>item.jinbi && userInfo[userIdx].ticket>item.cond && item.is_ok==1) { await Withdraw(item.jine) if(withdrawFlag[userIdx]==1) break; From 86bced8d7575569cf061d13ff5c6f2ddaa89e6bf Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Thu, 9 Dec 2021 11:38:09 +0800 Subject: [PATCH 50/75] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E4=B8=8D=E5=88=B0?= =?UTF-8?q?=E8=BD=AC=E5=8F=91=E5=88=97=E8=A1=A8=EF=BC=8C=E7=9B=B4=E6=8E=A5?= =?UTF-8?q?=E9=80=80=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jckd/jckd_shareRead.js | 4 ++++ jctq/jctq_shareRead.js | 4 ++++ zqkd/zqkd_shareRead.js | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/jckd/jckd_shareRead.js b/jckd/jckd_shareRead.js index b41c330..1ee1bf1 100644 --- a/jckd/jckd_shareRead.js +++ b/jckd/jckd_shareRead.js @@ -147,6 +147,10 @@ async function listsNewTag() { if(result.status == 1) { if(result.data && result.data.items && Array.isArray(result.data.items)) { + if(result.data.items.length == 0) { + console.log('无法找到转发列表,可能是IP原因') + return + } let shareIdx = Math.floor(Math.random()*result.data.items.length) newsItem = result.data.items[shareIdx] await $.wait(1000) diff --git a/jctq/jctq_shareRead.js b/jctq/jctq_shareRead.js index 2c2b169..b534a65 100644 --- a/jctq/jctq_shareRead.js +++ b/jctq/jctq_shareRead.js @@ -150,6 +150,10 @@ async function listsNewTag() { if(result.status == 1) { if(result.data && result.data.items && Array.isArray(result.data.items)) { + if(result.data.items.length == 0) { + console.log('无法找到转发列表,可能是IP原因') + return + } let shareIdx = Math.floor(Math.random()*result.data.items.length) newsItem = result.data.items[shareIdx] await $.wait(1000) diff --git a/zqkd/zqkd_shareRead.js b/zqkd/zqkd_shareRead.js index 9c3181b..9b0690f 100644 --- a/zqkd/zqkd_shareRead.js +++ b/zqkd/zqkd_shareRead.js @@ -147,6 +147,10 @@ async function listsNewTag() { if(result.status == 1) { if(result.data && result.data.items && Array.isArray(result.data.items)) { + if(result.data.items.length == 0) { + console.log('无法找到转发列表,可能是IP原因') + return + } let shareIdx = Math.floor(Math.random()*result.data.items.length) newsItem = result.data.items[shareIdx] await $.wait(1000) From 573973483df5606c6d41cd13299176d631f70718 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Sun, 12 Dec 2021 16:11:29 +0800 Subject: [PATCH 51/75] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=A4=9A=E8=B4=A6?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- blackUnique.js | 353 +++++++++++++++++++++++-------------------------- 1 file changed, 168 insertions(+), 185 deletions(-) diff --git a/blackUnique.js b/blackUnique.js index 7862ff4..54e0e08 100644 --- a/blackUnique.js +++ b/blackUnique.js @@ -4,26 +4,23 @@ APP:全球购骑士特权 直接appstore搜索下载,方便的话可以微信扫下面图片二维码走邀请注册,谢谢 https://raw.githubusercontent.com/leafxcy/JavaScript/main/blackUnique.jpg -定时为每小时一次,务必在0分到5分之间运行,目前只写了每日领勋章和领取存钱罐的任务,大概每天3毛 +定时为每小时一次,务必在0分到5分之间运行,目前每天大概1毛7 提现需要关注微信公众号,在公众号里申请提现 请手动点一下签到页面的【收零花钱】领一次金币,去【果园】里选择水果种子 -只测试了IOS的青龙和V2P,暂不支持多账号 青龙: -捉https://market.chuxingyouhui.com/promo-bargain-api/activity/mqq/api/indexTopInfo?的包,获得appId -捉https://pyp-api.chuxingyouhui.com/api/app/userCenter/v1/info的包,获得其他header +捉https://market.chuxingyouhui.com/promo-bargain-api/activity/mqq/api/indexTopInfo的包 然后填在blackJSON里面,注意按照JSON格式填写。用青龙面板的环境变量或者外面用双引号的,字符串内需要用\"转义 -export blackJSON='{"black-token":"", "token":"", "User-Agent":"", "device-value":"", "device-type":"", "phpUserId":"", "appId":""}' +export blackJSON='{"black-token":"", "token":"", "User-Agent":"", "appId":""}' V2P,圈X:重写方法 -- 点击右下角【我的】-> 【每日签到赚现金】 [task_local] #全球购骑士特权 0 * * * * https://raw.githubusercontent.com/leafxcy/JavaScript/main/blackUnique.js, tag=全球购骑士特权, enabled=true [rewrite_local] -https://pyp-api.chuxingyouhui.com/api/app/userCenter/v1/info url script-request-header https://raw.githubusercontent.com/leafxcy/JavaScript/main/blackUnique.js https://market.chuxingyouhui.com/promo-bargain-api/activity/mqq/api/indexTopInfo? url script-request-header https://raw.githubusercontent.com/leafxcy/JavaScript/main/blackUnique.js [MITM] -hostname = *.chuxingyouhui.com +hostname = market.chuxingyouhui.com */ @@ -35,10 +32,10 @@ const logDebug = 0 //const notify = $.isNode() ? require('./sendNotify') : ''; let notifyStr = '' -let blankJSON = {"black-token":"", "token":"", "User-Agent":"", "device-value":"", "device-type":"", "phpUserId":"", "appId":""} -let blackJSONStr = ($.isNode() ? (process.env.blackJSON) : ($.getval('blackJSON'))) || '' -let blackJSON = blackJSONStr ? JSON.parse(blackJSONStr) : blankJSON +let blackJSON = ($.isNode() ? (process.env.blackJSON) : ($.getval('blackJSON'))) || '' +let blackArr = [] +let userIdx = 0 let reqTime = '' let userSign = '' let redPacketId = '' @@ -48,7 +45,7 @@ let activityId = '' let redPacketCount = 0 let waterCount = 0 let fertilizerCount = 0 -let clickTreeTimes = 5 +let clickTreeTimes = 1 let signRetryTimes = 3 let signRetryCount = 0 @@ -74,29 +71,22 @@ let rndtime = "" //毫秒 console.log('\n提现需要关注微信公众号,在公众号里申请提现') - await querySignStatus() - - await listUserTask() - - //await listRedPacket() - - await queryPiggyInfo() - - //翻卡看视频需要前置条件 - //await getUserFlopRecord() - - await userFruitDetail() - - await waterTaskList() - - await nutrientTaskList() - - await userFertilizerDetail() - - await getTreeCoupon() - - await userInfo() - + for(userIdx=0; userIdx -1) { - if($request.headers['black-token']) { - blackJSON['black-token'] = $request.headers['black-token'] - $.log(`获取到black-token: ${blackJSON['black-token']}`) - $.msg(`获取到black-token: ${blackJSON['black-token']}`) - } - if($request.headers['token']) { - blackJSON['token'] = $request.headers['token'] - $.log(`获取到token: ${blackJSON['token']}`) - $.msg(`获取到token: ${blackJSON['token']}`) - } - if($request.headers['User-Agent']) { - blackJSON['User-Agent'] = $request.headers['User-Agent'] - $.log(`获取到User-Agent: ${blackJSON['User-Agent']}`) - $.msg(`获取到User-Agent: ${blackJSON['User-Agent']}`) - } - if($request.headers['device-value']) { - blackJSON['device-value'] = $request.headers['device-value'] - $.log(`获取到device-value: ${blackJSON['device-value']}`) - $.msg(`获取到device-value: ${blackJSON['device-value']}`) - } - if($request.headers['device-type']) { - blackJSON['device-type'] = $request.headers['device-type'] - $.log(`获取到device-type: ${blackJSON['device-type']}`) - $.msg(`获取到device-type: ${blackJSON['device-type']}`) - } - if($request.headers['phpUserId']) { - blackJSON['phpUserId'] = $request.headers['phpUserId'] - $.log(`获取到phpUserId: ${blackJSON['phpUserId']}`) - $.msg(`获取到phpUserId: ${blackJSON['phpUserId']}`) - } - $.setdata(JSON.stringify(blackJSON),'blackJSON') - } - if($request.url.indexOf("mqq/api/indexTopInfo?appId=") > -1) { - blackJSON['appId'] = $request.url.match(/appId=([\w]+)/)[1] - $.log(`获取到appId: ${blackJSON['appId']}`) - $.msg(`获取到appId: ${blackJSON['appId']}`) - $.setdata(JSON.stringify(blackJSON),'blackJSON') + let blackCk = {"black-token":"", "token":"", "User-Agent":"", "appId":""} + let msgStr = '' + + let matchItem = $request.url.match(/appId=([\w]+)/) + blackCk['appId'] = matchItem[1] + msgStr += `获取到appId: ${blackCk['appId']}\n` + + blackCk['black-token'] = $request.headers['black-token'] + msgStr += `获取到black-token: ${blackCk['black-token']}\n` + + blackCk['token'] = $request.headers['token'] + msgStr += `获取到token: ${blackCk['token']}\n` + + blackCk['User-Agent'] = $request.headers['User-Agent'] + msgStr += `获取到User-Agent: ${blackCk['User-Agent']}\n` + + if(blackCk['black-token']) { + if(blackJSON) { + if(blackJSON.indexOf(blackCk['black-token']) == -1) { + blackJSON = blackJSON + '@' + JSON.stringify(blackCk) + numUser = blackJSON.split('@') + msgStr = `获取到第${numUser.length}个账户ck\n` + msgStr + $.setdata(blackJSON,'blackJSON') + $.msg(msgStr) + } else { + $.log('检测到重复的账户ck') + } + } else { + msgStr = `获取到第一个账户ck\n` + msgStr + $.setdata(JSON.stringify(blackCk),'blackJSON') + $.msg(msgStr) + } + } } } async function checkEnv() { - if(!blackJSON['black-token'] || !blackJSON['token'] || !blackJSON['User-Agent'] || !blackJSON['device-value'] || !blackJSON['device-type'] || !blackJSON['phpUserId'] || !blackJSON['appId']) - { - $.log(`捉包信息不全,请检查空白字段并重新捉包: ${JSON.stringify(blackJSON)}\n`) - $.msg(`捉包信息不全,请检查空白字段并重新捉包: ${JSON.stringify(blackJSON)}\n`) + if(blackJSON) { + for(let users of blackJSON.split('@')) { + blackArr.push(JSON.parse(users)) + } + } else { + console.log('未找到blackJSON') return false } + if(blackArr.length == 0) { + console.log('未找到有效的blackJSON') + return false + } + + console.log(`共找到${blackArr.length}个用户`) return true } @@ -192,11 +185,11 @@ async function getBussinessInfo(adId,activityType,bussinessType,version) { 'Accept' : 'application/json, text/plain, */*', 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', 'Accept-Encoding' : 'gzip, deflate, br', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Content-Type' : 'application/json;charset=utf-8', 'Origin' : 'https://m.black-unique.com', - 'User-Agent' : blackJSON['User-Agent'], - 'black-token' : blackJSON['black-token'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], + 'black-token' : blackArr[userIdx]['black-token'], 'Referer' : 'https://m.black-unique.com/', 'Connection' : 'keep-alive', }, @@ -234,17 +227,17 @@ async function querySignStatus() { //rndtime = Math.round(new Date().getTime()) return new Promise((resolve) => { let url = { - url: 'https://market.chuxingyouhui.com/promo-bargain-api/activity/weekSign/api/v1_0/calendar?appId='+blackJSON['appId'], + url: 'https://market.chuxingyouhui.com/promo-bargain-api/activity/weekSign/api/v1_0/calendar?appId='+blackArr[userIdx]['appId'], headers: { 'Host' : 'market.chuxingyouhui.com', 'Origin' : 'https://m.black-unique.com', 'Accept-Encoding' : 'gzip, deflate, br', 'Connection' : 'keep-alive', - 'black-token' : blackJSON['black-token'], + 'black-token' : blackArr[userIdx]['black-token'], 'Accept' : 'application/json, text/plain, */*', - 'User-Agent' : blackJSON['User-Agent'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], 'Referer' : 'https://m.black-unique.com/', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', }, }; @@ -293,18 +286,18 @@ async function doSign() { encodeBody = encodeURIComponent(reqBody) return new Promise((resolve) => { let url = { - url: 'https://market.chuxingyouhui.com/promo-bargain-api/activity/weekSign/api/v1_0/sign?appId='+blackJSON['appId'], + url: 'https://market.chuxingyouhui.com/promo-bargain-api/activity/weekSign/api/v1_0/sign?appId='+blackArr[userIdx]['appId'], headers: { 'Host' : 'market.chuxingyouhui.com', 'request-body' : encodeBody, 'Accept' : 'application/json, text/plain, */*', 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', 'Accept-Encoding' : 'gzip, deflate, br', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Content-Type' : 'application/json;charset=utf-8', 'Origin' : 'https://m.black-unique.com', - 'User-Agent' : blackJSON['User-Agent'], - 'black-token' : blackJSON['black-token'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], + 'black-token' : blackArr[userIdx]['black-token'], 'Referer' : 'https://m.black-unique.com/', 'Connection' : 'keep-alive', }, @@ -351,11 +344,11 @@ async function listUserTask() { 'Accept' : 'application/json, text/plain, */*', 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', 'Accept-Encoding' : 'gzip, deflate, br', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Content-Type' : 'application/json;charset=utf-8', 'Origin' : 'https://m.black-unique.com', - 'User-Agent' : blackJSON['User-Agent'], - 'black-token' : blackJSON['black-token'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], + 'black-token' : blackArr[userIdx]['black-token'], 'Referer' : 'https://m.black-unique.com/', 'Connection' : 'keep-alive', }, @@ -418,11 +411,11 @@ async function doTask(taskType,userTaskId,taskTitle) { 'Accept' : 'application/json, text/plain, */*', 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', 'Accept-Encoding' : 'gzip, deflate, br', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Content-Type' : 'application/json;charset=utf-8', 'Origin' : 'https://m.black-unique.com', - 'User-Agent' : blackJSON['User-Agent'], - 'black-token' : blackJSON['black-token'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], + 'black-token' : blackArr[userIdx]['black-token'], 'Referer' : 'https://m.black-unique.com/', 'Connection' : 'keep-alive', }, @@ -460,17 +453,17 @@ async function queryPiggyInfo() { //rndtime = Math.round(new Date().getTime()) return new Promise((resolve) => { let url = { - url: 'https://market.chuxingyouhui.com/promo-bargain-api/activity/golden/api/queryUserAccountInfo?appId='+blackJSON['appId'], + url: 'https://market.chuxingyouhui.com/promo-bargain-api/activity/golden/api/queryUserAccountInfo?appId='+blackArr[userIdx]['appId'], headers: { 'Host' : 'market.chuxingyouhui.com', 'Origin' : 'https://m.black-unique.com', 'Accept-Encoding' : 'gzip, deflate, br', 'Connection' : 'keep-alive', - 'black-token' : blackJSON['black-token'], + 'black-token' : blackArr[userIdx]['black-token'], 'Accept' : 'application/json, text/plain, */*', - 'User-Agent' : blackJSON['User-Agent'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], 'Referer' : 'https://m.black-unique.com/', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', }, }; @@ -487,6 +480,7 @@ async function queryPiggyInfo() { if(result.code == 200) { if(parseFloat(result.data.goldenAmount) < parseFloat(result.data.dayCeil)) { if(parseFloat(result.data.piggyAmount) >= 1) { + await getBussinessInfo(946088114,7,'GOLDEN_CLICK','v3') await clickPiggy() } } else { @@ -510,7 +504,7 @@ async function queryPiggyInfo() { async function clickPiggy() { let caller = printCaller() //rndtime = Math.round(new Date().getTime()) - reqBody = `{"appId":"${blackJSON['appId']}"}` + reqBody = `{"appId":"${blackArr[userIdx]['appId']}","extraReq":${bussinessInfo}}` encodeBody = encodeURIComponent(reqBody) return new Promise((resolve) => { let url = { @@ -521,11 +515,11 @@ async function clickPiggy() { 'Accept' : 'application/json, text/plain, */*', 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', 'Accept-Encoding' : 'gzip, deflate, br', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Content-Type' : 'application/json;charset=utf-8', 'Origin' : 'https://m.black-unique.com', - 'User-Agent' : blackJSON['User-Agent'], - 'black-token' : blackJSON['black-token'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], + 'black-token' : blackArr[userIdx]['black-token'], 'Referer' : 'https://m.black-unique.com/', 'Connection' : 'keep-alive', }, @@ -561,7 +555,7 @@ async function clickPiggy() { async function getUserFlopRecord() { let caller = printCaller() //rndtime = Math.round(new Date().getTime()) - reqBody = `{"appId":"${blackJSON['appId']}","queryDay":"${todayDate}"}` + reqBody = `{"appId":"${blackArr[userIdx]['appId']}","queryDay":"${todayDate}"}` encodeBody = encodeURIComponent(reqBody) return new Promise((resolve) => { let url = { @@ -572,11 +566,11 @@ async function getUserFlopRecord() { 'Accept' : 'application/json, text/plain, */*', 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', 'Accept-Encoding' : 'gzip, deflate, br', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Content-Type' : 'application/json;charset=utf-8', 'Origin' : 'https://m.black-unique.com', - 'User-Agent' : blackJSON['User-Agent'], - 'black-token' : blackJSON['black-token'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], + 'black-token' : blackArr[userIdx]['black-token'], 'Referer' : 'https://m.black-unique.com/', 'Connection' : 'keep-alive', }, @@ -621,7 +615,7 @@ async function getUserFlopRecord() { async function userFlop(serialNumber) { let caller = printCaller() //rndtime = Math.round(new Date().getTime()) - reqBody = `{"appId":"${blackJSON['appId']}","serialNumber":${serialNumber},"flopDay":"${todayDate}","extraReq":${bussinessInfo}}` + reqBody = `{"appId":"${blackArr[userIdx]['appId']}","serialNumber":${serialNumber},"flopDay":"${todayDate}","extraReq":${bussinessInfo}}` encodeBody = encodeURIComponent(reqBody) return new Promise((resolve) => { let url = { @@ -632,11 +626,11 @@ async function userFlop(serialNumber) { 'Accept' : 'application/json, text/plain, */*', 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', 'Accept-Encoding' : 'gzip, deflate, br', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Content-Type' : 'application/json;charset=utf-8', 'Origin' : 'https://m.black-unique.com', - 'User-Agent' : blackJSON['User-Agent'], - 'black-token' : blackJSON['black-token'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], + 'black-token' : blackArr[userIdx]['black-token'], 'Referer' : 'https://m.black-unique.com/', 'Connection' : 'keep-alive', }, @@ -680,15 +674,12 @@ async function listRedPacket() { url: 'https://fanxian-api.chuxingyouhui.com/api/redPacketIncome/v1_0/listRedPacket', headers: { 'Host' : 'fanxian-api.chuxingyouhui.com', - 'phpUserId' : blackJSON['phpUserId'], - 'device-value' : blackJSON['device-value'], - 'device-type' : blackJSON['device-type'], 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', 'newcomer' : 'true', 'Accept-Encoding' : 'gzip, deflate, br', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Origin' : 'https://m.black-unique.com', - 'User-Agent' : blackJSON['User-Agent'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], 'Referer' : 'https://m.black-unique.com/', 'Content-Length' : '0', 'Connection' : 'keep-alive', @@ -715,8 +706,8 @@ async function listRedPacket() { } if(redItem.status == 2 && redItem.money == 0 && redPacketCount < 7) { signRetryCount = 0 - //await getSignInfo('open') - //await $.wait(500) + await getSignInfo('open') + await $.wait(500) await openRedPacket() } } @@ -745,15 +736,12 @@ async function openRedPacket() { headers: { 'Host' : 'pyp-api.chuxingyouhui.com', 'Accept' : 'application/json, text/plain, */*', - 'phpUserId' : blackJSON['phpUserId'], - 'device-value' : blackJSON['device-value'], 'ymd' : '0', - 'device-type' : blackJSON['device-type'], 'newcomer' : 'true', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', 'Origin' : 'https://m.black-unique.com', - 'User-Agent' : blackJSON['User-Agent'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], 'Referer' : 'https://m.black-unique.com/', 'Accept-Encoding' : 'gzip, deflate, br', 'Connection' : 'keep-alive', @@ -774,8 +762,8 @@ async function openRedPacket() { if(result.code == 200) { console.log(`打开红包获得:${result.data.money}现金`) signRetryCount = 0 - //await getSignInfo('boom') - //await $.wait(2000) + await getSignInfo('boom') + await $.wait(2000) await boomRedPacket() } else { console.log(`打开红包失败:${result.msg}`) @@ -801,14 +789,11 @@ async function boomRedPacket() { headers: { 'Host' : 'fanxian-api.chuxingyouhui.com', 'Accept' : 'application/json, text/plain, */*', - 'phpUserId' : blackJSON['phpUserId'], - 'device-value' : blackJSON['device-value'], - 'device-type' : blackJSON['device-type'], 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Accept-Encoding' : 'gzip, deflate, br', 'Origin' : 'https://m.black-unique.com', - 'User-Agent' : blackJSON['User-Agent'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], 'Referer' : 'https://m.black-unique.com/', 'Connection' : 'keep-alive', 'Content-Type' : 'application/json;charset=utf-8', @@ -845,7 +830,7 @@ async function boomRedPacket() { async function userFruitDetail() { let caller = printCaller() //rndtime = Math.round(new Date().getTime()/1000) - reqBody = `{"appId":"${blackJSON['appId']}","isMiniProgram":false}` + reqBody = `{"appId":"${blackArr[userIdx]['appId']}","isMiniProgram":false}` encodeBody = encodeURIComponent(reqBody) return new Promise((resolve) => { let url = { @@ -856,11 +841,11 @@ async function userFruitDetail() { 'Accept' : 'application/json, text/plain, */*', 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', 'Accept-Encoding' : 'gzip, deflate, br', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Content-Type' : 'application/json;charset=utf-8', 'Origin' : 'https://m.black-unique.com', - 'User-Agent' : blackJSON['User-Agent'], - 'black-token' : blackJSON['black-token'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], + 'black-token' : blackArr[userIdx]['black-token'], 'Connection' : 'keep-alive', }, body: reqBody, @@ -911,7 +896,7 @@ async function userFruitDetail() { async function fruitStageReward() { let caller = printCaller() //rndtime = Math.round(new Date().getTime()/1000) - reqBody = `{"userFruitId":"${userFruitId}","appId":"${blackJSON['appId']}"}` + reqBody = `{"userFruitId":"${userFruitId}","appId":"${blackArr[userIdx]['appId']}"}` encodeBody = encodeURIComponent(reqBody) return new Promise((resolve) => { let url = { @@ -922,11 +907,11 @@ async function fruitStageReward() { 'Accept' : 'application/json, text/plain, */*', 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', 'Accept-Encoding' : 'gzip, deflate, br', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Content-Type' : 'application/json;charset=utf-8', 'Origin' : 'https://m.black-unique.com', - 'User-Agent' : blackJSON['User-Agent'], - 'black-token' : blackJSON['black-token'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], + 'black-token' : blackArr[userIdx]['black-token'], 'Connection' : 'keep-alive', }, body: reqBody, @@ -972,11 +957,11 @@ async function wateringFruit() { 'Accept' : 'application/json, text/plain, */*', 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', 'Accept-Encoding' : 'gzip, deflate, br', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Content-Type' : 'application/json;charset=utf-8', 'Origin' : 'https://m.black-unique.com', - 'User-Agent' : blackJSON['User-Agent'], - 'black-token' : blackJSON['black-token'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], + 'black-token' : blackArr[userIdx]['black-token'], 'Connection' : 'keep-alive', }, body: reqBody, @@ -1029,11 +1014,11 @@ async function waterTaskList() { 'Accept' : 'application/json, text/plain, */*', 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', 'Accept-Encoding' : 'gzip, deflate, br', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Content-Type' : 'application/json;charset=utf-8', 'Origin' : 'https://m.black-unique.com', - 'User-Agent' : blackJSON['User-Agent'], - 'black-token' : blackJSON['black-token'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], + 'black-token' : blackArr[userIdx]['black-token'], 'Connection' : 'keep-alive', }, body: reqBody, @@ -1101,11 +1086,11 @@ async function doWaterTask(taskType,taskId,taskTitle) { 'Accept' : 'application/json, text/plain, */*', 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', 'Accept-Encoding' : 'gzip, deflate, br', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Content-Type' : 'application/json;charset=utf-8', 'Origin' : 'https://m.black-unique.com', - 'User-Agent' : blackJSON['User-Agent'], - 'black-token' : blackJSON['black-token'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], + 'black-token' : blackArr[userIdx]['black-token'], 'Referer' : 'https://m.black-unique.com/', 'Connection' : 'keep-alive', }, @@ -1153,11 +1138,11 @@ async function receiveWaterDrop(taskType,userTaskId,taskTitle) { 'Accept' : 'application/json, text/plain, */*', 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', 'Accept-Encoding' : 'gzip, deflate, br', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Content-Type' : 'application/json;charset=utf-8', 'Origin' : 'https://m.black-unique.com', - 'User-Agent' : blackJSON['User-Agent'], - 'black-token' : blackJSON['black-token'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], + 'black-token' : blackArr[userIdx]['black-token'], 'Referer' : 'https://m.black-unique.com/', 'Connection' : 'keep-alive', }, @@ -1205,11 +1190,11 @@ async function nutrientTaskList() { 'Accept' : 'application/json, text/plain, */*', 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', 'Accept-Encoding' : 'gzip, deflate, br', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Content-Type' : 'application/json;charset=utf-8', 'Origin' : 'https://m.black-unique.com', - 'User-Agent' : blackJSON['User-Agent'], - 'black-token' : blackJSON['black-token'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], + 'black-token' : blackArr[userIdx]['black-token'], 'Connection' : 'keep-alive', }, body: reqBody, @@ -1262,11 +1247,11 @@ async function doNutrientTask(taskType,taskId,taskTitle) { 'Accept' : 'application/json, text/plain, */*', 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', 'Accept-Encoding' : 'gzip, deflate, br', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Content-Type' : 'application/json;charset=utf-8', 'Origin' : 'https://m.black-unique.com', - 'User-Agent' : blackJSON['User-Agent'], - 'black-token' : blackJSON['black-token'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], + 'black-token' : blackArr[userIdx]['black-token'], 'Referer' : 'https://m.black-unique.com/', 'Connection' : 'keep-alive', }, @@ -1314,11 +1299,11 @@ async function userFertilizerDetail(taskType,taskId,taskTitle) { 'Accept' : 'application/json, text/plain, */*', 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', 'Accept-Encoding' : 'gzip, deflate, br', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Content-Type' : 'application/json;charset=utf-8', 'Origin' : 'https://m.black-unique.com', - 'User-Agent' : blackJSON['User-Agent'], - 'black-token' : blackJSON['black-token'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], + 'black-token' : blackArr[userIdx]['black-token'], 'Referer' : 'https://m.black-unique.com/', 'Connection' : 'keep-alive', }, @@ -1374,11 +1359,11 @@ async function useFertilizer(userToolId) { 'Accept' : 'application/json, text/plain, */*', 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', 'Accept-Encoding' : 'gzip, deflate, br', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Content-Type' : 'application/json;charset=utf-8', 'Origin' : 'https://m.black-unique.com', - 'User-Agent' : blackJSON['User-Agent'], - 'black-token' : blackJSON['black-token'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], + 'black-token' : blackArr[userIdx]['black-token'], 'Referer' : 'https://m.black-unique.com/', 'Connection' : 'keep-alive', }, @@ -1423,7 +1408,7 @@ async function getTreeCoupon() { async function clickTree() { let caller = printCaller() //rndtime = Math.round(new Date().getTime()) - reqBody = `{"userFruitId":"${userFruitId}","appId":"${blackJSON['appId']}"}` + reqBody = `{"userFruitId":"${userFruitId}","appId":"${blackArr[userIdx]['appId']}"}` encodeBody = encodeURIComponent(reqBody) return new Promise((resolve) => { let url = { @@ -1434,11 +1419,11 @@ async function clickTree() { 'Accept' : 'application/json, text/plain, */*', 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', 'Accept-Encoding' : 'gzip, deflate, br', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Content-Type' : 'application/json;charset=utf-8', 'Origin' : 'https://m.black-unique.com', - 'User-Agent' : blackJSON['User-Agent'], - 'black-token' : blackJSON['black-token'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], + 'black-token' : blackArr[userIdx]['black-token'], 'Referer' : 'https://m.black-unique.com/', 'Connection' : 'keep-alive', }, @@ -1478,7 +1463,7 @@ async function clickTree() { async function receiveReward(rewardId,rewardName,rewardInfo) { let caller = printCaller() //rndtime = Math.round(new Date().getTime()) - reqBody = `{"rewardId":"${rewardId}","userFruitId":"${userFruitId}","appId":"${blackJSON['appId']}"}` + reqBody = `{"rewardId":"${rewardId}","userFruitId":"${userFruitId}","appId":"${blackArr[userIdx]['appId']}"}` encodeBody = encodeURIComponent(reqBody) return new Promise((resolve) => { let url = { @@ -1489,11 +1474,11 @@ async function receiveReward(rewardId,rewardName,rewardInfo) { 'Accept' : 'application/json, text/plain, */*', 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', 'Accept-Encoding' : 'gzip, deflate, br', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Content-Type' : 'application/json;charset=utf-8', 'Origin' : 'https://m.black-unique.com', - 'User-Agent' : blackJSON['User-Agent'], - 'black-token' : blackJSON['black-token'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], + 'black-token' : blackArr[userIdx]['black-token'], 'Referer' : 'https://m.black-unique.com/', 'Connection' : 'keep-alive', }, @@ -1514,7 +1499,6 @@ async function receiveReward(rewardId,rewardName,rewardInfo) { } else { console.log(`获取优惠券失败:${result.msg}`) } - await $.wait(1000) } } } catch (e) { @@ -1528,8 +1512,8 @@ async function receiveReward(rewardId,rewardName,rewardInfo) { //查询账户信息 async function userInfo() { - console.log(`\n========= 账户信息 =========`) - notifyStr += `========= 账户信息 =========\n` + console.log(`\n========= 账户${userIdx+1} 信息 =========`) + notifyStr += `========= 账户${userIdx+1} 信息 =========\n` await userRebateInfo() await userTopInfo() } @@ -1544,13 +1528,10 @@ async function userRebateInfo() { headers: { 'Host' : 'pyp-api.chuxingyouhui.com', 'Accept' : '*/*', - 'phpUserId' : blackJSON['phpUserId'], - 'device-value' : blackJSON['device-value'], - 'device-type' : blackJSON['device-type'], 'Accept-Language' : 'zh-Hans-CN;q=1', - 'token' : blackJSON['token'], - 'User-Agent' : blackJSON['User-Agent'], - 'black-token' : blackJSON['black-token'], + 'token' : blackArr[userIdx]['token'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], + 'black-token' : blackArr[userIdx]['black-token'], 'Accept-Encoding' : 'gzip, deflate, br', 'Connection' : 'keep-alive', }, @@ -1566,8 +1547,10 @@ async function userRebateInfo() { let result = JSON.parse(data); if(logDebug) console.log(result); if(result.code == 200) { - console.log(`【现金余额】:${result.data.currencyBlanceResp.commission}`) - notifyStr += `【现金余额】:${result.data.currencyBlanceResp.commission}\n` + console.log(`【骑士卡号】:${result.data.userPointsResp.cardNo}`) + notifyStr += `【骑士卡号】:${result.data.userPointsResp.cardNo}\n` + console.log(`【现金余额】:${result.data.currencyBlanceResp.commission}元`) + notifyStr += `【现金余额】:${result.data.currencyBlanceResp.commission}元\n` } else { console.log(`查询现金余额失败:${result.msg}`) notifyStr += `查询现金余额失败:${result.msg}\n` @@ -1590,17 +1573,17 @@ async function userTopInfo() { //rndtime = Math.round(new Date().getTime()) return new Promise((resolve) => { let url = { - url: 'https://market.chuxingyouhui.com/promo-bargain-api/activity/mqq/api/indexTopInfo?appId='+blackJSON['appId'], + url: 'https://market.chuxingyouhui.com/promo-bargain-api/activity/mqq/api/indexTopInfo?appId='+blackArr[userIdx]['appId'], headers: { 'Host' : 'market.chuxingyouhui.com', 'Origin' : 'https://m.black-unique.com', 'Accept-Encoding' : 'gzip, deflate, br', 'Connection' : 'keep-alive', - 'black-token' : blackJSON['black-token'], + 'black-token' : blackArr[userIdx]['black-token'], 'Accept' : 'application/json, text/plain, */*', - 'User-Agent' : blackJSON['User-Agent'], + 'User-Agent' : blackArr[userIdx]['User-Agent'], 'Referer' : 'https://m.black-unique.com/', - 'token' : blackJSON['token'], + 'token' : blackArr[userIdx]['token'], 'Accept-Language' : 'zh-CN,zh-Hans;q=0.9', }, }; @@ -1615,8 +1598,8 @@ async function userTopInfo() { let result = JSON.parse(data); if(logDebug) console.log(result); if(result.code == 200) { - console.log(`【勋章余额】:${result.data.score}`) - notifyStr += `【勋章余额】:${result.data.score}\n` + console.log(`【勋章余额】:${result.data.score} ≈ ${result.data.score/10000}元`) + notifyStr += `【勋章余额】:${result.data.score} ≈ ${result.data.score/10000}元\n` } else { console.log(`查询勋章余额失败:${result.msg}`) notifyStr += `查询勋章余额失败:${result.msg}\n` From 7bedc18bbd62058f2eec4ac3a9a580acef50f6e5 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Sun, 12 Dec 2021 22:22:30 +0800 Subject: [PATCH 52/75] Create jrttjsb.js --- jrttjsb.js | 1077 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1077 insertions(+) create mode 100644 jrttjsb.js diff --git a/jrttjsb.js b/jrttjsb.js new file mode 100644 index 0000000..55b3306 --- /dev/null +++ b/jrttjsb.js @@ -0,0 +1,1077 @@ +/* +IOS/安卓: 今日头条极速版 + +老用户每天几毛,新用户可能收益高点 +普通版定时: 1-59/15 6-23 * * * +激进版定时: 1-59/5 * * * * +多用户跑的时间会久一点,自己看着改定时吧 + +V2P重写: +[task_local] +#今日头条极速版 +1-59/15 6-23 * * * https://raw.githubusercontent.com/leafxcy/JavaScript/main/jrttjsb.js.js, tag=今日头条极速版, enabled=true +[rewrite_local] +luckycat/lite/v1/task/page_data url script-request-header https://raw.githubusercontent.com/leafxcy/JavaScript/main/jrttjsb.js +[MITM] +hostname = i.snssdk.com //安卓版 +hostname = api3-normal-lq.toutiaoapi.com //IOS版 + +青龙把极速版捉包里面的cookie放到jrttjsbHeader里,多账户用@隔开 +*/ + +const jsname = '今日头条极速版' +const $ = Env(jsname) +const notifyFlag = 1; //0为关闭通知,1为打开通知,默认为1 +const logDebug = 0 + +//const notify = $.isNode() ? require('./sendNotify') : ''; +let notifyStr = '' + +let rndtime = "" //毫秒 +let httpResult //global buffer + +let curTime = new Date() +let curHour = curTime.getHours() + +let host = 'api3-normal-lq.toutiaoapi.com' +let hostname = 'https://' + host + +let userHeader = ($.isNode() ? process.env.jrttjsbHeader : $.getdata('jrttjsbHeader')) || ''; +let userHeaderArr = [] + +let userIdx = 0 +let userStatus = [] +let maxReadPerRun = 10 +let readList = [] + +let validList = [] +let adIdList = [21, 26, 181, 186, 187, 188, 189, 190, 195, 210, 214, 216, 225, 256, 257, 259, 275, 308, 324, 327, 329] + +/////////////////////////////////////////////////////////////////// + +!(async () => { + + if(typeof $request !== "undefined") + { + await GetRewrite() + } + else + { + if(!(await checkEnv())) { + return + } + + await initAccountInfo() + + await RunMultiUser() + } + + +})() +.catch((e) => $.logErr(e)) +.finally(() => $.done()) + +//通知 +async function showmsg() { + + notifyBody = jsname + "运行通知\n\n" + notifyStr + + if (notifyFlag != 1) { + console.log(notifyBody); + } + + if (notifyFlag == 1) { + $.msg(notifyBody); + //if ($.isNode()){await notify.sendNotify($.name, notifyBody );} + } +} + +async function GetRewrite() { + if($request.url.indexOf('luckycat/lite/v1/task/page_data') > -1) { + let userCK = $request.headers.Cookie + + if(userHeader) { + if(userHeader.indexOf(userCK) == -1) { + userHeader = userHeader + '@' + userCK + $.setdata(userHeader, 'jrttjsbHeader'); + ckList = userHeader.split('@') + $.msg(jsname+` 获取第${ckList.length}个jrttjsbHeader成功: ${userCK}`) + } + } else { + $.setdata(userCK, 'jrttjsbHeader'); + $.msg(jsname+` 获取第1个jrttjsbHeader成功: ${userCK}`) + } + } +} + +async function checkEnv() { + if(userHeader) { + userHeaderArr = userHeader.split('@') + } else { + console.log('未找到jrttjsbHeader') + return false + } + if(userHeaderArr.length == 0) { + console.log('未找到有效的jrttjsbHeader') + return false + } + + console.log(`共找到${userHeaderArr.length}个用户`) + return true +} + +async function initAccountInfo() { + for(userIdx=0; userIdx 0) await GetWalkBonus() + } else { + console.log(`用户${userIdx+1}走路状态失败:${result.err_tips}`) + } +} + +//走路奖励 +async function GetWalkBonus() { + let caller = printCaller() + let nowtime = Math.round(new Date().getTime()/1000) + let url = `${hostname}/luckycat/lite/v1/walk/bonus/?aid=35&update_version_code=82809&os_version=15.0&device_platform=iphone` + let body = `{"task_id":136,"enable_preload_exciting_video":0,"client_time":${nowtime},"rit":"","use_ecpm":0}` + let urlObject = populatePostUrl(url,body) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.err_no == 0) { + console.log(`用户${userIdx+1}领取走路奖励获得${result.data.score_amount}金币`) + } else { + console.log(`用户${userIdx+1}领取走路奖励失败:${result.err_tips}`) + } +} + +//吃饭补贴 +async function DoneEat() { + let caller = printCaller() + let url = `${hostname}/luckycat/lite/v1/eat/done_eat/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populatePostUrl(url) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.err_no == 0) { + console.log(`用户${userIdx+1}领取吃饭补贴获得${result.data.score_amount}金币`) + } else { + console.log(`用户${userIdx+1}领取吃饭补贴失败:${result.err_tips}`) + } +} + +//睡觉状态 +async function QuerySleepStatus() { + let caller = printCaller() + let url = `${hostname}/luckycat/lite/v1/sleep/status/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.err_no == 0) { + let sleepHour = Math.floor(result.data.sleep_last_time/36)/100 + if(result.data.sleeping == true) { + if(sleepHour>=12) { + await SleepStop() + } else if(result.data.sleep_unexchanged_score==result.data.max_coin && curHour >= 7) { + let rnd = Math.random() + if(rnd>0.95) { + await SleepStop() + } else { + console.log(`用户${userIdx+1}随机醒来时间,本次不进行醒来,已经睡了${sleepHour}小时,可以获得${result.data.sleep_unexchanged_score}金币`) + } + } else { + console.log(`用户${userIdx+1}睡眠中,已经睡了${sleepHour}小时,可以获得${result.data.sleep_unexchanged_score}金币,上限${result.data.max_coin}金币`) + } + } else { + if(curHour >= 23 || curHour < 2) { + await SleepStart() + } else if(curHour >= 20) { + let rnd = Math.random() + if(rnd>0.95) { + await SleepStart() + } else { + console.log(`用户${userIdx+1}随机睡眠时间,本次不进行睡眠`) + } + } else { + console.log(`用户${userIdx+1}未到睡觉时间`) + } + } + } else { + console.log(`用户${userIdx+1}查询睡觉状态失败:${result.err_tips}`) + } +} + +//睡觉醒来 +async function SleepStop() { + let caller = printCaller() + let url = `${hostname}/luckycat/lite/v1/sleep/stop/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populatePostUrl(url) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.err_no == 0) { + let sleepHour = result.data.sleep_last_time/3600 + console.log(`用户${userIdx+1}结束睡眠,本次睡了${sleepHour}小时,可以领取${result.data.history_amount}金币`) + await SleepDone(result.data.history_amount) + } else { + console.log(`用户${userIdx+1}结束睡眠失败:${result.err_tips}`) + } +} + +//睡觉收金币 +async function SleepDone(amount) { + let caller = printCaller() + let url = `${hostname}/luckycat/lite/v1/sleep/done_task/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let body = `{"score_amount" : ${amount}}` + let urlObject = populatePostUrl(url,body) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.err_no == 0) { + console.log(`用户${userIdx+1}领取睡觉金币奖励成功`) + } else { + console.log(`用户${userIdx+1}领取睡觉金币奖励失败:${result.err_tips}`) + } +} + +//开始睡觉 +async function SleepStart() { + let caller = printCaller() + let url = `${hostname}/luckycat/lite/v1/sleep/start/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populatePostUrl(url) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.err_no == 0) { + console.log(`用户${userIdx+1}开始睡觉,ZZZzzz...`) + await SleepDone(result.data.history_amount) + } else { + console.log(`用户${userIdx+1}开始睡觉失败:${result.err_tips}`) + } +} + +//查询农场状态 +async function QueryFarmInfo() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/polling_info?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + if(result.data.info.offline_production) { + await FarmOfflineDouble() + } + if(result.data.info.water>=10) { + await FarmWater() + } + if(result.data.info.box_num>0) { + await FarmOpenBox() + } + } else { + console.log(`用户${userIdx+1}查询农场状态失败:${result.message}`) + } +} + +//农场-离线奖励翻倍 +async function FarmOfflineDouble() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/double_reward?watch_ad=1&aid=35` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}农场离线产量翻倍成功`) + } else { + console.log(`用户${userIdx+1}农场离线产量翻倍失败:${result.message}`) + } +} + +//查询农场任务列表 +async function QueryFarmTask() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/daily_task/list?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + for(let item of result.data) { + if(item.status==1) { + await RewardFarmTask(item.task_id) + } + } + } else { + console.log(`用户${userIdx+1}查询农场任务列表失败:${result.message}`) + } +} + +//农场-领取任务奖励 +async function RewardFarmTask(id) { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/reward/task?task_id=${id}&aid=35` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + let typeStr = (result.data.reward_type==1) ? '水滴' : '化肥' + console.log(`用户${userIdx+1}领取农场任务奖励[task_id=${result.data.task_id}]获得${result.data.reward_num}${typeStr},剩余${typeStr}数量${result.data.current_num}`) + } else { + console.log(`用户${userIdx+1}领取农场任务奖励失败:${result.message}`) + } +} + +//农场-浇水 +async function FarmWater() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/land_water?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}农场浇水成功,剩余水滴:${result.data.water}`) + if(result.data.water>=10) { + await $.wait(1500) //min time 1000 + await FarmWater() + } + } else { + console.log(`用户${userIdx+1}农场浇水失败:${result.message}`) + } +} + +//农场-开宝箱 +async function FarmOpenBox() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/box/open?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}开农场宝箱获得${result.data.incr_coin}金币`) + if(result.data.excitation_ad_score_amount>0) await FarmOpenBoxVideo() + } else { + console.log(`用户${userIdx+1}开农场宝箱失败:${result.message}`) + } +} + +//农场-宝箱视频 +async function FarmOpenBoxVideo() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/excitation_ad/add?excitation_ad_score_amount=134&device_id=2392172203611735&aid=35&os_version=15.0&update_version_code=82809` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}看农场宝箱视频获得${result.data.incr_coin}金币`) + } else { + console.log(`用户${userIdx+1}看农场宝箱视频失败:${result.message}`) + } +} + +//农场-签到状态 +async function QueryFarmSignStatus() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/sign_in/list?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + for(let item of result.data.sign) { + if(item.status==1) { + await FarmSign() + break + } + } + } else { + console.log(`用户${userIdx+1}查询签到状态失败:${result.message}`) + } +} + +//农场-签到 +async function FarmSign() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/reward/sign_in?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + let str = (result.data.reward_type==1)?'水滴':'化肥' + console.log(`用户${userIdx+1}签到获得${result.data.reward_num}${str},剩余${str}数量${result.data.cur_reward_num}`) + } else { + console.log(`用户${userIdx+1}签到失败:${result.message}`) + } +} + +//农场-签到视频翻倍 +async function FarmSignDouble() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/reward/double_sign_in?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + let str = (result.data.reward_type==1)?'水滴':'化肥' + console.log(`用户${userIdx+1}签到翻倍获得${result.data.reward_num}{str},剩余${str}数量${result.data.cur_reward_num}`) + } else { + console.log(`用户${userIdx+1}签到翻倍失败:${result.message}`) + } +} + +//农场-土地状态 +async function QueryFarmLandStatus() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/home_info?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + for(let item of result.data.info.lands) { + if(item.status==false && item.unlock_able==true) { + await FarmUnlock(item.land_id) + break + } + } + } else { + console.log(`用户${userIdx+1}查询土地状态失败:${result.message}`) + } +} + +//农场-土地解锁 +async function FarmUnlock(land_id) { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/land/unlock?land_id=${land_id}&aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}解锁${land_id}号土地成功`) + } else { + console.log(`用户${userIdx+1}解锁${land_id}号土地失败:${result.message}`) + } +} + +//种树-签到状态 +async function QueryTreeSignStatus() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/sign_in/list?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + if(result.data.today == false) { + await TreeSign() + } + } else { + console.log(`用户${userIdx+1}查询种树签到状态失败:${result.message}`) + } +} + +//种树-签到 +async function TreeSign() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/sign_in/reward?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}种树签到获得${result.data.reward_item.num}${result.data.reward_item.name}`) + } else { + console.log(`用户${userIdx+1}种树签到失败:${result.message}`) + } +} + +//种树-二选一-选项 +async function QueryTreeChallenge() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/challenge/list?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + let bestChoice = 0 + let maxWater = 0 + for(let item of result.data.tasks) { + if(item.state==0 && item.water_times>maxWater) { + maxWater = item.water_times + bestChoice = item.id + } + } + if(bestChoice>0) await TreeChallengeChoose(bestChoice) + } else { + console.log(`用户${userIdx+1}查询挑战任务失败:${result.message}`) + } +} + +//种树-二选一-选择 +async function TreeChallengeChoose(id) { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/challenge/choose?task_id=${id}&aid=35` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}选择浇水${result.data.red_point.times}次挑战`) + } else { + console.log(`用户${userIdx+1}选择浇水挑战失败:${result.message}`) + } +} + +//种树-二选一-领奖 +async function TreeChallengeReward() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/challenge/reward?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}领取浇水挑战奖励获得${result.data.reward_item.num}金币`) + } else { + console.log(`用户${userIdx+1}领取浇水挑战奖励失败:${result.message}`) + } +} + +//种树-化肥签到 +async function TreeNutrientSign() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/nutrient/sign_in?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + if(result.data.is_rewarded==true) { + console.log(`用户${userIdx+1}种树化肥签到获得${result.data.reward_item.num}{result.data.reward_item.name}`) + } else { + console.log(`用户${userIdx+1}种树化肥签到成功`) + } + } else { + console.log(`用户${userIdx+1}种树化肥签到失败:${result.message}`) + } +} + +//种树-水滴任务列表 +async function QueryTreeWaterTask() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/tasks/list?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + for(let item of result.data.tasks_v2) { + console.log(item) + await TreeWaterReward(item.id) + await $.wait(1500) + } + } else { + console.log(`用户${userIdx+1}查询种树水滴任务列表失败:${result.message}`) + } +} + +//种树-水滴领奖 +async function TreeWaterReward(task_id) { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/tasks/reward?task_id=${task_id}&do_action=0&aid=35` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}领取水滴任务[id=${task_id}]获得${result.data.reward_item.num}${result.data.reward_item.name}`) + } else { + console.log(`用户${userIdx+1}领取水滴任务[id=${task_id}]失败:${result.message}`) + } +} + +//种树-浇水 +async function TreeWater() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/tree/water?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}种树浇水成功,剩余水滴:${result.data.kettle.water_num}`) + if(result.data.kettle.water_num>=100) { + await $.wait(1500) //min time 1000 + await TreeWaterTenTimes() + } else if(result.data.kettle.water_num>=10) { + await $.wait(1500) //min time 1000 + await TreeWater() + } + } else { + console.log(`用户${userIdx+1}种树浇水失败:${result.message}`) + } +} + +//种树-浇水10次 +async function TreeWaterTenTimes() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/tree/tenfold_water?times=10&aid=35` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}种树浇水10次成功,剩余水滴:${result.data.kettle.water_num}`) + if(result.data.kettle.water_num>=100) { + await $.wait(1500) //min time 1000 + await TreeWaterTenTimes() + } else if(result.data.kettle.water_num>=10) { + await $.wait(1500) //min time 1000 + await TreeWater() + } + } else { + console.log(`用户${userIdx+1}种树浇水失败:${result.message}`) + } +} + +//种树-信息 +async function QueryTreeStatus() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/polling_info?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + if(result.data.red_points.challenge && result.data.red_points.challenge.state==4) { + await TreeChallengeReward() + } + if(result.data.red_points.box && result.data.red_points.box.rounds>0 && result.data.red_points.box.state==4) { + await TreeOpenBox() + } + if(result.data.kettle.water_num >= 100) { + await TreeWaterTenTimes() + } else if(result.data.kettle.water_num>=10) { + await TreeWater() + } + } else { + console.log(`用户${userIdx+1}查询种树信息失败:${result.message}`) + } +} + +//种树-开宝箱 +async function TreeOpenBox() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/box2/open?watch_ad=0&aid=35` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}种树开宝箱获得${result.data.incr_coin}金币`) + } else { + console.log(`用户${userIdx+1}种树开宝箱失败:${result.message}`) + } +} +//////////////////////////////////////////////////////////////////// +function populatePostUrl(url,reqBody=''){ + let timeInMS = Math.round(new Date().getTime()) + let timeInSecond = Math.floor(timeInMS/1000) + let urlObject = { + url: url, + headers: { + 'Host' : host, + 'X-SS-REQ-TICKET' : timeInMS, + 'X-Khronos': timeInSecond, + 'Connection' : 'keep-alive', + 'Accept' : 'application/json', + 'Cookie' : userHeaderArr[userIdx], + 'Content-Type' : 'application/json', + 'User-Agent' : 'Dalvik/2.1.0 (Linux; U; Android 7.1.2; iPhone13,2 Build/HUAWEIiPhone13,2) NewsArticle/8.2.8 tt-ok/3.10.0.2', + 'Accept-Encoding' : 'gzip, deflate', + }, + body: reqBody + } + return urlObject; +} + +function populateGetUrl(url){ + let timeInMS = Math.round(new Date().getTime()) + let timeInSecond = Math.floor(timeInMS/1000) + let urlObject = { + url: url, + headers: { + 'Host' : host, + 'X-SS-REQ-TICKET' : timeInMS, + 'X-Khronos': timeInSecond, + 'Connection' : 'keep-alive', + 'Accept' : 'application/json', + 'Cookie' : userHeaderArr[userIdx], + 'Content-Type' : 'application/json', + 'User-Agent' : 'Dalvik/2.1.0 (Linux; U; Android 7.1.2; iPhone13,2 Build/HUAWEIiPhone13,2) NewsArticle/8.2.8 tt-ok/3.10.0.2', + 'Accept-Encoding' : 'gzip, deflate', + } + } + return urlObject; +} + +async function httpPost(url,caller) { + httpResult = null + return new Promise((resolve) => { + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": post请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + httpResult = JSON.parse(data); + if(logDebug) console.log(httpResult); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +async function httpGet(url,caller) { + httpResult = null + return new Promise((resolve) => { + $.get(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": get请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data,caller)) { + httpResult = JSON.parse(data); + if(logDebug) console.log(httpResult); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function safeGet(data,caller) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } else { + console.log(`Function ${caller}: 未知错误`); + console.log(data) + } + } catch (e) { + console.log(e); + console.log(`Function ${caller}: 服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function printCaller(){ + return (new Error()).stack.split("\n")[2].trim().split(" ")[1] +} + +function getMin(a,b){ + return ((a { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `\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 } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), a = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(a, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t) { let e = { "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 s in e) new RegExp("(" + s + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))); let h = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; h.push(e), s && h.push(s), i && h.push(i), console.log(h.join("\n")), this.logs = this.logs.concat(h) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } From 80784d0d3384ac7fb548fb72535109c817ddd1c7 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Sun, 12 Dec 2021 22:24:24 +0800 Subject: [PATCH 53/75] Update jrttjsb.js --- jrttjsb.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/jrttjsb.js b/jrttjsb.js index 55b3306..56f15bb 100644 --- a/jrttjsb.js +++ b/jrttjsb.js @@ -1,5 +1,6 @@ /* IOS/安卓: 今日头条极速版 +邀请码: 1173836876 老用户每天几毛,新用户可能收益高点 普通版定时: 1-59/15 6-23 * * * @@ -45,7 +46,7 @@ let maxReadPerRun = 10 let readList = [] let validList = [] -let adIdList = [21, 26, 181, 186, 187, 188, 189, 190, 195, 210, 214, 216, 225, 256, 257, 259, 275, 308, 324, 327, 329] +let adIdList = [26, 181, 186, 187, 188, 189, 190, 195, 210, 214, 216, 225, 256, 257, 259, 275, 308, 324, 327, 329] /////////////////////////////////////////////////////////////////// From a4bf9421de462c2fcab0326212244ae9ab9b1d53 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Sun, 12 Dec 2021 22:25:35 +0800 Subject: [PATCH 54/75] Delete jrttjsb.js --- jrttjsb.js | 1078 ---------------------------------------------------- 1 file changed, 1078 deletions(-) delete mode 100644 jrttjsb.js diff --git a/jrttjsb.js b/jrttjsb.js deleted file mode 100644 index 56f15bb..0000000 --- a/jrttjsb.js +++ /dev/null @@ -1,1078 +0,0 @@ -/* -IOS/安卓: 今日头条极速版 -邀请码: 1173836876 - -老用户每天几毛,新用户可能收益高点 -普通版定时: 1-59/15 6-23 * * * -激进版定时: 1-59/5 * * * * -多用户跑的时间会久一点,自己看着改定时吧 - -V2P重写: -[task_local] -#今日头条极速版 -1-59/15 6-23 * * * https://raw.githubusercontent.com/leafxcy/JavaScript/main/jrttjsb.js.js, tag=今日头条极速版, enabled=true -[rewrite_local] -luckycat/lite/v1/task/page_data url script-request-header https://raw.githubusercontent.com/leafxcy/JavaScript/main/jrttjsb.js -[MITM] -hostname = i.snssdk.com //安卓版 -hostname = api3-normal-lq.toutiaoapi.com //IOS版 - -青龙把极速版捉包里面的cookie放到jrttjsbHeader里,多账户用@隔开 -*/ - -const jsname = '今日头条极速版' -const $ = Env(jsname) -const notifyFlag = 1; //0为关闭通知,1为打开通知,默认为1 -const logDebug = 0 - -//const notify = $.isNode() ? require('./sendNotify') : ''; -let notifyStr = '' - -let rndtime = "" //毫秒 -let httpResult //global buffer - -let curTime = new Date() -let curHour = curTime.getHours() - -let host = 'api3-normal-lq.toutiaoapi.com' -let hostname = 'https://' + host - -let userHeader = ($.isNode() ? process.env.jrttjsbHeader : $.getdata('jrttjsbHeader')) || ''; -let userHeaderArr = [] - -let userIdx = 0 -let userStatus = [] -let maxReadPerRun = 10 -let readList = [] - -let validList = [] -let adIdList = [26, 181, 186, 187, 188, 189, 190, 195, 210, 214, 216, 225, 256, 257, 259, 275, 308, 324, 327, 329] - -/////////////////////////////////////////////////////////////////// - -!(async () => { - - if(typeof $request !== "undefined") - { - await GetRewrite() - } - else - { - if(!(await checkEnv())) { - return - } - - await initAccountInfo() - - await RunMultiUser() - } - - -})() -.catch((e) => $.logErr(e)) -.finally(() => $.done()) - -//通知 -async function showmsg() { - - notifyBody = jsname + "运行通知\n\n" + notifyStr - - if (notifyFlag != 1) { - console.log(notifyBody); - } - - if (notifyFlag == 1) { - $.msg(notifyBody); - //if ($.isNode()){await notify.sendNotify($.name, notifyBody );} - } -} - -async function GetRewrite() { - if($request.url.indexOf('luckycat/lite/v1/task/page_data') > -1) { - let userCK = $request.headers.Cookie - - if(userHeader) { - if(userHeader.indexOf(userCK) == -1) { - userHeader = userHeader + '@' + userCK - $.setdata(userHeader, 'jrttjsbHeader'); - ckList = userHeader.split('@') - $.msg(jsname+` 获取第${ckList.length}个jrttjsbHeader成功: ${userCK}`) - } - } else { - $.setdata(userCK, 'jrttjsbHeader'); - $.msg(jsname+` 获取第1个jrttjsbHeader成功: ${userCK}`) - } - } -} - -async function checkEnv() { - if(userHeader) { - userHeaderArr = userHeader.split('@') - } else { - console.log('未找到jrttjsbHeader') - return false - } - if(userHeaderArr.length == 0) { - console.log('未找到有效的jrttjsbHeader') - return false - } - - console.log(`共找到${userHeaderArr.length}个用户`) - return true -} - -async function initAccountInfo() { - for(userIdx=0; userIdx 0) await GetWalkBonus() - } else { - console.log(`用户${userIdx+1}走路状态失败:${result.err_tips}`) - } -} - -//走路奖励 -async function GetWalkBonus() { - let caller = printCaller() - let nowtime = Math.round(new Date().getTime()/1000) - let url = `${hostname}/luckycat/lite/v1/walk/bonus/?aid=35&update_version_code=82809&os_version=15.0&device_platform=iphone` - let body = `{"task_id":136,"enable_preload_exciting_video":0,"client_time":${nowtime},"rit":"","use_ecpm":0}` - let urlObject = populatePostUrl(url,body) - await httpPost(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.err_no == 0) { - console.log(`用户${userIdx+1}领取走路奖励获得${result.data.score_amount}金币`) - } else { - console.log(`用户${userIdx+1}领取走路奖励失败:${result.err_tips}`) - } -} - -//吃饭补贴 -async function DoneEat() { - let caller = printCaller() - let url = `${hostname}/luckycat/lite/v1/eat/done_eat/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` - let urlObject = populatePostUrl(url) - await httpPost(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.err_no == 0) { - console.log(`用户${userIdx+1}领取吃饭补贴获得${result.data.score_amount}金币`) - } else { - console.log(`用户${userIdx+1}领取吃饭补贴失败:${result.err_tips}`) - } -} - -//睡觉状态 -async function QuerySleepStatus() { - let caller = printCaller() - let url = `${hostname}/luckycat/lite/v1/sleep/status/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.err_no == 0) { - let sleepHour = Math.floor(result.data.sleep_last_time/36)/100 - if(result.data.sleeping == true) { - if(sleepHour>=12) { - await SleepStop() - } else if(result.data.sleep_unexchanged_score==result.data.max_coin && curHour >= 7) { - let rnd = Math.random() - if(rnd>0.95) { - await SleepStop() - } else { - console.log(`用户${userIdx+1}随机醒来时间,本次不进行醒来,已经睡了${sleepHour}小时,可以获得${result.data.sleep_unexchanged_score}金币`) - } - } else { - console.log(`用户${userIdx+1}睡眠中,已经睡了${sleepHour}小时,可以获得${result.data.sleep_unexchanged_score}金币,上限${result.data.max_coin}金币`) - } - } else { - if(curHour >= 23 || curHour < 2) { - await SleepStart() - } else if(curHour >= 20) { - let rnd = Math.random() - if(rnd>0.95) { - await SleepStart() - } else { - console.log(`用户${userIdx+1}随机睡眠时间,本次不进行睡眠`) - } - } else { - console.log(`用户${userIdx+1}未到睡觉时间`) - } - } - } else { - console.log(`用户${userIdx+1}查询睡觉状态失败:${result.err_tips}`) - } -} - -//睡觉醒来 -async function SleepStop() { - let caller = printCaller() - let url = `${hostname}/luckycat/lite/v1/sleep/stop/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` - let urlObject = populatePostUrl(url) - await httpPost(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.err_no == 0) { - let sleepHour = result.data.sleep_last_time/3600 - console.log(`用户${userIdx+1}结束睡眠,本次睡了${sleepHour}小时,可以领取${result.data.history_amount}金币`) - await SleepDone(result.data.history_amount) - } else { - console.log(`用户${userIdx+1}结束睡眠失败:${result.err_tips}`) - } -} - -//睡觉收金币 -async function SleepDone(amount) { - let caller = printCaller() - let url = `${hostname}/luckycat/lite/v1/sleep/done_task/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` - let body = `{"score_amount" : ${amount}}` - let urlObject = populatePostUrl(url,body) - await httpPost(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.err_no == 0) { - console.log(`用户${userIdx+1}领取睡觉金币奖励成功`) - } else { - console.log(`用户${userIdx+1}领取睡觉金币奖励失败:${result.err_tips}`) - } -} - -//开始睡觉 -async function SleepStart() { - let caller = printCaller() - let url = `${hostname}/luckycat/lite/v1/sleep/start/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` - let urlObject = populatePostUrl(url) - await httpPost(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.err_no == 0) { - console.log(`用户${userIdx+1}开始睡觉,ZZZzzz...`) - await SleepDone(result.data.history_amount) - } else { - console.log(`用户${userIdx+1}开始睡觉失败:${result.err_tips}`) - } -} - -//查询农场状态 -async function QueryFarmInfo() { - let caller = printCaller() - let url = `${hostname}/ttgame/game_farm/polling_info?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - if(result.data.info.offline_production) { - await FarmOfflineDouble() - } - if(result.data.info.water>=10) { - await FarmWater() - } - if(result.data.info.box_num>0) { - await FarmOpenBox() - } - } else { - console.log(`用户${userIdx+1}查询农场状态失败:${result.message}`) - } -} - -//农场-离线奖励翻倍 -async function FarmOfflineDouble() { - let caller = printCaller() - let url = `${hostname}/ttgame/game_farm/double_reward?watch_ad=1&aid=35` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - console.log(`用户${userIdx+1}农场离线产量翻倍成功`) - } else { - console.log(`用户${userIdx+1}农场离线产量翻倍失败:${result.message}`) - } -} - -//查询农场任务列表 -async function QueryFarmTask() { - let caller = printCaller() - let url = `${hostname}/ttgame/game_farm/daily_task/list?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - for(let item of result.data) { - if(item.status==1) { - await RewardFarmTask(item.task_id) - } - } - } else { - console.log(`用户${userIdx+1}查询农场任务列表失败:${result.message}`) - } -} - -//农场-领取任务奖励 -async function RewardFarmTask(id) { - let caller = printCaller() - let url = `${hostname}/ttgame/game_farm/reward/task?task_id=${id}&aid=35` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - let typeStr = (result.data.reward_type==1) ? '水滴' : '化肥' - console.log(`用户${userIdx+1}领取农场任务奖励[task_id=${result.data.task_id}]获得${result.data.reward_num}${typeStr},剩余${typeStr}数量${result.data.current_num}`) - } else { - console.log(`用户${userIdx+1}领取农场任务奖励失败:${result.message}`) - } -} - -//农场-浇水 -async function FarmWater() { - let caller = printCaller() - let url = `${hostname}/ttgame/game_farm/land_water?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - console.log(`用户${userIdx+1}农场浇水成功,剩余水滴:${result.data.water}`) - if(result.data.water>=10) { - await $.wait(1500) //min time 1000 - await FarmWater() - } - } else { - console.log(`用户${userIdx+1}农场浇水失败:${result.message}`) - } -} - -//农场-开宝箱 -async function FarmOpenBox() { - let caller = printCaller() - let url = `${hostname}/ttgame/game_farm/box/open?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - console.log(`用户${userIdx+1}开农场宝箱获得${result.data.incr_coin}金币`) - if(result.data.excitation_ad_score_amount>0) await FarmOpenBoxVideo() - } else { - console.log(`用户${userIdx+1}开农场宝箱失败:${result.message}`) - } -} - -//农场-宝箱视频 -async function FarmOpenBoxVideo() { - let caller = printCaller() - let url = `${hostname}/ttgame/game_farm/excitation_ad/add?excitation_ad_score_amount=134&device_id=2392172203611735&aid=35&os_version=15.0&update_version_code=82809` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - console.log(`用户${userIdx+1}看农场宝箱视频获得${result.data.incr_coin}金币`) - } else { - console.log(`用户${userIdx+1}看农场宝箱视频失败:${result.message}`) - } -} - -//农场-签到状态 -async function QueryFarmSignStatus() { - let caller = printCaller() - let url = `${hostname}/ttgame/game_farm/sign_in/list?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - for(let item of result.data.sign) { - if(item.status==1) { - await FarmSign() - break - } - } - } else { - console.log(`用户${userIdx+1}查询签到状态失败:${result.message}`) - } -} - -//农场-签到 -async function FarmSign() { - let caller = printCaller() - let url = `${hostname}/ttgame/game_farm/reward/sign_in?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - let str = (result.data.reward_type==1)?'水滴':'化肥' - console.log(`用户${userIdx+1}签到获得${result.data.reward_num}${str},剩余${str}数量${result.data.cur_reward_num}`) - } else { - console.log(`用户${userIdx+1}签到失败:${result.message}`) - } -} - -//农场-签到视频翻倍 -async function FarmSignDouble() { - let caller = printCaller() - let url = `${hostname}/ttgame/game_farm/reward/double_sign_in?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - let str = (result.data.reward_type==1)?'水滴':'化肥' - console.log(`用户${userIdx+1}签到翻倍获得${result.data.reward_num}{str},剩余${str}数量${result.data.cur_reward_num}`) - } else { - console.log(`用户${userIdx+1}签到翻倍失败:${result.message}`) - } -} - -//农场-土地状态 -async function QueryFarmLandStatus() { - let caller = printCaller() - let url = `${hostname}/ttgame/game_farm/home_info?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - for(let item of result.data.info.lands) { - if(item.status==false && item.unlock_able==true) { - await FarmUnlock(item.land_id) - break - } - } - } else { - console.log(`用户${userIdx+1}查询土地状态失败:${result.message}`) - } -} - -//农场-土地解锁 -async function FarmUnlock(land_id) { - let caller = printCaller() - let url = `${hostname}/ttgame/game_farm/land/unlock?land_id=${land_id}&aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - console.log(`用户${userIdx+1}解锁${land_id}号土地成功`) - } else { - console.log(`用户${userIdx+1}解锁${land_id}号土地失败:${result.message}`) - } -} - -//种树-签到状态 -async function QueryTreeSignStatus() { - let caller = printCaller() - let url = `${hostname}/ttgame/game_orchard/sign_in/list?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - if(result.data.today == false) { - await TreeSign() - } - } else { - console.log(`用户${userIdx+1}查询种树签到状态失败:${result.message}`) - } -} - -//种树-签到 -async function TreeSign() { - let caller = printCaller() - let url = `${hostname}/ttgame/game_orchard/sign_in/reward?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - console.log(`用户${userIdx+1}种树签到获得${result.data.reward_item.num}${result.data.reward_item.name}`) - } else { - console.log(`用户${userIdx+1}种树签到失败:${result.message}`) - } -} - -//种树-二选一-选项 -async function QueryTreeChallenge() { - let caller = printCaller() - let url = `${hostname}/ttgame/game_orchard/challenge/list?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - let bestChoice = 0 - let maxWater = 0 - for(let item of result.data.tasks) { - if(item.state==0 && item.water_times>maxWater) { - maxWater = item.water_times - bestChoice = item.id - } - } - if(bestChoice>0) await TreeChallengeChoose(bestChoice) - } else { - console.log(`用户${userIdx+1}查询挑战任务失败:${result.message}`) - } -} - -//种树-二选一-选择 -async function TreeChallengeChoose(id) { - let caller = printCaller() - let url = `${hostname}/ttgame/game_orchard/challenge/choose?task_id=${id}&aid=35` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - console.log(`用户${userIdx+1}选择浇水${result.data.red_point.times}次挑战`) - } else { - console.log(`用户${userIdx+1}选择浇水挑战失败:${result.message}`) - } -} - -//种树-二选一-领奖 -async function TreeChallengeReward() { - let caller = printCaller() - let url = `${hostname}/ttgame/game_orchard/challenge/reward?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - console.log(`用户${userIdx+1}领取浇水挑战奖励获得${result.data.reward_item.num}金币`) - } else { - console.log(`用户${userIdx+1}领取浇水挑战奖励失败:${result.message}`) - } -} - -//种树-化肥签到 -async function TreeNutrientSign() { - let caller = printCaller() - let url = `${hostname}/ttgame/game_orchard/nutrient/sign_in?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - if(result.data.is_rewarded==true) { - console.log(`用户${userIdx+1}种树化肥签到获得${result.data.reward_item.num}{result.data.reward_item.name}`) - } else { - console.log(`用户${userIdx+1}种树化肥签到成功`) - } - } else { - console.log(`用户${userIdx+1}种树化肥签到失败:${result.message}`) - } -} - -//种树-水滴任务列表 -async function QueryTreeWaterTask() { - let caller = printCaller() - let url = `${hostname}/ttgame/game_orchard/tasks/list?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - for(let item of result.data.tasks_v2) { - console.log(item) - await TreeWaterReward(item.id) - await $.wait(1500) - } - } else { - console.log(`用户${userIdx+1}查询种树水滴任务列表失败:${result.message}`) - } -} - -//种树-水滴领奖 -async function TreeWaterReward(task_id) { - let caller = printCaller() - let url = `${hostname}/ttgame/game_orchard/tasks/reward?task_id=${task_id}&do_action=0&aid=35` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - console.log(`用户${userIdx+1}领取水滴任务[id=${task_id}]获得${result.data.reward_item.num}${result.data.reward_item.name}`) - } else { - console.log(`用户${userIdx+1}领取水滴任务[id=${task_id}]失败:${result.message}`) - } -} - -//种树-浇水 -async function TreeWater() { - let caller = printCaller() - let url = `${hostname}/ttgame/game_orchard/tree/water?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - console.log(`用户${userIdx+1}种树浇水成功,剩余水滴:${result.data.kettle.water_num}`) - if(result.data.kettle.water_num>=100) { - await $.wait(1500) //min time 1000 - await TreeWaterTenTimes() - } else if(result.data.kettle.water_num>=10) { - await $.wait(1500) //min time 1000 - await TreeWater() - } - } else { - console.log(`用户${userIdx+1}种树浇水失败:${result.message}`) - } -} - -//种树-浇水10次 -async function TreeWaterTenTimes() { - let caller = printCaller() - let url = `${hostname}/ttgame/game_orchard/tree/tenfold_water?times=10&aid=35` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - console.log(`用户${userIdx+1}种树浇水10次成功,剩余水滴:${result.data.kettle.water_num}`) - if(result.data.kettle.water_num>=100) { - await $.wait(1500) //min time 1000 - await TreeWaterTenTimes() - } else if(result.data.kettle.water_num>=10) { - await $.wait(1500) //min time 1000 - await TreeWater() - } - } else { - console.log(`用户${userIdx+1}种树浇水失败:${result.message}`) - } -} - -//种树-信息 -async function QueryTreeStatus() { - let caller = printCaller() - let url = `${hostname}/ttgame/game_orchard/polling_info?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - if(result.data.red_points.challenge && result.data.red_points.challenge.state==4) { - await TreeChallengeReward() - } - if(result.data.red_points.box && result.data.red_points.box.rounds>0 && result.data.red_points.box.state==4) { - await TreeOpenBox() - } - if(result.data.kettle.water_num >= 100) { - await TreeWaterTenTimes() - } else if(result.data.kettle.water_num>=10) { - await TreeWater() - } - } else { - console.log(`用户${userIdx+1}查询种树信息失败:${result.message}`) - } -} - -//种树-开宝箱 -async function TreeOpenBox() { - let caller = printCaller() - let url = `${hostname}/ttgame/game_orchard/box2/open?watch_ad=0&aid=35` - let urlObject = populateGetUrl(url) - await httpGet(urlObject,caller) - let result = httpResult; - if(!result) return - //console.log(result) - if(result.status_code == 0) { - console.log(`用户${userIdx+1}种树开宝箱获得${result.data.incr_coin}金币`) - } else { - console.log(`用户${userIdx+1}种树开宝箱失败:${result.message}`) - } -} -//////////////////////////////////////////////////////////////////// -function populatePostUrl(url,reqBody=''){ - let timeInMS = Math.round(new Date().getTime()) - let timeInSecond = Math.floor(timeInMS/1000) - let urlObject = { - url: url, - headers: { - 'Host' : host, - 'X-SS-REQ-TICKET' : timeInMS, - 'X-Khronos': timeInSecond, - 'Connection' : 'keep-alive', - 'Accept' : 'application/json', - 'Cookie' : userHeaderArr[userIdx], - 'Content-Type' : 'application/json', - 'User-Agent' : 'Dalvik/2.1.0 (Linux; U; Android 7.1.2; iPhone13,2 Build/HUAWEIiPhone13,2) NewsArticle/8.2.8 tt-ok/3.10.0.2', - 'Accept-Encoding' : 'gzip, deflate', - }, - body: reqBody - } - return urlObject; -} - -function populateGetUrl(url){ - let timeInMS = Math.round(new Date().getTime()) - let timeInSecond = Math.floor(timeInMS/1000) - let urlObject = { - url: url, - headers: { - 'Host' : host, - 'X-SS-REQ-TICKET' : timeInMS, - 'X-Khronos': timeInSecond, - 'Connection' : 'keep-alive', - 'Accept' : 'application/json', - 'Cookie' : userHeaderArr[userIdx], - 'Content-Type' : 'application/json', - 'User-Agent' : 'Dalvik/2.1.0 (Linux; U; Android 7.1.2; iPhone13,2 Build/HUAWEIiPhone13,2) NewsArticle/8.2.8 tt-ok/3.10.0.2', - 'Accept-Encoding' : 'gzip, deflate', - } - } - return urlObject; -} - -async function httpPost(url,caller) { - httpResult = null - return new Promise((resolve) => { - $.post(url, async (err, resp, data) => { - try { - if (err) { - console.log(caller + ": post请求失败"); - console.log(JSON.stringify(err)); - $.logErr(err); - } else { - if (safeGet(data)) { - httpResult = JSON.parse(data); - if(logDebug) console.log(httpResult); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }); - }); -} - -async function httpGet(url,caller) { - httpResult = null - return new Promise((resolve) => { - $.get(url, async (err, resp, data) => { - try { - if (err) { - console.log(caller + ": get请求失败"); - console.log(JSON.stringify(err)); - $.logErr(err); - } else { - if (safeGet(data,caller)) { - httpResult = JSON.parse(data); - if(logDebug) console.log(httpResult); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }); - }); -} - -function safeGet(data,caller) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } else { - console.log(`Function ${caller}: 未知错误`); - console.log(data) - } - } catch (e) { - console.log(e); - console.log(`Function ${caller}: 服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} - -function printCaller(){ - return (new Error()).stack.split("\n")[2].trim().split(" ")[1] -} - -function getMin(a,b){ - return ((a { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `\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 } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), a = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(a, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t) { let e = { "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 s in e) new RegExp("(" + s + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))); let h = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; h.push(e), s && h.push(s), i && h.push(i), console.log(h.join("\n")), this.logs = this.logs.concat(h) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } From 26c6d01c7c93539bf7a01f580e1e384c999a4239 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Sun, 12 Dec 2021 22:25:55 +0800 Subject: [PATCH 55/75] Create jrttjsb.js --- jrttjsb.js | 1078 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1078 insertions(+) create mode 100644 jrttjsb.js diff --git a/jrttjsb.js b/jrttjsb.js new file mode 100644 index 0000000..c5b7264 --- /dev/null +++ b/jrttjsb.js @@ -0,0 +1,1078 @@ +/* +IOS/安卓: 今日头条极速版 +邀请码: 1173836876 + +老用户每天几毛,新用户可能收益高点 +普通版定时: 1-59/15 6-23 * * * +激进版定时: 1-59/5 * * * * +多用户跑的时间会久一点,自己看着改定时吧 + +V2P重写: +[task_local] +#今日头条极速版 +1-59/15 6-23 * * * https://raw.githubusercontent.com/leafxcy/JavaScript/main/jrttjsb.js, tag=今日头条极速版, enabled=true +[rewrite_local] +luckycat/lite/v1/task/page_data url script-request-header https://raw.githubusercontent.com/leafxcy/JavaScript/main/jrttjsb.js +[MITM] +hostname = i.snssdk.com //安卓版 +hostname = api3-normal-lq.toutiaoapi.com //IOS版 + +青龙把极速版捉包里面的cookie放到jrttjsbHeader里,多账户用@隔开 +*/ + +const jsname = '今日头条极速版' +const $ = Env(jsname) +const notifyFlag = 1; //0为关闭通知,1为打开通知,默认为1 +const logDebug = 0 + +//const notify = $.isNode() ? require('./sendNotify') : ''; +let notifyStr = '' + +let rndtime = "" //毫秒 +let httpResult //global buffer + +let curTime = new Date() +let curHour = curTime.getHours() + +let host = 'api3-normal-lq.toutiaoapi.com' +let hostname = 'https://' + host + +let userHeader = ($.isNode() ? process.env.jrttjsbHeader : $.getdata('jrttjsbHeader')) || ''; +let userHeaderArr = [] + +let userIdx = 0 +let userStatus = [] +let maxReadPerRun = 10 +let readList = [] + +let validList = [] +let adIdList = [26, 181, 186, 187, 188, 189, 190, 195, 210, 214, 216, 225, 256, 257, 259, 275, 308, 324, 327, 329] + +/////////////////////////////////////////////////////////////////// + +!(async () => { + + if(typeof $request !== "undefined") + { + await GetRewrite() + } + else + { + if(!(await checkEnv())) { + return + } + + await initAccountInfo() + + await RunMultiUser() + } + + +})() +.catch((e) => $.logErr(e)) +.finally(() => $.done()) + +//通知 +async function showmsg() { + + notifyBody = jsname + "运行通知\n\n" + notifyStr + + if (notifyFlag != 1) { + console.log(notifyBody); + } + + if (notifyFlag == 1) { + $.msg(notifyBody); + //if ($.isNode()){await notify.sendNotify($.name, notifyBody );} + } +} + +async function GetRewrite() { + if($request.url.indexOf('luckycat/lite/v1/task/page_data') > -1) { + let userCK = $request.headers.Cookie + + if(userHeader) { + if(userHeader.indexOf(userCK) == -1) { + userHeader = userHeader + '@' + userCK + $.setdata(userHeader, 'jrttjsbHeader'); + ckList = userHeader.split('@') + $.msg(jsname+` 获取第${ckList.length}个jrttjsbHeader成功: ${userCK}`) + } + } else { + $.setdata(userCK, 'jrttjsbHeader'); + $.msg(jsname+` 获取第1个jrttjsbHeader成功: ${userCK}`) + } + } +} + +async function checkEnv() { + if(userHeader) { + userHeaderArr = userHeader.split('@') + } else { + console.log('未找到jrttjsbHeader') + return false + } + if(userHeaderArr.length == 0) { + console.log('未找到有效的jrttjsbHeader') + return false + } + + console.log(`共找到${userHeaderArr.length}个用户`) + return true +} + +async function initAccountInfo() { + for(userIdx=0; userIdx 0) await GetWalkBonus() + } else { + console.log(`用户${userIdx+1}走路状态失败:${result.err_tips}`) + } +} + +//走路奖励 +async function GetWalkBonus() { + let caller = printCaller() + let nowtime = Math.round(new Date().getTime()/1000) + let url = `${hostname}/luckycat/lite/v1/walk/bonus/?aid=35&update_version_code=82809&os_version=15.0&device_platform=iphone` + let body = `{"task_id":136,"enable_preload_exciting_video":0,"client_time":${nowtime},"rit":"","use_ecpm":0}` + let urlObject = populatePostUrl(url,body) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.err_no == 0) { + console.log(`用户${userIdx+1}领取走路奖励获得${result.data.score_amount}金币`) + } else { + console.log(`用户${userIdx+1}领取走路奖励失败:${result.err_tips}`) + } +} + +//吃饭补贴 +async function DoneEat() { + let caller = printCaller() + let url = `${hostname}/luckycat/lite/v1/eat/done_eat/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populatePostUrl(url) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.err_no == 0) { + console.log(`用户${userIdx+1}领取吃饭补贴获得${result.data.score_amount}金币`) + } else { + console.log(`用户${userIdx+1}领取吃饭补贴失败:${result.err_tips}`) + } +} + +//睡觉状态 +async function QuerySleepStatus() { + let caller = printCaller() + let url = `${hostname}/luckycat/lite/v1/sleep/status/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.err_no == 0) { + let sleepHour = Math.floor(result.data.sleep_last_time/36)/100 + if(result.data.sleeping == true) { + if(sleepHour>=12) { + await SleepStop() + } else if(result.data.sleep_unexchanged_score==result.data.max_coin && curHour >= 7) { + let rnd = Math.random() + if(rnd>0.95) { + await SleepStop() + } else { + console.log(`用户${userIdx+1}随机醒来时间,本次不进行醒来,已经睡了${sleepHour}小时,可以获得${result.data.sleep_unexchanged_score}金币`) + } + } else { + console.log(`用户${userIdx+1}睡眠中,已经睡了${sleepHour}小时,可以获得${result.data.sleep_unexchanged_score}金币,上限${result.data.max_coin}金币`) + } + } else { + if(curHour >= 23 || curHour < 2) { + await SleepStart() + } else if(curHour >= 20) { + let rnd = Math.random() + if(rnd>0.95) { + await SleepStart() + } else { + console.log(`用户${userIdx+1}随机睡眠时间,本次不进行睡眠`) + } + } else { + console.log(`用户${userIdx+1}未到睡觉时间`) + } + } + } else { + console.log(`用户${userIdx+1}查询睡觉状态失败:${result.err_tips}`) + } +} + +//睡觉醒来 +async function SleepStop() { + let caller = printCaller() + let url = `${hostname}/luckycat/lite/v1/sleep/stop/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populatePostUrl(url) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.err_no == 0) { + let sleepHour = result.data.sleep_last_time/3600 + console.log(`用户${userIdx+1}结束睡眠,本次睡了${sleepHour}小时,可以领取${result.data.history_amount}金币`) + await SleepDone(result.data.history_amount) + } else { + console.log(`用户${userIdx+1}结束睡眠失败:${result.err_tips}`) + } +} + +//睡觉收金币 +async function SleepDone(amount) { + let caller = printCaller() + let url = `${hostname}/luckycat/lite/v1/sleep/done_task/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let body = `{"score_amount" : ${amount}}` + let urlObject = populatePostUrl(url,body) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.err_no == 0) { + console.log(`用户${userIdx+1}领取睡觉金币奖励成功`) + } else { + console.log(`用户${userIdx+1}领取睡觉金币奖励失败:${result.err_tips}`) + } +} + +//开始睡觉 +async function SleepStart() { + let caller = printCaller() + let url = `${hostname}/luckycat/lite/v1/sleep/start/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populatePostUrl(url) + await httpPost(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.err_no == 0) { + console.log(`用户${userIdx+1}开始睡觉,ZZZzzz...`) + await SleepDone(result.data.history_amount) + } else { + console.log(`用户${userIdx+1}开始睡觉失败:${result.err_tips}`) + } +} + +//查询农场状态 +async function QueryFarmInfo() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/polling_info?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + if(result.data.info.offline_production) { + await FarmOfflineDouble() + } + if(result.data.info.water>=10) { + await FarmWater() + } + if(result.data.info.box_num>0) { + await FarmOpenBox() + } + } else { + console.log(`用户${userIdx+1}查询农场状态失败:${result.message}`) + } +} + +//农场-离线奖励翻倍 +async function FarmOfflineDouble() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/double_reward?watch_ad=1&aid=35` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}农场离线产量翻倍成功`) + } else { + console.log(`用户${userIdx+1}农场离线产量翻倍失败:${result.message}`) + } +} + +//查询农场任务列表 +async function QueryFarmTask() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/daily_task/list?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + for(let item of result.data) { + if(item.status==1) { + await RewardFarmTask(item.task_id) + } + } + } else { + console.log(`用户${userIdx+1}查询农场任务列表失败:${result.message}`) + } +} + +//农场-领取任务奖励 +async function RewardFarmTask(id) { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/reward/task?task_id=${id}&aid=35` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + let typeStr = (result.data.reward_type==1) ? '水滴' : '化肥' + console.log(`用户${userIdx+1}领取农场任务奖励[task_id=${result.data.task_id}]获得${result.data.reward_num}${typeStr},剩余${typeStr}数量${result.data.current_num}`) + } else { + console.log(`用户${userIdx+1}领取农场任务奖励失败:${result.message}`) + } +} + +//农场-浇水 +async function FarmWater() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/land_water?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}农场浇水成功,剩余水滴:${result.data.water}`) + if(result.data.water>=10) { + await $.wait(1500) //min time 1000 + await FarmWater() + } + } else { + console.log(`用户${userIdx+1}农场浇水失败:${result.message}`) + } +} + +//农场-开宝箱 +async function FarmOpenBox() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/box/open?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}开农场宝箱获得${result.data.incr_coin}金币`) + if(result.data.excitation_ad_score_amount>0) await FarmOpenBoxVideo() + } else { + console.log(`用户${userIdx+1}开农场宝箱失败:${result.message}`) + } +} + +//农场-宝箱视频 +async function FarmOpenBoxVideo() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/excitation_ad/add?excitation_ad_score_amount=134&device_id=2392172203611735&aid=35&os_version=15.0&update_version_code=82809` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}看农场宝箱视频获得${result.data.incr_coin}金币`) + } else { + console.log(`用户${userIdx+1}看农场宝箱视频失败:${result.message}`) + } +} + +//农场-签到状态 +async function QueryFarmSignStatus() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/sign_in/list?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + for(let item of result.data.sign) { + if(item.status==1) { + await FarmSign() + break + } + } + } else { + console.log(`用户${userIdx+1}查询签到状态失败:${result.message}`) + } +} + +//农场-签到 +async function FarmSign() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/reward/sign_in?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + let str = (result.data.reward_type==1)?'水滴':'化肥' + console.log(`用户${userIdx+1}签到获得${result.data.reward_num}${str},剩余${str}数量${result.data.cur_reward_num}`) + } else { + console.log(`用户${userIdx+1}签到失败:${result.message}`) + } +} + +//农场-签到视频翻倍 +async function FarmSignDouble() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/reward/double_sign_in?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + let str = (result.data.reward_type==1)?'水滴':'化肥' + console.log(`用户${userIdx+1}签到翻倍获得${result.data.reward_num}{str},剩余${str}数量${result.data.cur_reward_num}`) + } else { + console.log(`用户${userIdx+1}签到翻倍失败:${result.message}`) + } +} + +//农场-土地状态 +async function QueryFarmLandStatus() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/home_info?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + for(let item of result.data.info.lands) { + if(item.status==false && item.unlock_able==true) { + await FarmUnlock(item.land_id) + break + } + } + } else { + console.log(`用户${userIdx+1}查询土地状态失败:${result.message}`) + } +} + +//农场-土地解锁 +async function FarmUnlock(land_id) { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/land/unlock?land_id=${land_id}&aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}解锁${land_id}号土地成功`) + } else { + console.log(`用户${userIdx+1}解锁${land_id}号土地失败:${result.message}`) + } +} + +//种树-签到状态 +async function QueryTreeSignStatus() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/sign_in/list?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + if(result.data.today == false) { + await TreeSign() + } + } else { + console.log(`用户${userIdx+1}查询种树签到状态失败:${result.message}`) + } +} + +//种树-签到 +async function TreeSign() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/sign_in/reward?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}种树签到获得${result.data.reward_item.num}${result.data.reward_item.name}`) + } else { + console.log(`用户${userIdx+1}种树签到失败:${result.message}`) + } +} + +//种树-二选一-选项 +async function QueryTreeChallenge() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/challenge/list?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + let bestChoice = 0 + let maxWater = 0 + for(let item of result.data.tasks) { + if(item.state==0 && item.water_times>maxWater) { + maxWater = item.water_times + bestChoice = item.id + } + } + if(bestChoice>0) await TreeChallengeChoose(bestChoice) + } else { + console.log(`用户${userIdx+1}查询挑战任务失败:${result.message}`) + } +} + +//种树-二选一-选择 +async function TreeChallengeChoose(id) { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/challenge/choose?task_id=${id}&aid=35` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}选择浇水${result.data.red_point.times}次挑战`) + } else { + console.log(`用户${userIdx+1}选择浇水挑战失败:${result.message}`) + } +} + +//种树-二选一-领奖 +async function TreeChallengeReward() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/challenge/reward?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}领取浇水挑战奖励获得${result.data.reward_item.num}金币`) + } else { + console.log(`用户${userIdx+1}领取浇水挑战奖励失败:${result.message}`) + } +} + +//种树-化肥签到 +async function TreeNutrientSign() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/nutrient/sign_in?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + if(result.data.is_rewarded==true) { + console.log(`用户${userIdx+1}种树化肥签到获得${result.data.reward_item.num}{result.data.reward_item.name}`) + } else { + console.log(`用户${userIdx+1}种树化肥签到成功`) + } + } else { + console.log(`用户${userIdx+1}种树化肥签到失败:${result.message}`) + } +} + +//种树-水滴任务列表 +async function QueryTreeWaterTask() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/tasks/list?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + for(let item of result.data.tasks_v2) { + console.log(item) + await TreeWaterReward(item.id) + await $.wait(1500) + } + } else { + console.log(`用户${userIdx+1}查询种树水滴任务列表失败:${result.message}`) + } +} + +//种树-水滴领奖 +async function TreeWaterReward(task_id) { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/tasks/reward?task_id=${task_id}&do_action=0&aid=35` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}领取水滴任务[id=${task_id}]获得${result.data.reward_item.num}${result.data.reward_item.name}`) + } else { + console.log(`用户${userIdx+1}领取水滴任务[id=${task_id}]失败:${result.message}`) + } +} + +//种树-浇水 +async function TreeWater() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/tree/water?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}种树浇水成功,剩余水滴:${result.data.kettle.water_num}`) + if(result.data.kettle.water_num>=100) { + await $.wait(1500) //min time 1000 + await TreeWaterTenTimes() + } else if(result.data.kettle.water_num>=10) { + await $.wait(1500) //min time 1000 + await TreeWater() + } + } else { + console.log(`用户${userIdx+1}种树浇水失败:${result.message}`) + } +} + +//种树-浇水10次 +async function TreeWaterTenTimes() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/tree/tenfold_water?times=10&aid=35` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}种树浇水10次成功,剩余水滴:${result.data.kettle.water_num}`) + if(result.data.kettle.water_num>=100) { + await $.wait(1500) //min time 1000 + await TreeWaterTenTimes() + } else if(result.data.kettle.water_num>=10) { + await $.wait(1500) //min time 1000 + await TreeWater() + } + } else { + console.log(`用户${userIdx+1}种树浇水失败:${result.message}`) + } +} + +//种树-信息 +async function QueryTreeStatus() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/polling_info?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + if(result.data.red_points.challenge && result.data.red_points.challenge.state==4) { + await TreeChallengeReward() + } + if(result.data.red_points.box && result.data.red_points.box.rounds>0 && result.data.red_points.box.state==4) { + await TreeOpenBox() + } + if(result.data.kettle.water_num >= 100) { + await TreeWaterTenTimes() + } else if(result.data.kettle.water_num>=10) { + await TreeWater() + } + } else { + console.log(`用户${userIdx+1}查询种树信息失败:${result.message}`) + } +} + +//种树-开宝箱 +async function TreeOpenBox() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/box2/open?watch_ad=0&aid=35` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}种树开宝箱获得${result.data.incr_coin}金币`) + } else { + console.log(`用户${userIdx+1}种树开宝箱失败:${result.message}`) + } +} +//////////////////////////////////////////////////////////////////// +function populatePostUrl(url,reqBody=''){ + let timeInMS = Math.round(new Date().getTime()) + let timeInSecond = Math.floor(timeInMS/1000) + let urlObject = { + url: url, + headers: { + 'Host' : host, + 'X-SS-REQ-TICKET' : timeInMS, + 'X-Khronos': timeInSecond, + 'Connection' : 'keep-alive', + 'Accept' : 'application/json', + 'Cookie' : userHeaderArr[userIdx], + 'Content-Type' : 'application/json', + 'User-Agent' : 'Dalvik/2.1.0 (Linux; U; Android 7.1.2; iPhone13,2 Build/HUAWEIiPhone13,2) NewsArticle/8.2.8 tt-ok/3.10.0.2', + 'Accept-Encoding' : 'gzip, deflate', + }, + body: reqBody + } + return urlObject; +} + +function populateGetUrl(url){ + let timeInMS = Math.round(new Date().getTime()) + let timeInSecond = Math.floor(timeInMS/1000) + let urlObject = { + url: url, + headers: { + 'Host' : host, + 'X-SS-REQ-TICKET' : timeInMS, + 'X-Khronos': timeInSecond, + 'Connection' : 'keep-alive', + 'Accept' : 'application/json', + 'Cookie' : userHeaderArr[userIdx], + 'Content-Type' : 'application/json', + 'User-Agent' : 'Dalvik/2.1.0 (Linux; U; Android 7.1.2; iPhone13,2 Build/HUAWEIiPhone13,2) NewsArticle/8.2.8 tt-ok/3.10.0.2', + 'Accept-Encoding' : 'gzip, deflate', + } + } + return urlObject; +} + +async function httpPost(url,caller) { + httpResult = null + return new Promise((resolve) => { + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": post请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + httpResult = JSON.parse(data); + if(logDebug) console.log(httpResult); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +async function httpGet(url,caller) { + httpResult = null + return new Promise((resolve) => { + $.get(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": get请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data,caller)) { + httpResult = JSON.parse(data); + if(logDebug) console.log(httpResult); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function safeGet(data,caller) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } else { + console.log(`Function ${caller}: 未知错误`); + console.log(data) + } + } catch (e) { + console.log(e); + console.log(`Function ${caller}: 服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function printCaller(){ + return (new Error()).stack.split("\n")[2].trim().split(" ")[1] +} + +function getMin(a,b){ + return ((a { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `\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 } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), a = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(a, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t) { let e = { "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 s in e) new RegExp("(" + s + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))); let h = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; h.push(e), s && h.push(s), i && h.push(i), console.log(h.join("\n")), this.logs = this.logs.concat(h) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } From a651e59114e4d9534a5ff8432ae248da0d91a098 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Sun, 12 Dec 2021 23:16:06 +0800 Subject: [PATCH 56/75] Update jrttjsb.js --- jrttjsb.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/jrttjsb.js b/jrttjsb.js index c5b7264..21767dc 100644 --- a/jrttjsb.js +++ b/jrttjsb.js @@ -151,11 +151,6 @@ async function RunMultiUser() { for(let adId of adIdList) await ExcitationAd(adId) //console.log(validList) - await ReadDouble() - await ListArts() - await ReadArticles() - - } } From 2463c4e5547329be054e550da7d713f0de42a1ba Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Mon, 13 Dec 2021 09:57:21 +0800 Subject: [PATCH 57/75] =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89UA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jrttjsb.js | 92 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 52 insertions(+), 40 deletions(-) diff --git a/jrttjsb.js b/jrttjsb.js index 21767dc..a4c1d57 100644 --- a/jrttjsb.js +++ b/jrttjsb.js @@ -12,10 +12,11 @@ V2P重写: #今日头条极速版 1-59/15 6-23 * * * https://raw.githubusercontent.com/leafxcy/JavaScript/main/jrttjsb.js, tag=今日头条极速版, enabled=true [rewrite_local] -luckycat/lite/v1/task/page_data url script-request-header https://raw.githubusercontent.com/leafxcy/JavaScript/main/jrttjsb.js +luckycat\/lite\/v1\/task\/page_data url script-request-header https://raw.githubusercontent.com/leafxcy/JavaScript/main/jrttjsb.js [MITM] -hostname = i.snssdk.com //安卓版 -hostname = api3-normal-lq.toutiaoapi.com //IOS版 +#每个人的域名不同,都放进去MITM吧,还捉不到就自行捉包填写 +hostname = *.snssdk.com +hostname = *.toutiaoapi.com 青龙把极速版捉包里面的cookie放到jrttjsbHeader里,多账户用@隔开 */ @@ -37,10 +38,13 @@ let curHour = curTime.getHours() let host = 'api3-normal-lq.toutiaoapi.com' let hostname = 'https://' + host +let userAgent = ($.isNode() ? process.env.jrttjsbUA : $.getdata('jrttjsbUA')) || 'NewsLite 8.5.2 rv:8.5.2.21 (iPhone; iOS 15.0; zh_CN) Cronet'; +let userAgentArr = [] let userHeader = ($.isNode() ? process.env.jrttjsbHeader : $.getdata('jrttjsbHeader')) || ''; let userHeaderArr = [] let userIdx = 0 +let UAcount = 0 let userStatus = [] let maxReadPerRun = 10 let readList = [] @@ -117,7 +121,15 @@ async function checkEnv() { return false } - console.log(`共找到${userHeaderArr.length}个用户`) + if(userAgent) { + userAgentArr = userAgent.split('@') + } else { + console.log('未找到userAgent') + return false + } + UAcount = userAgentArr.length + + console.log(`共找到${userHeaderArr.length}个用户,${UAcount}个UA`) return true } @@ -166,7 +178,7 @@ async function RunMultiUser() { //阅读列表 async function ListArts() { let caller = printCaller() - let url = `${hostname}/api/news/feed/v64/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/api/news/feed/v64/?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populateGetUrl(url) await httpGet(urlObject,caller) let result = httpResult; @@ -205,7 +217,7 @@ async function ReadArticles() { //阅读奖励 async function ReadArtsReward(group_id) { let caller = printCaller() - let url = `${hostname}/luckycat/lite/v1/activity/done_whole_scene_task/?aid=35&update_version_code=82809&os_version=15.0&device_platform=iphone` + let url = `${hostname}/luckycat/lite/v1/activity/done_whole_scene_task/?aid=35&update_version_code=85221&os_version=15.0&device_platform=iphone` let body = `{"is_golden_egg":false,"scene_key":"article_detail","group_id":"${group_id}"}` let urlObject = populatePostUrl(url,body) await httpPost(urlObject,caller) @@ -222,7 +234,7 @@ async function ReadArtsReward(group_id) { //阅读翻倍 async function ReadDouble() { let caller = printCaller() - let url = `${hostname}/luckycat/lite/v1/activity/double_whole_scene_task/?aid=35&update_version_code=82809&os_version=15.0&device_platform=iphone` + let url = `${hostname}/luckycat/lite/v1/activity/double_whole_scene_task/?aid=35&update_version_code=85221&os_version=15.0&device_platform=iphone` let body = `{}` let urlObject = populatePostUrl(url,body) await httpPost(urlObject,caller) @@ -238,7 +250,7 @@ async function ReadDouble() { async function GetNewTabs() { let caller = printCaller() - let url = `${hostname}/score_task/v1/user/new_tabs/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/score_task/v1/user/new_tabs/?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populateGetUrl(url) await httpGet(urlObject,caller) let result = httpResult; @@ -257,7 +269,7 @@ async function GetNewTabs() { async function PostInviteCode() { let caller = printCaller() let body = `{"invitecode" : "1173836876"}` - let url = `${hostname}/luckycat/lite/v1/invite/post_invite_code/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/luckycat/lite/v1/invite/post_invite_code/?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populatePostUrl(url,body) await httpPost(urlObject,caller) let result = httpResult; @@ -268,7 +280,7 @@ async function PostInviteCode() { //查询用户信息,任务状态 async function QueryUserInfo(doTask) { let caller = printCaller() - let url = `${hostname}/luckycat/lite/v1/task/page_data/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/luckycat/lite/v1/task/page_data/?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populateGetUrl(url) await httpGet(urlObject,caller) let result = httpResult; @@ -305,7 +317,7 @@ async function QueryUserInfo(doTask) { //签到 async function SignIn() { let caller = printCaller() - let url = `${hostname}/luckycat/lite/v1/sign_in/action?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/luckycat/lite/v1/sign_in/action?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populatePostUrl(url) await httpPost(urlObject,caller) let result = httpResult; @@ -321,7 +333,7 @@ async function SignIn() { //开宝箱 async function OpenTreasureBox() { let caller = printCaller() - let url = `${hostname}/score_task/v1/task/open_treasure_box/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/score_task/v1/task/open_treasure_box/?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populatePostUrl(url) await httpPost(urlObject,caller) let result = httpResult; @@ -337,7 +349,7 @@ async function OpenTreasureBox() { //宝箱视频奖励 async function ExcitationAd(task_id) { let caller = printCaller() - let url = `${hostname}/luckycat/lite/v1/task/done/excitation_ad?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/luckycat/lite/v1/task/done/excitation_ad?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let body = `{"ad_alias_position":"coin","task_key":"excitation_ad", "task_id" : "${task_id}"}` let urlObject = populatePostUrl(url,body) await httpPost(urlObject,caller) @@ -356,7 +368,7 @@ async function ExcitationAd(task_id) { //查询走路状态 async function QueryWalkInfo() { let caller = printCaller() - let url = `${hostname}/luckycat/lite/v1/walk/page_data/?aid=35&update_version_code=82809&os_version=15.0&device_platform=iphone` + let url = `${hostname}/luckycat/lite/v1/walk/page_data/?aid=35&update_version_code=85221&os_version=15.0&device_platform=iphone` let urlObject = populateGetUrl(url) await httpGet(urlObject,caller) let result = httpResult; @@ -373,7 +385,7 @@ async function QueryWalkInfo() { async function GetWalkBonus() { let caller = printCaller() let nowtime = Math.round(new Date().getTime()/1000) - let url = `${hostname}/luckycat/lite/v1/walk/bonus/?aid=35&update_version_code=82809&os_version=15.0&device_platform=iphone` + let url = `${hostname}/luckycat/lite/v1/walk/bonus/?aid=35&update_version_code=85221&os_version=15.0&device_platform=iphone` let body = `{"task_id":136,"enable_preload_exciting_video":0,"client_time":${nowtime},"rit":"","use_ecpm":0}` let urlObject = populatePostUrl(url,body) await httpPost(urlObject,caller) @@ -390,7 +402,7 @@ async function GetWalkBonus() { //吃饭补贴 async function DoneEat() { let caller = printCaller() - let url = `${hostname}/luckycat/lite/v1/eat/done_eat/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/luckycat/lite/v1/eat/done_eat/?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populatePostUrl(url) await httpPost(urlObject,caller) let result = httpResult; @@ -406,7 +418,7 @@ async function DoneEat() { //睡觉状态 async function QuerySleepStatus() { let caller = printCaller() - let url = `${hostname}/luckycat/lite/v1/sleep/status/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/luckycat/lite/v1/sleep/status/?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populateGetUrl(url) await httpGet(urlObject,caller) let result = httpResult; @@ -449,7 +461,7 @@ async function QuerySleepStatus() { //睡觉醒来 async function SleepStop() { let caller = printCaller() - let url = `${hostname}/luckycat/lite/v1/sleep/stop/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/luckycat/lite/v1/sleep/stop/?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populatePostUrl(url) await httpPost(urlObject,caller) let result = httpResult; @@ -467,7 +479,7 @@ async function SleepStop() { //睡觉收金币 async function SleepDone(amount) { let caller = printCaller() - let url = `${hostname}/luckycat/lite/v1/sleep/done_task/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/luckycat/lite/v1/sleep/done_task/?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let body = `{"score_amount" : ${amount}}` let urlObject = populatePostUrl(url,body) await httpPost(urlObject,caller) @@ -484,7 +496,7 @@ async function SleepDone(amount) { //开始睡觉 async function SleepStart() { let caller = printCaller() - let url = `${hostname}/luckycat/lite/v1/sleep/start/?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/luckycat/lite/v1/sleep/start/?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populatePostUrl(url) await httpPost(urlObject,caller) let result = httpResult; @@ -501,7 +513,7 @@ async function SleepStart() { //查询农场状态 async function QueryFarmInfo() { let caller = printCaller() - let url = `${hostname}/ttgame/game_farm/polling_info?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/ttgame/game_farm/polling_info?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populateGetUrl(url) await httpGet(urlObject,caller) let result = httpResult; @@ -541,7 +553,7 @@ async function FarmOfflineDouble() { //查询农场任务列表 async function QueryFarmTask() { let caller = printCaller() - let url = `${hostname}/ttgame/game_farm/daily_task/list?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/ttgame/game_farm/daily_task/list?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populateGetUrl(url) await httpGet(urlObject,caller) let result = httpResult; @@ -578,7 +590,7 @@ async function RewardFarmTask(id) { //农场-浇水 async function FarmWater() { let caller = printCaller() - let url = `${hostname}/ttgame/game_farm/land_water?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/ttgame/game_farm/land_water?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populateGetUrl(url) await httpGet(urlObject,caller) let result = httpResult; @@ -598,7 +610,7 @@ async function FarmWater() { //农场-开宝箱 async function FarmOpenBox() { let caller = printCaller() - let url = `${hostname}/ttgame/game_farm/box/open?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/ttgame/game_farm/box/open?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populateGetUrl(url) await httpGet(urlObject,caller) let result = httpResult; @@ -615,7 +627,7 @@ async function FarmOpenBox() { //农场-宝箱视频 async function FarmOpenBoxVideo() { let caller = printCaller() - let url = `${hostname}/ttgame/game_farm/excitation_ad/add?excitation_ad_score_amount=134&device_id=2392172203611735&aid=35&os_version=15.0&update_version_code=82809` + let url = `${hostname}/ttgame/game_farm/excitation_ad/add?excitation_ad_score_amount=134&device_id=2392172203611735&aid=35&os_version=15.0&update_version_code=85221` let urlObject = populateGetUrl(url) await httpGet(urlObject,caller) let result = httpResult; @@ -631,7 +643,7 @@ async function FarmOpenBoxVideo() { //农场-签到状态 async function QueryFarmSignStatus() { let caller = printCaller() - let url = `${hostname}/ttgame/game_farm/sign_in/list?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/ttgame/game_farm/sign_in/list?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populateGetUrl(url) await httpGet(urlObject,caller) let result = httpResult; @@ -652,7 +664,7 @@ async function QueryFarmSignStatus() { //农场-签到 async function FarmSign() { let caller = printCaller() - let url = `${hostname}/ttgame/game_farm/reward/sign_in?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/ttgame/game_farm/reward/sign_in?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populateGetUrl(url) await httpGet(urlObject,caller) let result = httpResult; @@ -669,7 +681,7 @@ async function FarmSign() { //农场-签到视频翻倍 async function FarmSignDouble() { let caller = printCaller() - let url = `${hostname}/ttgame/game_farm/reward/double_sign_in?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/ttgame/game_farm/reward/double_sign_in?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populateGetUrl(url) await httpGet(urlObject,caller) let result = httpResult; @@ -686,7 +698,7 @@ async function FarmSignDouble() { //农场-土地状态 async function QueryFarmLandStatus() { let caller = printCaller() - let url = `${hostname}/ttgame/game_farm/home_info?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/ttgame/game_farm/home_info?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populateGetUrl(url) await httpGet(urlObject,caller) let result = httpResult; @@ -707,7 +719,7 @@ async function QueryFarmLandStatus() { //农场-土地解锁 async function FarmUnlock(land_id) { let caller = printCaller() - let url = `${hostname}/ttgame/game_farm/land/unlock?land_id=${land_id}&aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/ttgame/game_farm/land/unlock?land_id=${land_id}&aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populateGetUrl(url) await httpGet(urlObject,caller) let result = httpResult; @@ -723,7 +735,7 @@ async function FarmUnlock(land_id) { //种树-签到状态 async function QueryTreeSignStatus() { let caller = printCaller() - let url = `${hostname}/ttgame/game_orchard/sign_in/list?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/ttgame/game_orchard/sign_in/list?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populateGetUrl(url) await httpGet(urlObject,caller) let result = httpResult; @@ -741,7 +753,7 @@ async function QueryTreeSignStatus() { //种树-签到 async function TreeSign() { let caller = printCaller() - let url = `${hostname}/ttgame/game_orchard/sign_in/reward?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/ttgame/game_orchard/sign_in/reward?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populateGetUrl(url) await httpGet(urlObject,caller) let result = httpResult; @@ -757,7 +769,7 @@ async function TreeSign() { //种树-二选一-选项 async function QueryTreeChallenge() { let caller = printCaller() - let url = `${hostname}/ttgame/game_orchard/challenge/list?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/ttgame/game_orchard/challenge/list?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populateGetUrl(url) await httpGet(urlObject,caller) let result = httpResult; @@ -797,7 +809,7 @@ async function TreeChallengeChoose(id) { //种树-二选一-领奖 async function TreeChallengeReward() { let caller = printCaller() - let url = `${hostname}/ttgame/game_orchard/challenge/reward?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/ttgame/game_orchard/challenge/reward?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populateGetUrl(url) await httpGet(urlObject,caller) let result = httpResult; @@ -813,7 +825,7 @@ async function TreeChallengeReward() { //种树-化肥签到 async function TreeNutrientSign() { let caller = printCaller() - let url = `${hostname}/ttgame/game_orchard/nutrient/sign_in?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/ttgame/game_orchard/nutrient/sign_in?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populateGetUrl(url) await httpGet(urlObject,caller) let result = httpResult; @@ -833,7 +845,7 @@ async function TreeNutrientSign() { //种树-水滴任务列表 async function QueryTreeWaterTask() { let caller = printCaller() - let url = `${hostname}/ttgame/game_orchard/tasks/list?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/ttgame/game_orchard/tasks/list?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populateGetUrl(url) await httpGet(urlObject,caller) let result = httpResult; @@ -869,7 +881,7 @@ async function TreeWaterReward(task_id) { //种树-浇水 async function TreeWater() { let caller = printCaller() - let url = `${hostname}/ttgame/game_orchard/tree/water?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/ttgame/game_orchard/tree/water?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populateGetUrl(url) await httpGet(urlObject,caller) let result = httpResult; @@ -915,7 +927,7 @@ async function TreeWaterTenTimes() { //种树-信息 async function QueryTreeStatus() { let caller = printCaller() - let url = `${hostname}/ttgame/game_orchard/polling_info?aid=35&update_version_code=82809&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/ttgame/game_orchard/polling_info?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let urlObject = populateGetUrl(url) await httpGet(urlObject,caller) let result = httpResult; @@ -967,7 +979,7 @@ function populatePostUrl(url,reqBody=''){ 'Accept' : 'application/json', 'Cookie' : userHeaderArr[userIdx], 'Content-Type' : 'application/json', - 'User-Agent' : 'Dalvik/2.1.0 (Linux; U; Android 7.1.2; iPhone13,2 Build/HUAWEIiPhone13,2) NewsArticle/8.2.8 tt-ok/3.10.0.2', + 'User-Agent' : userAgentArr[userIdx%UAcount], 'Accept-Encoding' : 'gzip, deflate', }, body: reqBody @@ -988,7 +1000,7 @@ function populateGetUrl(url){ 'Accept' : 'application/json', 'Cookie' : userHeaderArr[userIdx], 'Content-Type' : 'application/json', - 'User-Agent' : 'Dalvik/2.1.0 (Linux; U; Android 7.1.2; iPhone13,2 Build/HUAWEIiPhone13,2) NewsArticle/8.2.8 tt-ok/3.10.0.2', + 'User-Agent' : userAgentArr[userIdx%UAcount], 'Accept-Encoding' : 'gzip, deflate', } } From b7081d19f65121f7b343d0fa93944294ee68ae56 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Mon, 13 Dec 2021 10:38:46 +0800 Subject: [PATCH 58/75] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=A2=86=E7=9D=A1?= =?UTF-8?q?=E8=A7=89=E9=87=91=E5=B8=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jrttjsb.js | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/jrttjsb.js b/jrttjsb.js index a4c1d57..54538aa 100644 --- a/jrttjsb.js +++ b/jrttjsb.js @@ -67,7 +67,6 @@ let adIdList = [26, 181, 186, 187, 188, 189, 190, 195, 210, 214, 216, 225, 256, } await initAccountInfo() - await RunMultiUser() } @@ -171,7 +170,7 @@ async function RunMultiUser() { await ReadArticles() for(userIdx=0; userIdx 0) { + await SleepDone(result.data.history_amount) + } if(curHour >= 23 || curHour < 2) { await SleepStart() } else if(curHour >= 20) { @@ -479,7 +485,7 @@ async function SleepStop() { //睡觉收金币 async function SleepDone(amount) { let caller = printCaller() - let url = `${hostname}/luckycat/lite/v1/sleep/done_task/?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/luckycat/lite/v1/sleep/done_task/?_request_from=web&scm_build_version=1.0.0.1437&session_id=71A9B002-031C-45A3-AFE9-CA3FD3EC89D6&version_code=8.5.2&tma_jssdk_version=2.25.0.11&app_name=news_article_lite&device_id=2392172203611735&channel=App%20Store&resolution=1170*2532&aid=35&ab_version=668907,3485378,3491710,668905,3491678,668906,3491686,668904,3491669,668903,3491704,1859936,668908,3491714,3269751,3472847&ab_feature=794526&review_flag=0&ab_group=794526&subchannel=unknown&update_version_code=85221&cdid=B3B22E05-3B35-45FE-866E-E958D603661C&ac=WIFI&os_version=15.0&ssmix=a&device_platform=iphone&iid=2049946128494047&ab_client=a1,f2,f7,e1&device_type=iPhone13,2` let body = `{"score_amount" : ${amount}}` let urlObject = populatePostUrl(url,body) await httpPost(urlObject,caller) @@ -487,7 +493,7 @@ async function SleepDone(amount) { if(!result) return //console.log(result) if(result.err_no == 0) { - console.log(`用户${userIdx+1}领取睡觉金币奖励成功`) + console.log(`用户${userIdx+1}领取睡觉金币奖励${amount}金币成功`) } else { console.log(`用户${userIdx+1}领取睡觉金币奖励失败:${result.err_tips}`) } From fe4337860ad52ec004d1122dc366586cf25809a1 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Mon, 13 Dec 2021 11:25:09 +0800 Subject: [PATCH 59/75] Update jrttjsb.js --- jrttjsb.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jrttjsb.js b/jrttjsb.js index 54538aa..f9dd4d7 100644 --- a/jrttjsb.js +++ b/jrttjsb.js @@ -485,7 +485,7 @@ async function SleepStop() { //睡觉收金币 async function SleepDone(amount) { let caller = printCaller() - let url = `${hostname}/luckycat/lite/v1/sleep/done_task/?_request_from=web&scm_build_version=1.0.0.1437&session_id=71A9B002-031C-45A3-AFE9-CA3FD3EC89D6&version_code=8.5.2&tma_jssdk_version=2.25.0.11&app_name=news_article_lite&device_id=2392172203611735&channel=App%20Store&resolution=1170*2532&aid=35&ab_version=668907,3485378,3491710,668905,3491678,668906,3491686,668904,3491669,668903,3491704,1859936,668908,3491714,3269751,3472847&ab_feature=794526&review_flag=0&ab_group=794526&subchannel=unknown&update_version_code=85221&cdid=B3B22E05-3B35-45FE-866E-E958D603661C&ac=WIFI&os_version=15.0&ssmix=a&device_platform=iphone&iid=2049946128494047&ab_client=a1,f2,f7,e1&device_type=iPhone13,2` + let url = `${hostname}/luckycat/lite/v1/sleep/done_task/?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` let body = `{"score_amount" : ${amount}}` let urlObject = populatePostUrl(url,body) await httpPost(urlObject,caller) From 09a995e5fe139c7e753d6319d49979146c764ec4 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Tue, 14 Dec 2021 10:27:11 +0800 Subject: [PATCH 60/75] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=9D=A1=E8=A7=89?= =?UTF-8?q?=E9=A2=86=E9=87=91=E5=B8=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jrttjsb.js | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/jrttjsb.js b/jrttjsb.js index f9dd4d7..0bb678c 100644 --- a/jrttjsb.js +++ b/jrttjsb.js @@ -50,7 +50,7 @@ let maxReadPerRun = 10 let readList = [] let validList = [] -let adIdList = [26, 181, 186, 187, 188, 189, 190, 195, 210, 214, 216, 225, 256, 257, 259, 275, 308, 324, 327, 329] +let adIdList = [26, 181, 186, 187, 188, 189, 190, 195, 210, 214, 216, 225, 308, 324, 327, 329] /////////////////////////////////////////////////////////////////// @@ -149,14 +149,16 @@ async function RunMultiUser() { await DoneEat() //农场 + //await EnterFarm() + //await $.wait(1500) await QueryFarmInfo() await QueryFarmLandStatus() await QueryFarmSignStatus() await QueryFarmTask() //种树 - await QueryTreeSignStatus() await QueryTreeChallenge() + await QueryTreeSignStatus() await QueryTreeStatus() for(let adId of adIdList) await ExcitationAd(adId) @@ -172,6 +174,7 @@ async function RunMultiUser() { for(userIdx=0; userIdx= 7) { let rnd = Math.random() - if(rnd>0.95) { + if(rnd>0.90) { await SleepStop() } else { console.log(`用户${userIdx+1}随机醒来时间,本次不进行醒来,已经睡了${sleepHour}小时,可以获得${result.data.sleep_unexchanged_score}金币`) @@ -446,11 +449,11 @@ async function QuerySleepStatus() { if(result.data.history_amount > 0) { await SleepDone(result.data.history_amount) } - if(curHour >= 23 || curHour < 2) { + if(curHour >= 22 || curHour < 2) { await SleepStart() } else if(curHour >= 20) { let rnd = Math.random() - if(rnd>0.95) { + if(rnd>0.90) { await SleepStart() } else { console.log(`用户${userIdx+1}随机睡眠时间,本次不进行睡眠`) @@ -485,7 +488,7 @@ async function SleepStop() { //睡觉收金币 async function SleepDone(amount) { let caller = printCaller() - let url = `${hostname}/luckycat/lite/v1/sleep/done_task/?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` + let url = `${hostname}/luckycat/lite/v1/sleep/done_task/?_request_from=web&scm_build_version=1.0.0.1437&version_code=8.5.2&tma_jssdk_version=2.25.0.11&app_name=news_article_lite&channel=App%20Store&resolution=1170*2532&aid=35&ab_version=668907,3485378,3491710,668905,3491678,668906,3491686,668904,3491669,668903,3491704,1859936,668908,3491714,3269751,3472847&ab_feature=794526&review_flag=0&ab_group=794526&subchannel=unknown&update_version_code=85221&ac=WIFI&os_version=15.0&ssmix=a&device_platform=iphone&ab_client=a1,f2,f7,e1&device_type=iPhone13,2` let body = `{"score_amount" : ${amount}}` let urlObject = populatePostUrl(url,body) await httpPost(urlObject,caller) @@ -532,7 +535,7 @@ async function QueryFarmInfo() { if(result.data.info.water>=10) { await FarmWater() } - if(result.data.info.box_num>0) { + if(result.data.info.box_num==0) { await FarmOpenBox() } } else { @@ -540,6 +543,22 @@ async function QueryFarmInfo() { } } +//进入农场 +async function EnterFarm() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_farm/home_info?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + console.log(result) + if(result.status_code == 0) { + + } else { + console.log(`用户${userIdx+1}进入农场失败:${result.message}`) + } +} + //农场-离线奖励翻倍 async function FarmOfflineDouble() { let caller = printCaller() From 878dabcb0943aa29891060c538d474a7ee210516 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Tue, 14 Dec 2021 10:34:03 +0800 Subject: [PATCH 61/75] Update jrttjsb.js --- jrttjsb.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jrttjsb.js b/jrttjsb.js index 0bb678c..3832e2d 100644 --- a/jrttjsb.js +++ b/jrttjsb.js @@ -535,7 +535,7 @@ async function QueryFarmInfo() { if(result.data.info.water>=10) { await FarmWater() } - if(result.data.info.box_num==0) { + if(result.data.info.box_num>0) { await FarmOpenBox() } } else { From 7623d874e819214e3fb02cccff1333e7626c047f Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Tue, 14 Dec 2021 15:30:58 +0800 Subject: [PATCH 62/75] Update jrttjsb.js --- jrttjsb.js | 250 ++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 199 insertions(+), 51 deletions(-) diff --git a/jrttjsb.js b/jrttjsb.js index 3832e2d..dca7df1 100644 --- a/jrttjsb.js +++ b/jrttjsb.js @@ -7,6 +7,10 @@ IOS/安卓: 今日头条极速版 激进版定时: 1-59/5 * * * * 多用户跑的时间会久一点,自己看着改定时吧 +自定义UA:捉包拿到自己的UA,填到变量jrttjsbUA里,不填默认用安卓UA +自定义每次运行阅读文章的数量:填到变量jrttjsbReadNum,不填默认10篇 +农场和种树任务:默认不做,需要做的,把变量jrttjsbFarm填为1 + V2P重写: [task_local] #今日头条极速版 @@ -32,21 +36,19 @@ let notifyStr = '' let rndtime = "" //毫秒 let httpResult //global buffer -let curTime = new Date() -let curHour = curTime.getHours() - -let host = 'api3-normal-lq.toutiaoapi.com' +let host = 'i.snssdk.com' let hostname = 'https://' + host -let userAgent = ($.isNode() ? process.env.jrttjsbUA : $.getdata('jrttjsbUA')) || 'NewsLite 8.5.2 rv:8.5.2.21 (iPhone; iOS 15.0; zh_CN) Cronet'; +let userAgent = ($.isNode() ? process.env.jrttjsbUA : $.getdata('jrttjsbUA')) || 'Dalvik/2.1.0 (Linux; U; Android 7.1.2; VOG-AL10 Build/HUAWEIVOG-AL10) NewsArticle/8.2.8 tt-ok/3.10.0.2'; let userAgentArr = [] let userHeader = ($.isNode() ? process.env.jrttjsbHeader : $.getdata('jrttjsbHeader')) || ''; let userHeaderArr = [] +let jrttjsbFarm = ($.isNode() ? process.env.jrttjsbFarm : $.getdata('jrttjsbFarm')) || 0; let userIdx = 0 let UAcount = 0 let userStatus = [] -let maxReadPerRun = 10 +let maxReadPerRun = ($.isNode() ? process.env.jrttjsbReadNum : $.getdata('jrttjsbReadNum')) || 10; let readList = [] let validList = [] @@ -148,33 +150,40 @@ async function RunMultiUser() { await QueryWalkInfo() await DoneEat() - //农场 - //await EnterFarm() - //await $.wait(1500) - await QueryFarmInfo() - await QueryFarmLandStatus() - await QueryFarmSignStatus() - await QueryFarmTask() - - //种树 - await QueryTreeChallenge() - await QueryTreeSignStatus() - await QueryTreeStatus() - for(let adId of adIdList) await ExcitationAd(adId) //console.log(validList) } } - userIdx = 0 - await ListArts() await ReadArticles() for(userIdx=0; userIdx= item.available_time.begin && curHour < item.available_time.end) { + await RewardTreeThreeGift(item.id) + } + } + } else { + console.log(`用户${userIdx+1}查询种树三餐礼包状态失败:${result.message}`) + } +} + //种树-水滴任务列表 async function QueryTreeWaterTask() { let caller = printCaller() @@ -878,9 +1002,10 @@ async function QueryTreeWaterTask() { //console.log(result) if(result.status_code == 0) { for(let item of result.data.tasks_v2) { - console.log(item) - await TreeWaterReward(item.id) - await $.wait(1500) + if(item.reward_item.state==4) { + await TreeWaterReward(item.id) + await $.wait(1500) + } } } else { console.log(`用户${userIdx+1}查询种树水滴任务列表失败:${result.message}`) @@ -962,6 +1087,9 @@ async function QueryTreeStatus() { if(result.data.red_points.challenge && result.data.red_points.challenge.state==4) { await TreeChallengeReward() } + if(result.data.bottle.state==1) { + await RewardTreeWaterBottle() + } if(result.data.red_points.box && result.data.red_points.box.rounds>0 && result.data.red_points.box.state==4) { await TreeOpenBox() } @@ -975,6 +1103,22 @@ async function QueryTreeStatus() { } } +//种树-水瓶奖励 +async function RewardTreeWaterBottle() { + let caller = printCaller() + let url = `${hostname}/ttgame/game_orchard/water_bottle/reward?aid=35&update_version_code=85221&device_platform=iphone&&device_type=iPhone13,2` + let urlObject = populateGetUrl(url) + await httpGet(urlObject,caller) + let result = httpResult; + if(!result) return + //console.log(result) + if(result.status_code == 0) { + console.log(`用户${userIdx+1}领取种树水瓶奖励获得${result.data.reward_item.num}水滴`) + } else { + console.log(`用户${userIdx+1}领取种树水瓶奖励失败:${result.message}`) + } +} + //种树-开宝箱 async function TreeOpenBox() { let caller = printCaller() @@ -997,15 +1141,17 @@ function populatePostUrl(url,reqBody=''){ let urlObject = { url: url, headers: { - 'Host' : host, + 'Accept-Encoding' : 'gzip', 'X-SS-REQ-TICKET' : timeInMS, - 'X-Khronos': timeInSecond, - 'Connection' : 'keep-alive', - 'Accept' : 'application/json', + 'passport-sdk-version' : '30', + 'sdk-version' : '2', + 'x-vc-bdturing-sdk-version' : '2.0.0', + 'User-Agent' : userAgent[userIdx%UAcount], 'Cookie' : userHeaderArr[userIdx], - 'Content-Type' : 'application/json', - 'User-Agent' : userAgentArr[userIdx%UAcount], - 'Accept-Encoding' : 'gzip, deflate', + 'X-Khronos' : timeInSecond, + 'Content-Type' : 'application/json; charset=utf-8', + 'Host' : host, + 'Connection' : 'Keep-Alive', }, body: reqBody } @@ -1018,15 +1164,17 @@ function populateGetUrl(url){ let urlObject = { url: url, headers: { - 'Host' : host, + 'Accept-Encoding' : 'gzip', 'X-SS-REQ-TICKET' : timeInMS, - 'X-Khronos': timeInSecond, - 'Connection' : 'keep-alive', - 'Accept' : 'application/json', + 'passport-sdk-version' : '30', + 'sdk-version' : '2', + 'x-vc-bdturing-sdk-version' : '2.0.0', + 'User-Agent' : userAgent[userIdx%UAcount], 'Cookie' : userHeaderArr[userIdx], - 'Content-Type' : 'application/json', - 'User-Agent' : userAgentArr[userIdx%UAcount], - 'Accept-Encoding' : 'gzip, deflate', + 'X-Khronos' : timeInSecond, + 'Content-Type' : 'application/json; charset=utf-8', + 'Host' : host, + 'Connection' : 'Keep-Alive', } } return urlObject; From a72fa007b05f2bbb9521885ccfe80191cb7e0cb7 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Tue, 14 Dec 2021 15:43:50 +0800 Subject: [PATCH 63/75] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jrttjsb.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/jrttjsb.js b/jrttjsb.js index dca7df1..9bcf34b 100644 --- a/jrttjsb.js +++ b/jrttjsb.js @@ -64,6 +64,8 @@ let adIdList = [26, 181, 186, 187, 188, 189, 190, 195, 210, 214, 216, 225, 308, } else { + await showUpdateMsg() + if(!(await checkEnv())) { return } @@ -77,6 +79,10 @@ let adIdList = [26, 181, 186, 187, 188, 189, 190, 195, 210, 214, 216, 225, 308, .catch((e) => $.logErr(e)) .finally(() => $.done()) +function showUpdateMsg() { + console.log('\n2021.12.14 15:40 更新:默认不做农场和浇水任务,收益太低。可以自定义每次阅读的文章数量,填在变量jrttjsbReadNum里\n') +} + //通知 async function showmsg() { @@ -260,7 +266,7 @@ async function DailyArtsReward() { if(!result) return //console.log(result) if(result.err_no==0) { - console.log(`用户${userIdx+1}领取每日阅读奖励获得${result.data.score_amount}金币`) + console.log(`用户${userIdx+1}领取每日阅读奖励获得${result.data.score_amount}金币(${result.data.icon_data.done_times}/${result.data.icon_data.read_limit})`) } else { console.log(`用户${userIdx+1}领取每日阅读奖励失败:${result.err_tips}`) } From 55ffde2ee7f5bfa5ff1a74a8ccde7c5329cccf90 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Wed, 15 Dec 2021 00:58:59 +0800 Subject: [PATCH 64/75] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E5=A5=96=E5=8A=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jrttjsb.js | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/jrttjsb.js b/jrttjsb.js index 9bcf34b..1b4bc80 100644 --- a/jrttjsb.js +++ b/jrttjsb.js @@ -220,6 +220,7 @@ async function ReadArticles() { if(userStatus[userIdx]==true) { await ReadDouble() await DailyArtsReward() + await DailyPushReward() } } for(let i=0; i Date: Wed, 15 Dec 2021 09:37:08 +0800 Subject: [PATCH 65/75] Update jrttjsb.js --- jrttjsb.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/jrttjsb.js b/jrttjsb.js index 1b4bc80..3ccd342 100644 --- a/jrttjsb.js +++ b/jrttjsb.js @@ -80,7 +80,7 @@ let adIdList = [26, 181, 186, 187, 188, 189, 190, 195, 210, 214, 216, 225, 308, .finally(() => $.done()) function showUpdateMsg() { - console.log('\n2021.12.14 15:40 更新:默认不做农场和浇水任务,收益太低。可以自定义每次阅读的文章数量,填在变量jrttjsbReadNum里\n') + console.log('\n2021.12.15 9:30 更新:增加推送奖励,修复一个UA的bug,更改默认UA为安卓\n') } //通知 @@ -512,7 +512,7 @@ async function QuerySleepStatus() { await SleepStop() } else if(result.data.sleep_unexchanged_score==result.data.max_coin && curHour >= 7) { let rnd = Math.random() - if(rnd>0.90) { + if(rnd>0.95) { await SleepStop() } else { console.log(`用户${userIdx+1}随机醒来时间,本次不进行醒来,已经睡了${sleepHour}小时,可以获得${result.data.sleep_unexchanged_score}金币`) @@ -528,7 +528,7 @@ async function QuerySleepStatus() { await SleepStart() } else if(curHour >= 20) { let rnd = Math.random() - if(rnd>0.90) { + if(rnd>0.95) { await SleepStart() } else { console.log(`用户${userIdx+1}随机睡眠时间,本次不进行睡眠`) @@ -563,8 +563,9 @@ async function SleepStop() { //睡觉收金币 async function SleepDone(amount) { let caller = printCaller() - let url = `${hostname}/luckycat/lite/v1/sleep/done_task/?_request_from=web&scm_build_version=1.0.0.1437&version_code=8.5.2&tma_jssdk_version=2.25.0.11&app_name=news_article_lite&channel=App%20Store&resolution=1170*2532&aid=35&ab_version=668907,3485378,3491710,668905,3491678,668906,3491686,668904,3491669,668903,3491704,1859936,668908,3491714,3269751,3472847&ab_feature=794526&review_flag=0&ab_group=794526&subchannel=unknown&update_version_code=85221&ac=WIFI&os_version=15.0&ssmix=a&device_platform=iphone&ab_client=a1,f2,f7,e1&device_type=iPhone13,2` - let body = `{"score_amount" : ${amount}}` + let timeInMS = Math.round(new Date().getTime()) + let url = `${hostname}/luckycat/lite/v1/sleep/done_task/?os_api=25&device_type=VOG-AL10&ssmix=a&manifest_version_code=8280&dpi=240&abflag=3&pass_through=default&use_ecpm=0&rom_version=25&rit=coin&app_name=news_article_lite&ab_client=a1%2Ce1%2Cf2%2Cg2%2Cf7&version_name=8.2.8&ab_version=668903%2C3491704%2C1859936%2C668908%2C3491714%2C668907%2C3491710%2C668905%2C3491678%2C668906%2C3491686%2C668904%2C3491669%2C3269751%2C3472846%2C3493942&plugin_state=7731332411413&sa_enable=0&ac=wifi&_request_from=web&update_version_code=82809&channel=lite2_tengxun&_rticket=${timeInMS}&status_bar_height=24&dq_param=0&device_platform=android&iid=1592553870724568&scm_build_version=1.0.0.1454&mac_address=88%3AB1%3A11%3A61%3A96%3A7B&version_code=828&polaris_version=1.0.5&tma_jssdk_version=1.95.0.28&is_pad=1&resolution=720*1280&os_version=7.1.2&language=zh&device_brand=HUAWEI&aid=35&ab_feature=z1&luckycat_version_name=4.2.0-rc.5&luckycat_version_code=420005` + let body = `{"score_amount":${amount},"enable_preload_exciting_video":0}` let urlObject = populatePostUrl(url,body) await httpPost(urlObject,caller) let result = httpResult; @@ -1171,7 +1172,7 @@ function populatePostUrl(url,reqBody=''){ 'passport-sdk-version' : '30', 'sdk-version' : '2', 'x-vc-bdturing-sdk-version' : '2.0.0', - 'User-Agent' : userAgent[userIdx%UAcount], + 'User-Agent' : userAgentArr[userIdx%UAcount], 'Cookie' : userHeaderArr[userIdx], 'X-Khronos' : timeInSecond, 'Content-Type' : 'application/json; charset=utf-8', @@ -1194,7 +1195,7 @@ function populateGetUrl(url){ 'passport-sdk-version' : '30', 'sdk-version' : '2', 'x-vc-bdturing-sdk-version' : '2.0.0', - 'User-Agent' : userAgent[userIdx%UAcount], + 'User-Agent' : userAgentArr[userIdx%UAcount], 'Cookie' : userHeaderArr[userIdx], 'X-Khronos' : timeInSecond, 'Content-Type' : 'application/json; charset=utf-8', From 49e4989dbf112b1202d3213e74d971ab9234c2a1 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Thu, 16 Dec 2021 10:16:31 +0800 Subject: [PATCH 66/75] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=B0=E8=B4=A6?= =?UTF-8?q?=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jckd/jckd_risk.js | 311 ++++++++++++++++++++++++++++++++++++++++++++++ zqkd/zqkd_risk.js | 16 ++- 2 files changed, 323 insertions(+), 4 deletions(-) create mode 100644 jckd/jckd_risk.js diff --git a/jckd/jckd_risk.js b/jckd/jckd_risk.js new file mode 100644 index 0000000..1ab1f8a --- /dev/null +++ b/jckd/jckd_risk.js @@ -0,0 +1,311 @@ +/* +安卓:晶彩看点 风险查询+今日收益详情 + +需要用到jckdCookie,只测试了青龙,理论上V2P也能用 +本脚本没有设置重写,请自己复制jc_cookie到青龙环境下使用,多账号用@隔开 +例子: export jckdCookie='uid=xxx&zqkey=yyy&zqkey_id=zzz@uid=aaa&zqkey=bbb&zqkey_id=ccc@uid=qqq&zqkey=sss&zqkey_id=ttt' +*/ + +const jsname = '晶彩看点风险查询' +const $ = Env(jsname) +const notifyFlag = 1; //0为关闭通知,1为打开通知,默认为1 +const logDebug = 0 + +const notify = $.isNode() ? require('./sendNotify') : ''; +let notifyStr = '' + +let rndtime = "" //毫秒 +let httpResult //global buffer + +let userCookie = ($.isNode() ? process.env.jckdCookie : $.getdata('jckdCookie')) || ''; +let userCookieArr = [] + +let nickname = [] +/////////////////////////////////////////////////////////////////// + +!(async () => { + + if(typeof $request !== "undefined") + { + $.msg(jsname+': 此脚本不做重写,请检查重写设置') + } + else + { + if(!(await checkEnv())) { + return + } + + await initAccountInfo() + await RunRiskInfo() + await RunUserBalance() + + await showmsg() + } + + +})() +.catch((e) => $.logErr(e)) +.finally(() => $.done()) + +//通知 +async function showmsg() { + + notifyBody = jsname + "运行通知\n\n" + notifyStr + + if (notifyFlag != 1) { + console.log(notifyBody); + } + + if (notifyFlag == 1) { + $.msg(notifyBody); + if($.isNode()){await notify.sendNotify($.name, notifyBody );} + } +} + +async function checkEnv() { + if(userCookie) { + if(userCookie.indexOf('@') > -1) { + let userCookies = userCookie.split('@') + for(let i=0; i -1) { + for(let j=0; j { + $.post(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": post请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + httpResult = JSON.parse(data); + if(logDebug) console.log(httpResult); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +async function httpGet(url,caller) { + httpResult = null + return new Promise((resolve) => { + $.get(url, async (err, resp, data) => { + try { + if (err) { + console.log(caller + ": get请求失败"); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data,caller)) { + httpResult = JSON.parse(data); + if(logDebug) console.log(httpResult); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function safeGet(data,caller) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } else { + console.log(`Function ${caller}: 未知错误`); + console.log(data) + } + } catch (e) { + console.log(e); + console.log(`Function ${caller}: 服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function printCaller(){ + return (new Error()).stack.split("\n")[2].trim().split(" ")[1] +} + +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, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `\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 } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), a = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(a, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t) { let e = { "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 s in e) new RegExp("(" + s + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))); let h = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; h.push(e), s && h.push(s), i && h.push(i), console.log(h.join("\n")), this.logs = this.logs.concat(h) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/zqkd/zqkd_risk.js b/zqkd/zqkd_risk.js index aae8e1b..bb25bd5 100644 --- a/zqkd/zqkd_risk.js +++ b/zqkd/zqkd_risk.js @@ -135,13 +135,21 @@ async function GetOrderList() { if(!result) return if(result.status == 1) { + notifyStr += `账户${userIdx+1} ${nickname[userIdx]}: \n` for(let item of result.data) { - if(item.description) { - notifyStr += `提现风险信息:${item.add_time_str} ${item.description}\n` - } + let withdrawStr = '' + let desc = (item.description) ? item.description : '无' + if (item.status == 0){ + withdrawStr = '未入账'; + } else if (item.status == 1){ + withdrawStr = '已入账'; + } else if (item.status == 2){ + withdrawStr = '提现失败'; + } + notifyStr += `提现信息:${item.add_time_str} 提现${item.money}元,${withdrawStr},风险信息:${desc}\n` } } else { - console.log(`查询风险信息失败`) + console.log(`账户${userIdx+1}查询风险信息失败`) } } From 99bb9a91dd3d7fc11773bcdd5c3bb7a2a76d8051 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Thu, 16 Dec 2021 21:03:13 +0800 Subject: [PATCH 67/75] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8F=90=E7=8E=B0?= =?UTF-8?q?=E6=B8=A0=E9=81=93=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jckd/jckd_risk.js | 3 ++- zqkd/zqkd_risk.js | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/jckd/jckd_risk.js b/jckd/jckd_risk.js index 1ab1f8a..8e100a3 100644 --- a/jckd/jckd_risk.js +++ b/jckd/jckd_risk.js @@ -138,6 +138,7 @@ async function GetOrderList() { notifyStr += `账户${userIdx+1} ${nickname[userIdx]}: \n` for(let item of result.data) { let withdrawStr = '' + let withType = (item.type==2) ? '微信' : '支付宝' let desc = (item.description) ? item.description : '无' if (item.status == 0){ withdrawStr = '未入账'; @@ -146,7 +147,7 @@ async function GetOrderList() { } else if (item.status == 2){ withdrawStr = '提现失败'; } - notifyStr += `提现信息:${item.add_time_str} 提现${item.money}元,${withdrawStr},风险信息:${desc}\n` + notifyStr += `${item.add_time_str} ${withType}提现${item.money}元,${withdrawStr},风险信息:${desc}\n` } } else { console.log(`账户${userIdx+1}查询风险信息失败`) diff --git a/zqkd/zqkd_risk.js b/zqkd/zqkd_risk.js index bb25bd5..e1e801c 100644 --- a/zqkd/zqkd_risk.js +++ b/zqkd/zqkd_risk.js @@ -138,6 +138,7 @@ async function GetOrderList() { notifyStr += `账户${userIdx+1} ${nickname[userIdx]}: \n` for(let item of result.data) { let withdrawStr = '' + let withType = (item.type==2) ? '微信' : '支付宝' let desc = (item.description) ? item.description : '无' if (item.status == 0){ withdrawStr = '未入账'; @@ -146,7 +147,7 @@ async function GetOrderList() { } else if (item.status == 2){ withdrawStr = '提现失败'; } - notifyStr += `提现信息:${item.add_time_str} 提现${item.money}元,${withdrawStr},风险信息:${desc}\n` + notifyStr += `${item.add_time_str} ${withType}提现${item.money}元,${withdrawStr},风险信息:${desc}\n` } } else { console.log(`账户${userIdx+1}查询风险信息失败`) From 6e4281114e4b0e1ae14ca0d6385e24d4d289aded Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Fri, 17 Dec 2021 01:17:28 +0800 Subject: [PATCH 68/75] Update daw.js --- daw.js | 143 +++++++++++++++++++++++++++------------------------------ 1 file changed, 68 insertions(+), 75 deletions(-) diff --git a/daw.js b/daw.js index ad64838..895f87f 100644 --- a/daw.js +++ b/daw.js @@ -1,10 +1,10 @@ /* IOS/安卓:都爱玩 下载注册地址,微信打开: -https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx592b7bf2a9f7f003&redirect_uri=https://v3.sdk.haowusong.com/api/auth/wechat/sharelogin&response_type=code&scope=snsapi_userinfo&state=AAABRKAD,dawbox-android#wechat_redirect +https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx592b7bf2a9f7f003&redirect_uri=https://v3.sdk.haowusong.com/api/auth/wechat/sharelogin&response_type=code&scope=snsapi_userinfo&state=AAABQKAW,dawbox-android#wechat_redirect -炒个冷饭,之前有几位大佬已经写过了 -现在支持了苹果和安卓双端的任务,两边账户分红币独立,理论上收益可以翻倍,每天2块多到3块的样子,不过提现次数似乎两边共用 +现在需要充钱1块才能解锁分红池,自己考虑要不要充 +支持苹果和安卓双端的任务,两边账户分红币独立,理论上收益可以翻倍,每天2块多到3块的样子,不过提现次数似乎两边共用 支持多账户,可以并发看视频广告,减少运行时间,V2P跑有时会有code=400错误信息,忽略就好 重写捉包只需要捉其中一端的账号即可,ck通用 脚本内置了自动提现,默认提现到微信 @@ -41,6 +41,7 @@ let httpResult //global buffer let userToken = '' let userIdx = 0 let numBoxbody = 0 +let userStatus = [] let coinStatus = [] let maxTryNum = 12 @@ -56,7 +57,7 @@ let withdrawMethod = [] let dawToken = ($.isNode() ? process.env.dawToken : $.getdata('dawToken')) || ''; let dawTokenArr = [] -let userName = '' +let userName = [] let isVip = 0 let vipLevel = 0 @@ -73,20 +74,27 @@ let vipLevel = 0 await CheckEnv() numBoxbody = dawTokenArr.length - console.log(`找到${numBoxbody}个账户,脚本会同时做IOS和安卓端任务\n`) + console.log(`\n找到${numBoxbody}个账户,脚本会同时做IOS和安卓端任务`) + console.log(`\n检查账号状态中...`) + for(channelIdx=0; channelIdx 0) { if(integral_num >= integral_min_put_num && can_put_num >= integral_min_put_num) { let putNum = (integral_num>can_put_num) ? can_put_num : integral_num @@ -382,7 +375,7 @@ async function QueryCoinInfo(type) { notifyStr += `【分红余额】:${money}\n` } } else { - console.log(`\n查询信息失败:${result.error}`) + console.log(`\n账户${userIdx+1}${channelStr[channelIdx]}查询信息失败:${result.error}`) } } @@ -397,18 +390,18 @@ async function ReceiveCoin(taskItem) { if(!result) return if(result.code == 200) { - console.log(`完成任务【${taskItem.title}】,领取DAB币成功`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}完成任务【${taskItem.title}】,领取DAB币成功`) } else { - console.log(`完成任务【${taskItem.title}】失败:${result.error}`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}完成任务【${taskItem.title}】失败:${result.error}`) if(result.error.indexOf('当前仓库已存满') > -1) { let idx = channelIdx*numBoxbody+userIdx if(coinStatus[idx] == 1) { - console.log(`仓库已存满,尝试先投入分红池`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}仓库已存满,尝试先投入分红池`) coinStatus[idx] = 2 await $.wait(100) await QueryCoinInfo(0) } else if(coinStatus[idx] == 2) { - console.log(`仓库已存满,且无法投入分红池,此用户暂时不再做任务`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}仓库已存满,且无法投入分红池,此用户暂时不再做任务`) } } } @@ -440,7 +433,7 @@ async function QueryTurntable(taskItem) { await Turntable(taskItem) } } else { - console.log(`获取转盘次数失败:${result.error}`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}获取转盘次数失败:${result.error}`) return false } @@ -458,12 +451,12 @@ async function ReceiveVideoReward(taskItem) { if(!result) return if(result.code == 200) { - console.log(`看视频获得了一次抽奖机会`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}看视频获得了一次抽奖机会`) await $.wait(100) waitTime -= 100 await Turntable(taskItem) } else { - console.log(`看视频得抽奖机会失败:${result.error}`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}看视频得抽奖机会失败:${result.error}`) } } @@ -479,12 +472,12 @@ async function Turntable(taskItem) { if(result.code == 200) { let reward = result.data.title ? result.data.title : '【?】' - console.log(`抽奖成功,获得了${reward}`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}抽奖成功,获得了${reward}`) await $.wait(100) waitTime -= 100 await ReceiveTurntable(taskItem) } else { - console.log(`抽奖失败:${result.error}`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}抽奖失败:${result.error}`) } } @@ -499,18 +492,18 @@ async function ReceiveTurntable(taskItem) { if(!result) return if(result.code == 200) { - console.log(`看视频获得抽奖翻倍奖励成功`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}看视频获得抽奖翻倍奖励成功`) } else { - console.log(`看视频获得抽奖翻倍奖励失败:${result.error}`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}看视频获得抽奖翻倍奖励失败:${result.error}`) if(result.error.indexOf('当前仓库已存满') > -1) { let idx = channelIdx*numBoxbody+userIdx if(coinStatus[idx] == 1) { - console.log(`仓库已存满,尝试先投入分红池`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}仓库已存满,尝试先投入分红池`) coinStatus[idx] = 2 await $.wait(100) await QueryCoinInfo(0) } else if(coinStatus[idx] == 2) { - console.log(`仓库已存满,且无法投入分红池,此用户暂时不再做任务`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}仓库已存满,且无法投入分红池,此用户暂时不再做任务`) } } } @@ -526,11 +519,11 @@ async function PutInPool(num,pool_lv) { if(!result) return false if(result.code == 200) { - console.log(`投入瓜分池${num}币成功`) - notifyStr += `投入瓜分池${num}币成功\n` + console.log(`账号${userIdx+1}${channelStr[channelIdx]}投入瓜分池${num}币成功`) + notifyStr += `账号${userIdx+1}${channelStr[channelIdx]}投入瓜分池${num}币成功\n` coinStatus[channelIdx*numBoxbody+userIdx] = 1 } else { - console.log(`投入瓜分池${num}币失败:${result.error}`) + console.log(`账号${userIdx+1}${channelStr[channelIdx]}投入瓜分池${num}币失败:${result.error}`) } } @@ -548,10 +541,10 @@ async function QuerySignList() { await $.wait(100) await SignToday() } else { - console.log(`今日已签到`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}今日已签到`) } } else { - console.log(`获取签到信息失败:${result.error}`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}获取签到信息失败:${result.error}`) } } @@ -565,9 +558,9 @@ async function SignToday() { if(!result) return if(result.code == 200) { - console.log(`签到成功,获得${result.data.total_credit_num}积分`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}签到成功,获得${result.data.total_credit_num}积分`) } else { - console.log(`签到失败:${result.error}`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}签到失败:${result.error}`) } } @@ -591,7 +584,7 @@ async function QueryTaskList() { } } } else { - console.log(`获取积分任务列表失败:${result.error}`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}获取积分任务列表失败:${result.error}`) return false } @@ -610,10 +603,10 @@ async function TaskReceiveReward(taskItem) { if(result.code == 200) { let credit_num = result.data.credit_num ? `获得${result.data.credit_num}积分` : '' - console.log(`完成任务【${taskItem.title}】成功 ${credit_num}`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}完成任务【${taskItem.title}】成功 ${credit_num}`) return true } else { - console.log(`完成任务【${taskItem.title}】失败:${result.error}`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}完成任务【${taskItem.title}】失败:${result.error}`) } } @@ -637,7 +630,7 @@ async function QueryMallExchange(page) { } } } else { - console.log(`获取积分红包兑换列表失败:${result.error}`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}获取积分红包兑换列表失败:${result.error}`) } } @@ -652,9 +645,9 @@ async function MallExchange(exchangeItem,num) { if(!result) return if(result.code == 200) { - console.log(`兑换【${exchangeItem.title}】成功`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}兑换【${exchangeItem.title}】成功`) } else { - console.log(`兑换【${exchangeItem.title}】失败:${result.error}`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}兑换【${exchangeItem.title}】失败:${result.error}`) } } @@ -675,8 +668,8 @@ async function QueryWithdrawBox(page) { if(result.data.is_bind_wechat==1) payType += ' 微信' if(result.data.is_bind_alipay==1) payType += ' 支付宝' if(!payType) payType += '无' - console.log(`积分红包余额:${result.data.money}`) - console.log(`已绑定支付方式:${payType}`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}积分红包余额:${result.data.money}`) + console.log(`账户${userIdx+1}${channelStr[channelIdx]}已绑定支付方式:${payType}`) if(result.data.withdraw_config && Array.isArray(result.data.withdraw_config)) { for(let i=0; i Date: Fri, 17 Dec 2021 01:44:23 +0800 Subject: [PATCH 69/75] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AE=9A=E6=97=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- daw.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daw.js b/daw.js index 895f87f..ed9e549 100644 --- a/daw.js +++ b/daw.js @@ -18,7 +18,7 @@ export dawToken='account1@account2@account3' V2P重写:打开APP即可获取CK,没有的话点一下下面分红币页面,可以直接捉多账号 [task_local] #都爱玩 -15 0,1,8,15,20 * * * https://raw.githubusercontent.com/leafxcy/JavaScript/main/daw.js, tag=都爱玩, enabled=true +3 1,20 * * * https://raw.githubusercontent.com/leafxcy/JavaScript/main/daw.js, tag=都爱玩, enabled=true [rewrite_local] https://v3.sdk.haowusong.com/api/box/wallet/info url script-request-header https://raw.githubusercontent.com/leafxcy/JavaScript/main/daw.js [MITM] From 2b0d53dd025e21139bf96cf48b08d72b9bf76561 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Sat, 18 Dec 2021 11:35:42 +0800 Subject: [PATCH 70/75] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E7=9C=8B=E7=82=B9=E5=AE=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ydd.js | 54 +++++++++++++++++++----------------------------------- 1 file changed, 19 insertions(+), 35 deletions(-) diff --git a/ydd.js b/ydd.js index d381fe9..190b8d8 100644 --- a/ydd.js +++ b/ydd.js @@ -1,10 +1,12 @@ /* -IOS:阅多多/悦看点 -理论上可以直接跑两个APP的账号,每天金币7毛以上,提现1元和5元需要做任务拿提现券 -阅多多下载注册地址:https://yuekandian.yichengw.cn/download?app=3&referrer=729879 +IOS:看点宝/阅多多/悦看点 +三个APP分别捉包,可以共用一个脚本跑任务 +比较容易黑,不要跑太频繁,每天11次就可以领完任务奖励 +每天金币7毛以上,提现1元和5元需要做任务拿提现券 +看点宝下载注册地址:https://yuekandian.yichengw.cn/download?app=5&referrer=764084 -默认不提现1块,可以在环境变量yddSkipWithdraw设置不想提现的金额,逗号隔开,填0就会尝试提现所有金额 -export yddSkipWithdraw='1,5' +可以在环境变量yddSkipWithdraw设置不想提现的金额,逗号隔开,填0就会尝试提现所有金额 +export yddSkipWithdraw='1' 青龙: 捉取 https://yuekandian.yichengw.cn/api/v1/member/profile 的包里的Authorization(把前面的Bearer删掉),device和User-Agent,按顺序用#连起来写到yddCookie里,多账户用@隔开 @@ -12,8 +14,8 @@ export yddCookie='账号1的Authorization#device#UA@账号2的Authorization#devi V2P重写:打开APP即可获取CK,没有的话点一下我的页面或者赚钱页面 [task_local] -#阅多多 -0-59/15 8-23 * * * https://raw.githubusercontent.com/leafxcy/JavaScript/main/ydd.js, tag=阅多多, enabled=true +#看点宝/阅多多/悦看点 +15 9-21 * * * https://raw.githubusercontent.com/leafxcy/JavaScript/main/ydd.js, tag=看点宝/阅多多/悦看点, enabled=true [rewrite_local] https://yuekandian.yichengw.cn/api/v1/member/profile url script-request-header https://raw.githubusercontent.com/leafxcy/JavaScript/main/ydd.js [MITM] @@ -41,7 +43,7 @@ let userDevice = [] let userAgent = [] let userCookie = [] -let yddSkipWithdraw = ($.isNode() ? process.env.yddSkipWithdraw : $.getdata('yddSkipWithdraw')) || '1'; +let yddSkipWithdraw = ($.isNode() ? process.env.yddSkipWithdraw : $.getdata('yddSkipWithdraw')) || '0'; let skipWithdraw = [] let userIdx = 0 @@ -64,7 +66,7 @@ let barrierFlag = [] let doneTaskList = [] let doneTaskTicket = [] -let NUM_PER_ROUND = 1 +let NUM_PER_ROUND = 2 let LOTTERY_TYPE = 1 let AD_TICKET_TYPE = 5 @@ -285,31 +287,6 @@ async function RunMultiUser() { await $.wait(100) } - //============= 助力领现金 ============= - console.log('\n准备看助力领现金视频...') - for(userIdx=0; userIdx 0) { - for(userIdx=0; userIdxitem.jinbi && userInfo[userIdx].ticket>item.cond && item.is_ok==1) { - await Withdraw(item.jine) + console.log(`用户${userIdx+1}准备提现${item.jine}元`) + //await Withdraw(item.jine) if(withdrawFlag[userIdx]==1) break; } } @@ -1012,6 +990,9 @@ function populatePostUrl(url,reqBody=''){ if(userAgent[userIdx].indexOf('CBD') > -1) { urlObject.headers['version'] = '2' urlObject.headers['app'] = '3' + } else if(userAgent[userIdx].indexOf('KDB') > -1) { + urlObject.headers['version'] = '1' + urlObject.headers['app'] = '5' } return urlObject; } @@ -1036,6 +1017,9 @@ function populateGetUrl(url){ if(userAgent[userIdx].indexOf('CBD') > -1) { urlObject.headers['version'] = '2' urlObject.headers['app'] = '3' + } else if(userAgent[userIdx].indexOf('KDB') > -1) { + urlObject.headers['version'] = '1' + urlObject.headers['app'] = '5' } return urlObject; } From e9a48812d2efa48df73ef3206c26a8422ccb5206 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Sun, 19 Dec 2021 11:48:55 +0800 Subject: [PATCH 71/75] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E6=8F=90=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ydd.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/ydd.js b/ydd.js index 190b8d8..b3e3f2a 100644 --- a/ydd.js +++ b/ydd.js @@ -802,16 +802,19 @@ async function QueryWithdrawList() { let skipFlag = 0 if(skipWithdraw.length>0) { for(let skipItem of skipWithdraw) { - if(parseInt(item.jine) == parseInt(skipItem)) { + if(item.jine == skipItem) { skipFlag = 1 break } } } - if(skipFlag==1) continue - if(userInfo[userIdx].point>item.jinbi && userInfo[userIdx].ticket>item.cond && item.is_ok==1) { + if(skipFlag==1) { + console.log(`用户${userIdx+1}跳过提现${item.jine}元`) + continue + } + if(userInfo[userIdx].point>=item.jinbi && userInfo[userIdx].ticket>=item.cond && item.is_ok==1) { console.log(`用户${userIdx+1}准备提现${item.jine}元`) - //await Withdraw(item.jine) + await Withdraw(item.jine) if(withdrawFlag[userIdx]==1) break; } } From a2a436641aabf177b58d15f76dc106148e7e55dc Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Tue, 21 Dec 2021 14:33:42 +0800 Subject: [PATCH 72/75] Create zqkd_check.js --- zqkd/zqkd_check.js | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 zqkd/zqkd_check.js diff --git a/zqkd/zqkd_check.js b/zqkd/zqkd_check.js new file mode 100644 index 0000000..5f0ffb3 --- /dev/null +++ b/zqkd/zqkd_check.js @@ -0,0 +1,10 @@ +/* +中青看点检查脚本 + +本脚本会找出账号ck并检查账号状态是否黑号,默认不执行注销 +把需要检查的账号按照 手机号#密码 的格式,填到zqkdAccount里,多账号用@隔开 +例子:export zqkdAccount='110#123456@120#654321' +!!!谨慎操作:如果需要注销,请把环境变量zqkdCancel设为1!!! +*/ + +const _0x56a2b9=_0x2ef6;(function(_0x20a5a5,_0x14c2b0){const _0x1de56b=_0x2ef6,_0x35764f=_0x20a5a5();while(!![]){try{const _0x23a67a=-parseInt(_0x1de56b(0x367))/(-0x45*-0x15+0x3*-0x316+0x2*0x1cd)*(-parseInt(_0x1de56b(0x356))/(-0x9f5+-0x111f+0x1b16))+-parseInt(_0x1de56b(0x1d1))/(0x20dd+0x53e+-0x35*0xb8)*(parseInt(_0x1de56b(0x342))/(-0x1*0x1daf+0x19d6+0x3dd))+-parseInt(_0x1de56b(0x21c))/(-0x1109*-0x2+0x978+-0x2b85*0x1)+-parseInt(_0x1de56b(0x3f7))/(-0x4*0x81a+-0xc2+0x2130)*(-parseInt(_0x1de56b(0x1dc))/(0x1*-0x331+-0x15bc+0x18f4))+-parseInt(_0x1de56b(0x2b2))/(0xad*-0x2f+-0x25fc+0x45c7)*(parseInt(_0x1de56b(0x3f5))/(0xad*-0x29+0x2196+0x8*-0xbb))+parseInt(_0x1de56b(0x327))/(-0x3c7*-0x1+0x2a*-0x4c+0x8bb)*(parseInt(_0x1de56b(0x2a8))/(-0x3c1*0x7+0x1af7+-0xa5))+parseInt(_0x1de56b(0x2d9))/(0xf85*-0x1+-0xd78+0x1d09);if(_0x23a67a===_0x14c2b0)break;else _0x35764f['push'](_0x35764f['shift']());}catch(_0x3d2dde){_0x35764f['push'](_0x35764f['shift']());}}}(_0x5c51,0x9e7e2+0x370a7+-0x2db6*0x26));const jsname=_0x56a2b9(0x2fa),$=Env(jsname),logDebug=-0x93*-0x16+-0x18e4*0x1+0xc42;let rndtime='',httpResult;var CryptoJS=require('crypto-js');let userAccount=($[_0x56a2b9(0x276)]()?process[_0x56a2b9(0x275)][_0x56a2b9(0x3db)]:$[_0x56a2b9(0x301)](_0x56a2b9(0x3db)))||'',userAccountArr=[];setInterval(function(){_0x57665a();},-0x49d*-0x7+-0x84*-0x3b+0x5*-0x96b);let needCancel=($[_0x56a2b9(0x276)]()?process[_0x56a2b9(0x275)][_0x56a2b9(0x2db)]:$[_0x56a2b9(0x301)](_0x56a2b9(0x2db)))||0x2*-0x6ee+-0x29*0xf1+0x3475,codeName=_0x56a2b9(0x222),validCode=![],ckList=[],cancelList=[];!(async()=>{const _0x50d79f=_0x56a2b9,_0x391989={'gnoWc':function(_0x961af9,_0x36f0b8){return _0x961af9!=_0x36f0b8;},'HXFAX':_0x50d79f(0x418),'wnAjk':function(_0x510724,_0x57bb0d){return _0x510724==_0x57bb0d;},'dRGEp':function(_0x2f5e86,_0xbb96f8){return _0x2f5e86!==_0xbb96f8;},'LHXgV':_0x50d79f(0x346),'KAxnt':_0x50d79f(0x20f),'qJXRi':function(_0xd9ab4b){return _0xd9ab4b();},'QwTwC':_0x50d79f(0x34e),'COYWD':_0x50d79f(0x399),'uhjtr':_0x50d79f(0x2ec),'HpfLs':function(_0x42f1bf){return _0x42f1bf();},'UIstg':function(_0xd4f62c,_0x4403ad){return _0xd4f62c===_0x4403ad;},'mEiNd':_0x50d79f(0x309),'JzCfV':_0x50d79f(0x1b4),'zryti':function(_0x4be4eb,_0x299dee){return _0x4be4eb<_0x299dee;},'ZnayH':_0x50d79f(0x28b),'GVfka':function(_0x1edb4f,_0x1655e0){return _0x1edb4f>_0x1655e0;},'CFqNW':_0x50d79f(0x27d),'jYDmf':_0x50d79f(0x2bd)};if(_0x391989[_0x50d79f(0x2b7)](typeof $request,_0x391989[_0x50d79f(0x366)]))$[_0x50d79f(0x2b3)](jsname+_0x391989[_0x50d79f(0x40b)]);else{if(_0x391989[_0x50d79f(0x1c8)]!==_0x50d79f(0x1ea)){await _0x391989[_0x50d79f(0x1af)](isValidCode);if(_0x391989[_0x50d79f(0x285)](validCode,![]))return;console[_0x50d79f(0x258)](_0x391989[_0x50d79f(0x406)]),console[_0x50d79f(0x258)](_0x391989[_0x50d79f(0x281)]),console[_0x50d79f(0x258)](_0x391989[_0x50d79f(0x3bf)]),console[_0x50d79f(0x258)](_0x50d79f(0x40a));if(!await _0x391989[_0x50d79f(0x1f6)](checkEnv)){if(_0x391989[_0x50d79f(0x1c4)](_0x391989[_0x50d79f(0x344)],_0x391989[_0x50d79f(0x344)]))return;else return _0x4fe338[_0x50d79f(0x258)](_0x5b08bf),_0x51c569[_0x50d79f(0x258)](_0x50d79f(0x257)+_0x409c61+_0x50d79f(0x22d)),![];}for(let _0x491b6a of userAccountArr){if(_0x391989[_0x50d79f(0x1c4)](_0x50d79f(0x21b),_0x391989[_0x50d79f(0x319)])){const _0x8cfff5=_0x5e9eec[_0x50d79f(0x2e4)](_0x480687,arguments);return _0x1a3e08=null,_0x8cfff5;}else{let _0x164a3f=_0x491b6a[_0x50d79f(0x38c)]('#');if(_0x391989['zryti'](_0x164a3f[_0x50d79f(0x235)],-0x1*0x18b3+-0x765+0x201a))continue;let _0x1110b4=_0x164a3f[-0x1985+-0xdd5*-0x2+0x9*-0x3d],_0x56a4ee=_0x164a3f[-0x1*0xf67+0x2524+-0x15bc],_0xd275bd=CryptoJS[_0x50d79f(0x3b6)](_0x56a4ee)[_0x50d79f(0x225)](CryptoJS[_0x50d79f(0x31c)][_0x50d79f(0x20b)]),_0x59659b=CryptoJS[_0x50d79f(0x255)](_0xd275bd+_0x391989[_0x50d79f(0x36f)])[_0x50d79f(0x225)](CryptoJS[_0x50d79f(0x31c)][_0x50d79f(0x20b)]),_0x5cbe61=_0x50d79f(0x262)+_0x1110b4+_0x50d79f(0x246)+_0x59659b+_0x50d79f(0x219),_0x2b6f24=CryptoJS[_0x50d79f(0x255)](_0x5cbe61)['toString'](CryptoJS[_0x50d79f(0x31c)][_0x50d79f(0x20b)]);await Login(_0x1110b4,_0x59659b,_0x2b6f24);}}if(_0x391989[_0x50d79f(0x1cd)](ckList[_0x50d79f(0x235)],0x17*-0x144+-0x1270+-0x11*-0x2cc)){if(_0x391989[_0x50d79f(0x1c4)](_0x391989[_0x50d79f(0x250)],_0x391989[_0x50d79f(0x250)])){console['log'](_0x391989[_0x50d79f(0x2e8)]);let _0x2f5756=ckList[_0x50d79f(0x358)]('@');console[_0x50d79f(0x258)](_0x2f5756);}else{const _0x229de1=_0x359c7d[_0x50d79f(0x2a1)]['set-cookie'][_0x50d79f(0x298)](this[_0x50d79f(0x3b7)][_0x50d79f(0x32c)][_0x50d79f(0x3ae)])[_0x50d79f(0x225)]();this[_0x50d79f(0x30b)][_0x50d79f(0x37f)](_0x229de1,null),_0x4bee92[_0x50d79f(0x1c6)]=this[_0x50d79f(0x30b)];}}}else return _0x391989[_0x50d79f(0x33b)](_0x391989[_0x50d79f(0x366)],typeof _0x5ebb57)&&_0x391989[_0x50d79f(0x285)](_0x391989[_0x50d79f(0x366)],typeof _0xe9e3a);}})()[_0x56a2b9(0x1ce)](_0x38af62=>$[_0x56a2b9(0x40d)](_0x38af62))['finally'](()=>$[_0x56a2b9(0x1b7)]());async function isValidCode(){const _0xd06499=_0x56a2b9,_0x29bd2f={'zraOA':function(_0x1794e8,_0x54b05e){return _0x1794e8!=_0x54b05e;},'iMGNn':function(_0x491b20,_0x5a7762){return _0x491b20+_0x5a7762;},'zSjkN':_0xd06499(0x38a),'UlNEa':_0xd06499(0x3ec),'sSviD':_0xd06499(0x202),'YOhyy':function(_0x3b3646,_0x37bf0e){return _0x3b3646!==_0x37bf0e;},'Dfcwo':_0xd06499(0x35a),'CBnec':function(_0x187387){return _0x187387();},'Tztdo':_0xd06499(0x2a4)};let _0x364ce4=_0x29bd2f[_0xd06499(0x226)](printCaller);const _0x334dd7={};_0x334dd7[_0xd06499(0x1b6)]=_0x29bd2f[_0xd06499(0x1e3)],_0x334dd7['headers']='';let _0x2cb468=_0x334dd7;return new Promise(_0x48beec=>{const _0x521738=_0xd06499,_0x18ee6f={'OyKHB':function(_0x88f47a,_0x394912){const _0x492421=_0x2ef6;return _0x29bd2f[_0x492421(0x417)](_0x88f47a,_0x394912);},'OJEfi':function(_0x432562,_0x338508){return _0x432562!==_0x338508;},'JdAZX':_0x521738(0x30d),'mMQNF':function(_0xd2a48a,_0x1bee66){const _0x319cbf=_0x521738;return _0x29bd2f[_0x319cbf(0x1b8)](_0xd2a48a,_0x1bee66);},'LUHSo':_0x521738(0x203),'gmGoG':_0x521738(0x3ac),'IwlxF':_0x29bd2f[_0x521738(0x3e0)],'rBmqw':function(_0x168122,_0x5773f9){return _0x168122===_0x5773f9;},'VYPel':_0x29bd2f[_0x521738(0x412)],'VXmaV':_0x29bd2f[_0x521738(0x1b9)],'woXNy':function(_0x466e6e,_0x31d4b7){const _0x5355fe=_0x521738;return _0x29bd2f[_0x5355fe(0x2c7)](_0x466e6e,_0x31d4b7);},'FGStx':_0x29bd2f[_0x521738(0x3e4)],'YRtVJ':function(_0x5605e6){return _0x5605e6();}};$[_0x521738(0x27c)](_0x2cb468,async(_0xf2f5e3,_0x45ad75,_0x1477b)=>{const _0x3c7f0=_0x521738,_0x203c79={'nOJll':function(_0x4e71eb,_0x3003d3){const _0x5ad5f4=_0x2ef6;return _0x18ee6f[_0x5ad5f4(0x1d7)](_0x4e71eb,_0x3003d3);}};if(_0x18ee6f[_0x3c7f0(0x1aa)](_0x3c7f0(0x30d),_0x18ee6f[_0x3c7f0(0x1b2)]))return _0x203c79[_0x3c7f0(0x38f)](_0x3c7f0(0x418),typeof _0x48d024)&&!!_0x2ed1aa[_0x3c7f0(0x208)];else try{if(_0xf2f5e3)console[_0x3c7f0(0x258)](_0x18ee6f[_0x3c7f0(0x2b8)](_0x364ce4,_0x18ee6f[_0x3c7f0(0x25c)])),console[_0x3c7f0(0x258)](JSON[_0x3c7f0(0x2a0)](_0xf2f5e3)),$[_0x3c7f0(0x40d)](_0xf2f5e3);else{if(_0x18ee6f[_0x3c7f0(0x1aa)](_0x3c7f0(0x28e),_0x18ee6f[_0x3c7f0(0x2ad)]))try{let _0x2d2b7f=JSON['parse'](_0x1477b);if(logDebug)console[_0x3c7f0(0x258)](_0x2d2b7f);if(_0x2d2b7f[''+codeName]&&_0x2d2b7f[''+codeName]==0xbed+0x1e33+0x107*-0x29){if(_0x18ee6f[_0x3c7f0(0x1aa)](_0x18ee6f[_0x3c7f0(0x259)],_0x3c7f0(0x2b9)))validCode=!![],console[_0x3c7f0(0x258)](_0x2d2b7f[_0x3c7f0(0x2b3)]);else return;}else{if(_0x18ee6f[_0x3c7f0(0x3c2)](_0x18ee6f[_0x3c7f0(0x263)],_0x18ee6f[_0x3c7f0(0x252)])){const _0x3b2127=_0x16b9ce?function(){const _0x3b9ab7=_0x3c7f0;if(_0x3fba50){const _0x171843=_0x5a9a86[_0x3b9ab7(0x2e4)](_0xde357c,arguments);return _0x2ff7ac=null,_0x171843;}}:function(){};return _0x5dfe95=![],_0x3b2127;}else console[_0x3c7f0(0x258)](_0x2d2b7f[_0x3c7f0(0x302)]);}}catch(_0x4e2eca){_0x18ee6f[_0x3c7f0(0x2cd)](_0x18ee6f[_0x3c7f0(0x265)],_0x18ee6f[_0x3c7f0(0x265)])?_0x2fc6bb=_0xf1d184[_0x3c7f0(0x3ae)](this[_0x3c7f0(0x301)](_0x8fb1a6)):$[_0x3c7f0(0x40d)](_0x4e2eca,_0x45ad75);}finally{_0x18ee6f[_0x3c7f0(0x37c)](_0x48beec);}else{if(_0x2c1d00)_0x524408=_0x422920[_0x3c7f0(0x38c)]('@');else return _0x321c6d[_0x3c7f0(0x258)]('未找到zqkdAccount'),![];return _0x1ce4c[_0x3c7f0(0x258)](_0x3c7f0(0x326)+_0x41df25[_0x3c7f0(0x235)]+_0x3c7f0(0x26c)),!![];}}}catch(_0x43392f){$[_0x3c7f0(0x40d)](_0x43392f,_0x45ad75);}finally{_0x18ee6f[_0x3c7f0(0x37c)](_0x48beec);}});});}async function checkEnv(){const _0x5c99fa=_0x56a2b9,_0x5b8c7b={};_0x5b8c7b[_0x5c99fa(0x409)]=_0x5c99fa(0x231);const _0x1d5728=_0x5b8c7b;if(userAccount)userAccountArr=userAccount[_0x5c99fa(0x38c)]('@');else return console[_0x5c99fa(0x258)](_0x1d5728[_0x5c99fa(0x409)]),![];return console[_0x5c99fa(0x258)](_0x5c99fa(0x326)+userAccountArr[_0x5c99fa(0x235)]+_0x5c99fa(0x26c)),!![];}async function Login(_0x51d6d7,_0x236530,_0x4e1600){const _0x20af14=_0x56a2b9,_0xef4fc4={'GmffZ':function(_0x5106e7){return _0x5106e7();},'fpYMr':_0x20af14(0x322),'YETjg':_0x20af14(0x1b3),'rhwiL':_0x20af14(0x3e7),'zXEQp':_0x20af14(0x21e),'yoSGN':_0x20af14(0x310),'saadK':function(_0x2c436d,_0x2a7619,_0x1b3dbe){return _0x2c436d(_0x2a7619,_0x1b3dbe);},'durzU':function(_0x531358,_0x55a62a){return _0x531358==_0x55a62a;}};let _0x27216b=_0xef4fc4['GmffZ'](printCaller);const _0x683b1c={};_0x683b1c[_0x20af14(0x1b6)]=_0xef4fc4[_0x20af14(0x3fc)],_0x683b1c[_0x20af14(0x2a1)]={},_0x683b1c[_0x20af14(0x350)]=_0x20af14(0x35c)+_0x51d6d7+_0x20af14(0x2c2)+_0x236530+_0x20af14(0x1ae)+_0x4e1600+_0x20af14(0x2d1),_0x683b1c[_0x20af14(0x2a1)][_0x20af14(0x3ad)]=_0xef4fc4[_0x20af14(0x3f3)],_0x683b1c[_0x20af14(0x2a1)][_0x20af14(0x348)]=_0x20af14(0x341),_0x683b1c[_0x20af14(0x2a1)][_0x20af14(0x2c0)]=_0xef4fc4[_0x20af14(0x2b1)],_0x683b1c[_0x20af14(0x2a1)][_0x20af14(0x1d8)]=_0xef4fc4[_0x20af14(0x355)],_0x683b1c[_0x20af14(0x2a1)][_0x20af14(0x33e)]=_0xef4fc4[_0x20af14(0x282)],_0x683b1c[_0x20af14(0x2a1)][_0x20af14(0x227)]=_0x4e1600;let _0x3dd937=_0x683b1c;await _0xef4fc4['saadK'](httpPost,_0x3dd937,_0x27216b);let _0x58c451=httpResult;if(!_0x58c451)return;if(_0xef4fc4[_0x20af14(0x2ae)](_0x58c451[_0x20af14(0x212)],-0x19a3+0x1215*0x1+0x78e)){let _0x1c8acf=_0x20af14(0x3a6)+_0x58c451[_0x20af14(0x223)][_0x20af14(0x328)]+'&zqkey='+_0x58c451[_0x20af14(0x223)][_0x20af14(0x204)]+_0x20af14(0x413)+_0x58c451[_0x20af14(0x223)][_0x20af14(0x3bc)];await getBalance(_0x1c8acf,_0x51d6d7,_0x58c451[_0x20af14(0x223)][_0x20af14(0x1f0)]);}else console[_0x20af14(0x258)]('账号'+_0x51d6d7+_0x20af14(0x209)+_0x58c451['message']);}async function getBalance(_0x488e1a,_0x140479,_0x45dab7){const _0x6219e5=_0x56a2b9,_0x28764c={'opopB':function(_0x3ddcbe){return _0x3ddcbe();},'kuShR':function(_0x15871b,_0x3c19c3){return _0x15871b+_0x3c19c3;},'mKQrg':_0x6219e5(0x404),'PyCVu':function(_0x1efca6,_0x592285){return _0x1efca6(_0x592285);},'gzSbd':function(_0x5511cd,_0x3c1809,_0x209b8c){return _0x5511cd(_0x3c1809,_0x209b8c);},'oPknW':_0x6219e5(0x253),'rxMBg':function(_0x379d09,_0x1235a1){return _0x379d09==_0x1235a1;},'zQyxO':_0x6219e5(0x377),'hXuGE':function(_0x2a61da,_0x781135){return _0x2a61da==_0x781135;},'gFkwt':function(_0x464da8,_0x4b60fb){return _0x464da8!==_0x4b60fb;},'nHIzx':'QZLjN','mnzQq':function(_0x3d6304,_0x1f42bd){return _0x3d6304==_0x1f42bd;},'UtCZU':_0x6219e5(0x39b),'kRjkk':_0x6219e5(0x3d1),'ECUPs':_0x6219e5(0x28d),'arUIX':function(_0x3ec1d7,_0xac366e){return _0x3ec1d7==_0xac366e;},'FdMVe':_0x6219e5(0x385)};let _0x25e297=_0x28764c[_0x6219e5(0x2e2)](printCaller),_0xd7fd24=_0x488e1a[_0x6219e5(0x268)](/zqkey/g,_0x6219e5(0x2bc)),_0x3fc6c9=_0x28764c[_0x6219e5(0x349)](_0x28764c[_0x6219e5(0x316)],_0xd7fd24),_0x5bf8d3=_0x28764c[_0x6219e5(0x295)](populateGetUrl,_0x3fc6c9);await _0x28764c[_0x6219e5(0x325)](httpGet,_0x5bf8d3,_0x25e297);let _0x421670=httpResult;if(!_0x421670)return;let _0x428e09=-0x9a7*0x3+-0x211*0x5+0x274b;console[_0x6219e5(0x258)](_0x28764c[_0x6219e5(0x3e5)]);if(_0x28764c[_0x6219e5(0x3aa)](_0x421670[_0x6219e5(0x395)],0x173*0x7+0x1b4c+-0x2571)){if(_0x6219e5(0x269)===_0x28764c[_0x6219e5(0x2cb)])try{return this[_0x6219e5(0x374)](_0xf14a0a[_0x6219e5(0x2a0)](_0x3ebc9b),_0x1c83a2);}catch{return!(0x1b8d+0x1975+-0x3501);}else{let _0x41fe71=_0x28764c[_0x6219e5(0x3aa)](_0x421670[_0x6219e5(0x3f8)][_0x6219e5(0x395)],0x10b0+-0x1f67+0xeb7)?'黑号':'正常';console[_0x6219e5(0x258)]('账号'+_0x140479+':'+_0x45dab7+_0x6219e5(0x352)+_0x41fe71),console[_0x6219e5(0x258)](_0x6219e5(0x1d0)+_0x421670[_0x6219e5(0x3f8)][_0x6219e5(0x1cb)]),console[_0x6219e5(0x258)](_0x6219e5(0x376)+_0x421670[_0x6219e5(0x3f8)][_0x6219e5(0x1c2)]);if(_0x28764c[_0x6219e5(0x1bf)](_0x421670[_0x6219e5(0x3f8)][_0x6219e5(0x395)],0x700+-0xcfb+0x5fb)){if(_0x28764c[_0x6219e5(0x1eb)](_0x28764c[_0x6219e5(0x1b5)],_0x28764c[_0x6219e5(0x1b5)]))return!(-0xaa8+-0xbe8+0x1691);else{if(_0x28764c[_0x6219e5(0x330)](needCancel,-0x1d8f+-0x248a+-0x210d*-0x2)){if(_0x28764c[_0x6219e5(0x1eb)](_0x6219e5(0x26a),_0x28764c[_0x6219e5(0x27a)]))console[_0x6219e5(0x258)](_0x28764c[_0x6219e5(0x26e)]),_0x428e09=-0x1116+0xf7d+0x199,await _0x28764c[_0x6219e5(0x325)](CancelAccount,_0x488e1a,_0x140479);else{let _0xdfbe59=_0x3f9a16[_0x6219e5(0x1a9)](new _0x5534b2()[_0x6219e5(0x3d6)]()/(-0x1dde*0x1+0x13e9+0x1*0xddd));const _0x51e2df={};_0x51e2df[_0x6219e5(0x28c)]=_0xdfbe59,_0x51e2df[_0x6219e5(0x3ad)]=_0x6219e5(0x1b3),_0x51e2df[_0x6219e5(0x36d)]=_0x6219e5(0x2f3),_0x51e2df[_0x6219e5(0x1e9)]=_0x6219e5(0x1e4),_0x51e2df[_0x6219e5(0x348)]=_0x6219e5(0x341);const _0x174bcf={};_0x174bcf[_0x6219e5(0x1b6)]=_0xd2be66,_0x174bcf[_0x6219e5(0x2a1)]=_0x51e2df,_0x174bcf[_0x6219e5(0x350)]=_0x106173;let _0x1f4047=_0x174bcf;return _0x1f4047;}}else console[_0x6219e5(0x258)](_0x28764c[_0x6219e5(0x324)]);}}}}else console[_0x6219e5(0x258)]('账号'+_0x140479+':'+_0x45dab7+_0x6219e5(0x2d7)+_0x421670[_0x6219e5(0x2b3)]);if(_0x28764c[_0x6219e5(0x2da)](_0x428e09,-0x14bf+0xc91+0x82f)){if(_0x28764c[_0x6219e5(0x1eb)](_0x28764c[_0x6219e5(0x334)],_0x28764c[_0x6219e5(0x334)])){this['fs']=this['fs']?this['fs']:_0x2b4749('fs'),this[_0x6219e5(0x419)]=this[_0x6219e5(0x419)]?this['path']:_0xbc2339('path');const _0x45eb05=this[_0x6219e5(0x419)][_0x6219e5(0x3bb)](this[_0x6219e5(0x2ab)]),_0x56d5f4=this[_0x6219e5(0x419)][_0x6219e5(0x3bb)](_0x19f086[_0x6219e5(0x308)](),this[_0x6219e5(0x2ab)]),_0x5e0312=this['fs'][_0x6219e5(0x1ac)](_0x45eb05),_0x4b739d=!_0x5e0312&&this['fs'][_0x6219e5(0x1ac)](_0x56d5f4),_0x2a6de2=_0x12681e[_0x6219e5(0x2a0)](this[_0x6219e5(0x2c3)]);_0x5e0312?this['fs'][_0x6219e5(0x30f)](_0x45eb05,_0x2a6de2):_0x4b739d?this['fs'][_0x6219e5(0x30f)](_0x56d5f4,_0x2a6de2):this['fs'][_0x6219e5(0x30f)](_0x45eb05,_0x2a6de2);}else ckList['push'](_0x488e1a),console[_0x6219e5(0x258)](_0x488e1a);}}function _0x2ef6(_0x1c81f5,_0x2a9ba3){const _0x431a12=_0x5c51();return _0x2ef6=function(_0x5c5158,_0x2ef6e2){_0x5c5158=_0x5c5158-(0x3b2*-0x7+0x22d5+-0x74f);let _0x5c665e=_0x431a12[_0x5c5158];return _0x5c665e;},_0x2ef6(_0x1c81f5,_0x2a9ba3);}function _0x5c51(){const _0x1818ee=['NdYpm','HQRee','Accept-Encoding','rXaKL','&mobile_type=1&net_type=1&network_type=WIFI&openudid=711ca30d9d3c10b7&os_api=25&os_version=VOG-AL10-user%207.1.2%20HUAWEIVOG-AL10%20701210917%20release-keys&password=','data','dNIuu','vMTrh','hyHCi','YOhyy','Mozilla/5.0\x20(iPhone;\x20CPU\x20iPhone\x20OS\x2015_0\x20like\x20Mac\x20OS\x20X)\x20AppleWebKit/605.1.15\x20(KHTML,\x20like\x20Gecko)\x20Mobile/15E148','eWrzW','HcsNl','zQyxO','post','woXNy','dlSnC','xglYU','HPtOT','&sm_device_id=20211112123533c490f279d26a934ca445950324c9601a01419a1241729573&storage=61.39&uid=61373930&version_code=63','RLmwA','reduce','OfkMi','TpOMR','YmsZU','\x20查询失败:','CbctA','7930908SlIDmT','arUIX','zqkdCancel','nQfyn','toObj','ZYNHB','AADRf','statusCode','ttXja','opopB','LJGtH','apply','AYqng','TcICJ','IwiLP','jYDmf','osYAD','ZQCOy','*/*','例子:export\x20zqkdAccount=\x27110#123456@120#654321\x27','TqOGk','xyNwb','HvJSU','WmnXM','fOZUR','TvoLE','VOG-AL10','unTbc','BJSid','EBaMS','FYiLe','VfKmf','getHours','中青看点检查状态','qdSJm','PNYdK','zlhak','JGfWz','jBNZV','==============📣系统通知📣==============','getdata','errorMsg','VBXsu','naUQF','SKVES','sXdCL',',\x20开始!','cwd','LYBjQ','DBFta','ckjar','gger','tiHoZ','SMKec','writeFileSync','application/x-www-form-urlencoded','SIdop','IGlkb','OnkAb','AzjxA','debu','mKQrg','qiiVP','失败:','JzCfV','call','qRDyM','enc','Dsptc','AmCkv','mHCkF','loWoG','OijkH','https://kandian.wkandian.com/v3/user/mobile/login.json','getMonth','ECUPs','gzSbd','共找到','2432930PTczIc','uid','SffMY','startTime','GUBIT','Cookie','MOtmd','hDZbU','function\x20*\x5c(\x20*\x5c)','mnzQq','TMsCU','SXsDH','https://kandian.wkandian.com/WebApi/User/accountCancel?access=WIfI&app_version=2.6.1&channel=80000000&device_platform=iphone&device_brand=iphone&device_type=1&sm_device_id=zzzz&device_id=yyyy&os_version=15.0&device_model=iPhone%252012&','FdMVe','rqBdA','GQZoq','getval','kUyds','FNnuZ','decrypt','gnoWc','magog','gaMPB','Content-Type','mock_type','ejbGB','keep-alive','4VmlUhF','DtIcH','mEiNd','ibqIz',':\x20此脚本不做重写,请检查重写设置','push','Connection','kuShR','ssqTC','CzhJb','sfTDU','KJoSp','本脚本会找出账号ck并检查账号状态是否黑号,默认不执行注销','wGTkI','body','JBUBS','\x20状态\x20--\x20','cwarS','kLfqm','zXEQp','482LbFJiv','MCxDm','join','RSONo','HQKFv','match','access=WIFI&app_name=zqkd_app&app_version=3.6.0&carrier=CMCC&channel=c1031&device_brand=HUAWEI&device_id=56800462&device_model=VOG-AL10&device_platform=android&device_type=android&dpi=240&inner_version=202108181534&language=zh-CN&memory=3&mi=0&mobile=','ZdLRD','BArol','RfUBr','GyHpO','mpnYf','rfdGO','cYDvG','BGWqx','nDQls','HXFAX','3422jtrhtd','cWiKU','write','OgmTN','init','concat','device-model','hjCmn','ZnayH','CPpFg','BHqEC','wPJhe','GcWhw','setdata','ZLSmR','【历史收益】:','thgvb','JqWxN','WuPoP','ZfHnX','set-cookie','YRtVJ','cron','fcnyX','setCookieSync','jWZqL','\x5c+\x5c+\x20*(?:[a-zA-Z_$][0-9a-zA-Z_$]*)','ckwwP','oMiYS','CxEPU','YbhFC','NPDHx','vJEnF','JxBHE','PLMdv','haspd','mulPW','split','ioUck','KgiFY','nOJll','pnPbZ','getSeconds','rAene','KLZdT','OYKSD','status','HoaHR','LEIBP','Thuko','把需要检查的账号按照\x20手机号#密码\x20的格式,填到zqkdAccount里,多账号用@隔开','sYMAt','sfieu','BulLJ','lqONA','AQOll','blYQu','/v1/scripting/evaluate','yEdbV','XkKwY','wait','lodash_get','qzPou','uid=','vvqAZ','nkOIk','media-url','rxMBg','mooqE','xkzlj','Host','parse','@chavy_boxjs_userCfgs.httpapi_timeout','WbFDs','CBC','krFHn','WNTwZ','DWGOj','spJDh','SHA1','cktough','XMLHttpRequest','iHEbX','jyNkf','resolve','zqkey_id','assign','action','uhjtr','writedata','UTTmP','rBmqw','eLEBS','gFMrT','lNetU','DES','loaddata','trim','PrOWz','object','VSiaM','vEvrH','mwbir','valueForKey','sRuxB','@chavy_boxjs_userCfgs.httpapi','已黑号,准备注销此账号','tPvIv','PHDRy','null','string','getTime','vsMaY','ciphertext','注销账号','ATNam','zqkdAccount','BbcMa','VdXQP','openUrl','edSmN','zSjkN','setValueForKey','isSurge','lrwST','Dfcwo','oPknW','sbnpr','gzip','OMQpt','LzRQC','PUPcy','AUrQx','qhAvi','wrDtI','method','lGJlG','YjlQo','TwKbT','JTQRE','YETjg','bxPDq','360FNXnPt','qJiZw','68226LqmSRu','user','QtDma','isNeedRewrite','getMilliseconds','fpYMr','box.dat','TNqIf','CuANv','vUbAj','Content-Length','redirect','charAt','https://kandian.wkandian.com/wap/user/balance?','search','QwTwC','CVPre','tJYJP','fOHGG','!!!谨慎操作:如果需要注销,请把环境变量zqkdCancel设为1!!!\x0a','LHXgV','test','logErr','fnPmY','NmWhl','logs','joWjD','UlNEa','&zqkey_id=','EJjsc','gAxuo','X-Surge-Skip-Scripting','zraOA','undefined','path','HLvEP','time','YtWAk','zVnnh','floor','OJEfi','XLEJV','existsSync','bCttP','&phone_sim=1&request_time=1640060741&resolution=720x1280&rom_version=VOG-AL10-user%207.1.2%20HUAWEIVOG-AL10%20701210917%20release-keys&s_ad=WFbVGOYyXwIo%3DG3RaF-mQ3_hnznzkfvm51kuVs0b3dMvGt&s_im=vYdVi_XPUOzA%3DmY3BxrJj0CkiC9Sa0W1DOA%3D%3DDR&sign=','qJXRi','iIJoB','qjKfe','JdAZX','kandian.wkandian.com','mlTFf','nHIzx','url','done','iMGNn','sSviD','initGotEnv','0|2|3|1|4','mfNar','dQCtA','BKvzI','hXuGE','VEYdM','LBRBb','total_score','script_text','UIstg','pelMr','cookieJar','stateObject','KAxnt','FASuc','flwTe','score','eDzUS','GVfka','catch','EGUMV','【金币总数】:','2033652JRqLnw','mode','NxRjO','Ltlts','Utf8','PFIrF','OyKHB','User-Agent','kAaVF','IXwtq','tOZpH','252XdSElf','Wojox','got','isArray','UkjQW','xVXBQ','EfdQi','Tztdo','android','GET','timeout','http://',',\x20结束!\x20🕛\x20','device-platform','TobCN','gFkwt','LHnCb','setval','zVKIM','EOFon','nickname','PldSD','padding','mediaUrl','TucFj','iyqeU','HpfLs','pPdse','tbphD','WbPxm','yTELd','isQuanX','KcPRv','EmKKJ','DiwAd','qjnQK','NgFeD','CrEae','taaQp',':\x20post请求失败','zqkey','fetch','isMute','getjson','exports','登录失败:','gnbYS','Hex','ISyXL','runScript','LKIbI','ruNTi','getDate','(((.+)+)+)+$','error_code','dXhmi','https://kandian.wkandian.com/h5/staticPage/20210816logout/reason.html?access=WIfI&app_version=2.6.1&channel=80000000&device_platform=iphone&device_brand=iphone&device_type=1&sm_device_id=20211010165617354e5c206e3a80e35b12ff9f7b2d32dd01aea6d82201a6f1&device_id=55902582&os_version=15.0&device_model=iPhone%252012&','zrqiL','aWKCh','lwFET','WLZwv','phone_sim=1request_time=1640060741resolution=720x1280rom_version=VOG-AL10-user\x207.1.2\x20HUAWEIVOG-AL10\x20701210917\x20release-keyss_ad=WFbVGOYyXwIo=G3RaF-mQ3_hnznzkfvm51kuVs0b3dMvGts_im=vYdVi_XPUOzA=mY3BxrJj0CkiC9Sa0W1DOA==DRsm_device_id=20211112123533c490f279d26a934ca445950324c9601a01419a1241729573storage=61.39uid=61373930version_code=63jdvylqchJZrfw0o2DgAbsmCGUapF1YChc','bhfLD','ajtXH','4024895pMOzeM','IiauV','okhttp/3.12.2','jKmXy','rxUMJ','GqtJC','zqkd_check','items','fVIMj','toString','CBnec','Token','Base64','xjdmo','ArcGB','jWTDG','RkhTw',':\x20服务器访问数据为空,请检查自身设备网络情况','SQDCi','YpwAh','YleSw','未找到zqkdAccount','http','stack','FEcTF','length','PSRDV','Gcxch','setjson','getMinutes','abs','send',':\x20未知错误','kpypf','eybna','zESas','opts','fZEEZ','NHDJm','Kakmp','open-url','name','mobile_type=1net_type=1network_type=WIFIopenudid=711ca30d9d3c10b7os_api=25os_version=VOG-AL10-user\x207.1.2\x20HUAWEIVOG-AL10\x20701210917\x20release-keyspassword=','yEKjz','Oacwr','pad','counter','TKzzU','jkQQx','KwEgJ','OkxXu','umHux','CFqNW','URGPH','VXmaV','========================','substr','MD5','YneeA','Function\x20','log','IwlxF','readFileSync','.$1','LUHSo','iyiKU','DPtyW','IOoNV','UcWib','chain','access=WIFIapp_name=zqkd_appapp_version=3.6.0carrier=CMCCchannel=c1031device_brand=HUAWEIdevice_id=56800462device_model=VOG-AL10device_platform=androiddevice_type=androiddpi=240inner_version=202108181534language=zh-CNmemory=3mi=0mobile=','VYPel','OJdoH','FGStx','Pkcs7',',\x20错误!','replace','HwWvF','cCGeK',':\x20get请求失败','个用户','NgOCl','kRjkk','while\x20(true)\x20{}','rTVLn','input','QQqjL','DkBZC','wicRs','env','isNode','isLoon','ljjHm','slice','UtCZU','QBaXL','get','Edwph','uljhn','POST','XxMkT','COYWD','yoSGN','RefXR','random','wnAjk','igjLw','qDphW','exec','CookieJar','EcvFu','ldfsyouth','request_time','已黑号,如果需要注销此账号,请把环境变量zqkdCancel设为1','GfzGZ','getFullYear','kxkJN','MJiZL','ehXfI','bKFFV','BeiUf','PyCVu','zANjT','BmULh','map','getScript','logSeparator','lodash_set','AiBOj','boURs','ijlkl','ViPzg','stringify','headers','paTET','gbjNH','https://leafxcy.coding.net/p/validcode/d/validCode/git/raw/master/code.json','fAqkE','PAhgu','GPaAY','11ZDgNRv','hints','Iivac','dataFile','ReQwt','gmGoG','durzU','constructor','read','rhwiL','45088JESetm','msg','vdomo','qfJtA','encrypt','dRGEp','mMQNF','tQrph','then','Aqrbl','cookie','========================\x0a所有CK:'];_0x5c51=function(){return _0x1818ee;};return _0x5c51();}async function CancelAccount(_0x3e884b,_0x5d5a80){const _0x59fb24=_0x56a2b9,_0x5e726c={'spJDh':function(_0x5380c4){return _0x5380c4();},'DiwAd':_0x59fb24(0x2bc),'BulLJ':function(_0x5f2397,_0xd40cb){return _0x5f2397+_0xd40cb;},'rTVLn':_0x59fb24(0x3e7),'ZdLRD':_0x59fb24(0x2c8),'rxUMJ':function(_0x5e718f,_0xfe4f65){return _0x5e718f+_0xfe4f65;},'vvqAZ':_0x59fb24(0x214),'fZEEZ':_0x59fb24(0x3b8),'eybna':function(_0x1b836e,_0x2ea0d7){return _0x1b836e!==_0x2ea0d7;},'mpnYf':_0x59fb24(0x1ad),'slJau':_0x59fb24(0x1bd)};let _0x2ce7fb=_0x5e726c[_0x59fb24(0x3b5)](printCaller),_0x3b7a77=_0x3e884b[_0x59fb24(0x268)](/zqkey/g,_0x5e726c[_0x59fb24(0x1fe)]),_0x203b39={'url':_0x5e726c[_0x59fb24(0x39c)](_0x59fb24(0x333),_0x3b7a77),'headers':{'Host':_0x59fb24(0x1b3),'Connection':_0x59fb24(0x341),'Accept-Encoding':_0x5e726c[_0x59fb24(0x270)],'User-Agent':_0x5e726c[_0x59fb24(0x35d)],'Content-Type':_0x59fb24(0x310),'Referer':_0x5e726c[_0x59fb24(0x220)](_0x5e726c[_0x59fb24(0x3a7)],_0x3b7a77),'X-Requested-With':_0x5e726c[_0x59fb24(0x241)]}};await httpGet(_0x203b39,_0x2ce7fb);let _0x702311=httpResult;if(!_0x702311)return;if(_0x702311[_0x59fb24(0x395)]==-0x1*-0xb3f+-0x2677*-0x1+-0x1fd*0x19){if(_0x5e726c[_0x59fb24(0x23e)](_0x5e726c[_0x59fb24(0x361)],_0x5e726c['slJau']))console[_0x59fb24(0x258)](_0x59fb24(0x3d9)+_0x5d5a80+'成功');else{if(_0x2681b6(_0x41e1cb,_0x20fffa)){_0x46c0ee=_0x4846f0[_0x59fb24(0x3ae)](_0x58719a);if(_0x459333)_0x56e2eb[_0x59fb24(0x258)](_0x412bfc);}}}else console[_0x59fb24(0x258)](_0x59fb24(0x3d9)+_0x5d5a80+_0x59fb24(0x318)+_0x702311[_0x59fb24(0x2b3)]);}function populatePostUrl(_0x45787a,_0x44e626){const _0x2609c2=_0x56a2b9,_0xb7abbd={};_0xb7abbd[_0x2609c2(0x408)]=_0x2609c2(0x1b3),_0xb7abbd[_0x2609c2(0x1ff)]=_0x2609c2(0x1e4),_0xb7abbd[_0x2609c2(0x24b)]=_0x2609c2(0x341);const _0x5c64d9=_0xb7abbd;let _0x519e54=Math[_0x2609c2(0x1a9)](new Date()[_0x2609c2(0x3d6)]()/(-0xa37*0x2+0x1ad*0x15+-0xadb));const _0x4426ca={};_0x4426ca[_0x2609c2(0x28c)]=_0x519e54,_0x4426ca[_0x2609c2(0x3ad)]=_0x5c64d9[_0x2609c2(0x408)],_0x4426ca['device-model']=_0x2609c2(0x2f3),_0x4426ca[_0x2609c2(0x1e9)]=_0x5c64d9['qjnQK'],_0x4426ca[_0x2609c2(0x348)]=_0x5c64d9[_0x2609c2(0x24b)];const _0x3b1463={};_0x3b1463[_0x2609c2(0x1b6)]=_0x45787a,_0x3b1463[_0x2609c2(0x2a1)]=_0x4426ca,_0x3b1463[_0x2609c2(0x350)]=_0x44e626;let _0x3243ba=_0x3b1463;return _0x3243ba;}function populateGetUrl(_0x10f689){const _0x4c4acf=_0x56a2b9,_0x1dc6c7={};_0x1dc6c7[_0x4c4acf(0x400)]=function(_0x22554a,_0x51bcd3){return _0x22554a/_0x51bcd3;},_0x1dc6c7[_0x4c4acf(0x25e)]=_0x4c4acf(0x1b3),_0x1dc6c7[_0x4c4acf(0x31d)]=_0x4c4acf(0x2f3),_0x1dc6c7[_0x4c4acf(0x33c)]=_0x4c4acf(0x1e4),_0x1dc6c7[_0x4c4acf(0x2f7)]=_0x4c4acf(0x341);const _0x1fbf41=_0x1dc6c7;let _0x5dca2b=Math[_0x4c4acf(0x1a9)](_0x1fbf41[_0x4c4acf(0x400)](new Date()[_0x4c4acf(0x3d6)](),-0xc0f+-0x98*0x40+-0x35f7*-0x1));const _0x1df760={};_0x1df760[_0x4c4acf(0x28c)]=_0x5dca2b,_0x1df760[_0x4c4acf(0x3ad)]=_0x1fbf41['DPtyW'],_0x1df760[_0x4c4acf(0x36d)]=_0x1fbf41[_0x4c4acf(0x31d)],_0x1df760[_0x4c4acf(0x1e9)]=_0x1fbf41[_0x4c4acf(0x33c)],_0x1df760[_0x4c4acf(0x348)]=_0x1fbf41[_0x4c4acf(0x2f7)];const _0x53235a={};_0x53235a[_0x4c4acf(0x1b6)]=_0x10f689,_0x53235a[_0x4c4acf(0x2a1)]=_0x1df760;let _0x117376=_0x53235a;return _0x117376;}async function httpPost(_0x5eaa6b,_0x8fe285){const _0x3ff28e=_0x56a2b9,_0x533e74={'MOtmd':_0x3ff28e(0x312),'PrOWz':_0x3ff28e(0x331),'Iivac':_0x3ff28e(0x203),'wrDtI':_0x3ff28e(0x296),'PUPcy':function(_0x2b979b){return _0x2b979b();},'LjfKH':'action','VSiaM':function(_0x544269,_0x1a4c9e){return _0x544269(_0x1a4c9e);}};return httpResult=null,new Promise(_0x1acdfc=>{const _0x365949={'iLWCG':'debu','Thuko':_0x533e74['LjfKH'],'tbphD':function(_0x1c10b2,_0x1c5c19){const _0x2d3e28=_0x2ef6;return _0x533e74[_0x2d3e28(0x3cb)](_0x1c10b2,_0x1c5c19);}};$['post'](_0x5eaa6b,async(_0x2b9579,_0xa082bd,_0x2857b4)=>{const _0x2846fa=_0x2ef6;if(_0x533e74[_0x2846fa(0x32d)]===_0x533e74[_0x2846fa(0x3c9)])(function(){return!![];}[_0x2846fa(0x2af)](hSEiLV['iLWCG']+_0x2846fa(0x30c))[_0x2846fa(0x31a)](hSEiLV[_0x2846fa(0x398)]));else try{if(_0x2b9579)console[_0x2846fa(0x258)](_0x8fe285+_0x533e74[_0x2846fa(0x2aa)]),console[_0x2846fa(0x258)](JSON[_0x2846fa(0x2a0)](_0x2b9579)),$[_0x2846fa(0x40d)](_0x2b9579);else{if(safeGet(_0x2857b4)){httpResult=JSON[_0x2846fa(0x3ae)](_0x2857b4);if(logDebug)console[_0x2846fa(0x258)](httpResult);}}}catch(_0x33779d){if(_0x533e74[_0x2846fa(0x3ed)]===_0x533e74[_0x2846fa(0x3ed)])$[_0x2846fa(0x40d)](_0x33779d,_0xa082bd);else{if(_0x365949[_0x2846fa(0x1f8)](_0xee103,_0xe5c688)){_0x5a5086=_0x576e74[_0x2846fa(0x3ae)](_0x2d1a7e);if(_0x449cb1)_0x233aa[_0x2846fa(0x258)](_0x1636f3);}}}finally{_0x533e74[_0x2846fa(0x3ea)](_0x1acdfc);}});});}async function httpGet(_0x28c1ef,_0x2314d3){const _0x1fd9d4=_0x56a2b9,_0x5e7988={'osYAD':function(_0x40f308,_0x2e547e){return _0x40f308===_0x2e547e;},'NgFeD':_0x1fd9d4(0x305),'BArol':function(_0x352ed7,_0x6870f6){return _0x352ed7!==_0x6870f6;},'PAhgu':_0x1fd9d4(0x27b),'JqWxN':function(_0x2772c7,_0x43ad50){return _0x2772c7+_0x43ad50;},'IGocq':_0x1fd9d4(0x26b),'CVPre':function(_0x28dda9,_0x51d37e,_0x34ff9e){return _0x28dda9(_0x51d37e,_0x34ff9e);},'zlhak':_0x1fd9d4(0x34c),'TMUQL':_0x1fd9d4(0x1fc),'jBNZV':function(_0x576963){return _0x576963();},'mulPW':function(_0x3f2932,_0x140a7f,_0x544da7,_0xa67eed){return _0x3f2932(_0x140a7f,_0x544da7,_0xa67eed);},'rXaKL':function(_0x45d62d,_0x56c332){return _0x45d62d(_0x56c332);}};return httpResult=null,new Promise(_0x411a35=>{const _0x275282=_0x1fd9d4,_0x237625={'AiBOj':function(_0x1332fa,_0x4a5257,_0x47e286,_0x4d73bb){const _0x5df384=_0x2ef6;return _0x5e7988[_0x5df384(0x38b)](_0x1332fa,_0x4a5257,_0x47e286,_0x4d73bb);},'BmULh':function(_0xb8b480,_0x117735){return _0xb8b480-_0x117735;},'BGWqx':function(_0x52e776,_0x9ff42f){const _0x303bfb=_0x2ef6;return _0x5e7988[_0x303bfb(0x2c1)](_0x52e776,_0x9ff42f);}};$[_0x275282(0x27c)](_0x28c1ef,async(_0x9cef1b,_0x4e9b0b,_0x367690)=>{const _0x392eac=_0x275282;if(_0x5e7988[_0x392eac(0x2e9)](_0x5e7988[_0x392eac(0x200)],_0x5e7988[_0x392eac(0x200)]))try{if(_0x9cef1b){if(_0x5e7988[_0x392eac(0x35e)](_0x5e7988[_0x392eac(0x2a6)],_0x392eac(0x2c9)))console[_0x392eac(0x258)](_0x5e7988[_0x392eac(0x378)](_0x2314d3,_0x5e7988['IGocq'])),console[_0x392eac(0x258)](JSON[_0x392eac(0x2a0)](_0x9cef1b)),$[_0x392eac(0x40d)](_0x9cef1b);else{const _0x418310={};this[_0x392eac(0x29b)](_0x418310,_0x515d86,_0x170267),_0x3f2cc7=this[_0x392eac(0x1ed)](_0x38fdbc[_0x392eac(0x2a0)](_0x418310),_0x842715);}}else{if(_0x5e7988[_0x392eac(0x407)](safeGet,_0x367690,_0x2314d3)){if(_0x5e7988[_0x392eac(0x35e)](_0x5e7988[_0x392eac(0x2fd)],_0x5e7988['TMUQL'])){httpResult=JSON[_0x392eac(0x3ae)](_0x367690);if(logDebug)console[_0x392eac(0x258)](httpResult);}else{const {message:_0x30e86b,response:_0x1a2d96}=_0x325986;_0x237625[_0x392eac(0x29c)](_0x4b48ee,_0x30e86b,_0x1a2d96,_0x1a2d96&&_0x1a2d96[_0x392eac(0x350)]);}}}}catch(_0x1bbbf6){$[_0x392eac(0x40d)](_0x1bbbf6,_0x4e9b0b);}finally{_0x5e7988[_0x392eac(0x2ff)](_0x411a35);}else{const _0x226b7b=new _0x13a1d7()[_0x392eac(0x3d6)](),_0x2e524b=_0x237625[_0x392eac(0x297)](_0x226b7b,this[_0x392eac(0x32a)])/(0x325+-0x2*0x125d+0x257d);this[_0x392eac(0x258)]('','🔔'+this['name']+_0x392eac(0x1e8)+_0x2e524b+'\x20秒'),this[_0x392eac(0x258)](),(this[_0x392eac(0x3e2)]()||this[_0x392eac(0x1fb)]()||this[_0x392eac(0x277)]())&&_0x237625[_0x392eac(0x364)](_0xb1a62c,_0x5d09a4);}});});}function safeGet(_0x4d9f7f,_0x462722){const _0x2da473=_0x56a2b9,_0xed8487={'rAene':function(_0x1e3e27,_0x453aa4){return _0x1e3e27(_0x453aa4);},'gFMrT':function(_0x3b5559,_0x5529f5){return _0x3b5559==_0x5529f5;},'sbnpr':function(_0x15731a,_0x5065ff){return _0x15731a!==_0x5065ff;},'XLEJV':'ecQsC'};try{if(_0xed8487[_0x2da473(0x3c4)](typeof JSON[_0x2da473(0x3ae)](_0x4d9f7f),_0x2da473(0x3ca)))return!![];else{if(_0xed8487[_0x2da473(0x3e6)](_0xed8487[_0x2da473(0x1ab)],_0xed8487[_0x2da473(0x1ab)])){const _0x24110b={'TpOMR':function(_0x3ba740,_0xf8ae1b){const _0x34840d=_0x2da473;return _0xed8487[_0x34840d(0x392)](_0x3ba740,_0xf8ae1b);}};_0xcb078f[_0x2da473(0x31a)](this,_0x3f6eca,(_0x1ce21d,_0x52cce6,_0x19a6b0)=>{const _0x1a4771=_0x2da473;_0x1ce21d?_0x24110b[_0x1a4771(0x2d5)](_0xe74c9b,_0x1ce21d):_0x249211(_0x52cce6);});}else console[_0x2da473(0x258)](_0x2da473(0x257)+_0x462722+_0x2da473(0x23c)),console[_0x2da473(0x258)](_0x4d9f7f);}}catch(_0x289b36){return console[_0x2da473(0x258)](_0x289b36),console[_0x2da473(0x258)](_0x2da473(0x257)+_0x462722+_0x2da473(0x22d)),![];}}function printCaller(){const _0xc4eb4b=_0x56a2b9;return new Error()[_0xc4eb4b(0x233)][_0xc4eb4b(0x38c)]('\x0a')[-0x4*0x6ec+-0x1493*0x1+-0x9*-0x55d][_0xc4eb4b(0x3c8)]()[_0xc4eb4b(0x38c)]('\x20')[0x12c*0x1f+0x1c7b+-0x40ce];}function getMin(_0x34969d,_0x3e8db0){const _0x1df52a=_0x56a2b9,_0x35030d={};_0x35030d[_0x1df52a(0x2f6)]=function(_0xace598,_0xc6dd20){return _0xace598<_0xc6dd20;};const _0x44035a=_0x35030d;return _0x44035a[_0x1df52a(0x2f6)](_0x34969d,_0x3e8db0)?_0x34969d:_0x3e8db0;}function getMax(_0x2e1ea8,_0x5afc1c){const _0x4faebb=_0x56a2b9,_0x5cb596={};_0x5cb596[_0x4faebb(0x3a8)]=function(_0x1a056d,_0xccadd8){return _0x1a056d<_0xccadd8;};const _0x51e755=_0x5cb596;return _0x51e755[_0x4faebb(0x3a8)](_0x2e1ea8,_0x5afc1c)?_0x5afc1c:_0x2e1ea8;}function EncFunc(_0x81199c){const _0x1f3c34=_0x56a2b9,_0x4cc585={};_0x4cc585[_0x1f3c34(0x22b)]=_0x1f3c34(0x1bb);const _0x45e71b=_0x4cc585,_0x58bcf7=_0x45e71b[_0x1f3c34(0x22b)][_0x1f3c34(0x38c)]('|');let _0x357a2a=0x68b+0xd33*-0x2+0x13db;while(!![]){switch(_0x58bcf7[_0x357a2a++]){case'0':var _0x174b85=CryptoJS[_0x1f3c34(0x31c)][_0x1f3c34(0x1d5)][_0x1f3c34(0x3ae)](key);continue;case'1':encrypted=CryptoJS[_0x1f3c34(0x3c6)][_0x1f3c34(0x2b6)](_0x534db9,_0x174b85,{'iv':_0xc24539,'mode':CryptoJS[_0x1f3c34(0x1d2)]['CBC'],'padding':CryptoJS[_0x1f3c34(0x249)][_0x1f3c34(0x266)]});continue;case'2':var _0xc24539=CryptoJS[_0x1f3c34(0x31c)][_0x1f3c34(0x1d5)][_0x1f3c34(0x3ae)](key);continue;case'3':var _0x534db9=CryptoJS[_0x1f3c34(0x31c)][_0x1f3c34(0x1d5)][_0x1f3c34(0x3ae)](_0x81199c);continue;case'4':return encrypted[_0x1f3c34(0x3d8)][_0x1f3c34(0x225)]();}break;}}function DecFunc(_0x43afd5){const _0x30bcb5=_0x56a2b9;var _0x27906b=CryptoJS[_0x30bcb5(0x31c)][_0x30bcb5(0x1d5)][_0x30bcb5(0x3ae)](key),_0x5d7816=CryptoJS['enc'][_0x30bcb5(0x1d5)][_0x30bcb5(0x3ae)](key),_0x4efc74=CryptoJS[_0x30bcb5(0x3c6)][_0x30bcb5(0x33a)]({'ciphertext':CryptoJS[_0x30bcb5(0x31c)][_0x30bcb5(0x228)][_0x30bcb5(0x3ae)](_0x43afd5)},_0x27906b,{'iv':_0x5d7816,'mode':CryptoJS[_0x30bcb5(0x1d2)][_0x30bcb5(0x3b1)],'padding':CryptoJS[_0x30bcb5(0x249)][_0x30bcb5(0x266)]});return _0x4efc74[_0x30bcb5(0x225)](CryptoJS[_0x30bcb5(0x31c)][_0x30bcb5(0x1d5)]);}function randomString(_0x52165b=0x17ca+-0x3*-0xc6a+-0x3cfc){const _0x346ccf=_0x56a2b9,_0x5a9456={'MJiZL':function(_0x1097c3,_0x16b979,_0x13368f,_0x3d8caa){return _0x1097c3(_0x16b979,_0x13368f,_0x3d8caa);},'NmWhl':function(_0x471dde,_0xe4c01b){return _0x471dde!==_0xe4c01b;},'EmKKJ':_0x346ccf(0x31b),'bKFFV':function(_0x452ba8,_0x4682a2){return _0x452ba8*_0x4682a2;}};let _0x7efe54='qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM',_0x378560=_0x7efe54[_0x346ccf(0x235)],_0x5b3fce='';for(i=0x44d+0x2240*-0x1+0x1df3;i<_0x52165b;i++){if(_0x5a9456[_0x346ccf(0x40f)](_0x5a9456[_0x346ccf(0x1fd)],_0x5a9456[_0x346ccf(0x1fd)])){this[_0x346ccf(0x1ba)](_0x438833);const {url:_0x12d1b9,..._0x162b71}=_0x17f3ea;this[_0x346ccf(0x1de)][_0x346ccf(0x2cc)](_0x12d1b9,_0x162b71)[_0x346ccf(0x2ba)](_0x2249b4=>{const _0x141265=_0x346ccf,{statusCode:_0x204edb,statusCode:_0x3a9a98,headers:_0x4fd5d2,body:_0xe0c577}=_0x2249b4,_0x5d4cfa={};_0x5d4cfa[_0x141265(0x395)]=_0x204edb,_0x5d4cfa[_0x141265(0x2e0)]=_0x3a9a98,_0x5d4cfa[_0x141265(0x2a1)]=_0x4fd5d2,_0x5d4cfa[_0x141265(0x350)]=_0xe0c577,_0x5a9456[_0x141265(0x291)](_0x994907,null,_0x5d4cfa,_0xe0c577);},_0x14f276=>{const _0x10fb66=_0x346ccf,{message:_0x453b5f,response:_0xfc8816}=_0x14f276;_0x17e56f(_0x453b5f,_0xfc8816,_0xfc8816&&_0xfc8816[_0x10fb66(0x350)]);});}else _0x5b3fce+=_0x7efe54[_0x346ccf(0x403)](Math[_0x346ccf(0x1a9)](_0x5a9456[_0x346ccf(0x293)](Math[_0x346ccf(0x284)](),_0x378560)));}return _0x5b3fce;}function Env(_0x363070,_0x2c29a7){const _0x1cd528=_0x56a2b9,_0x422f4c={'KJoSp':function(_0x28d45f,_0x8d5884){return _0x28d45f!==_0x8d5884;},'sRuxB':_0x1cd528(0x39d),'DBFta':_0x1cd528(0x244),'Ltlts':_0x1cd528(0x211),'kAaVF':_0x1cd528(0x24c),'LBRBb':_0x1cd528(0x381),'HQRee':function(_0x58b84d,_0x4b305b){return _0x58b84d(_0x4b305b);},'KgiFY':_0x1cd528(0x36b),'UcWib':function(_0x1356ab,_0x5cf1fb){return _0x1356ab+_0x5cf1fb;},'ibqIz':_0x1cd528(0x271),'FNnuZ':function(_0x232ec4,_0x11023b){return _0x232ec4!==_0x11023b;},'GyHpO':function(_0x1522e4,_0x7880d1){return _0x1522e4(_0x7880d1);},'xjdmo':function(_0x1ba604,_0x1c2b02){return _0x1ba604!==_0x1c2b02;},'SIdop':function(_0x44eb0c){return _0x44eb0c();},'RSONo':function(_0x3c95f2,_0xb1b3dc){return _0x3c95f2===_0xb1b3dc;},'EOFon':function(_0x3035b3,_0x41cfb3,_0x5dfac5){return _0x3035b3(_0x41cfb3,_0x5dfac5);},'OMQpt':_0x1cd528(0x248),'Kakmp':_0x1cd528(0x1c7),'QtDma':function(_0xecba81,_0x53b2f6){return _0xecba81===_0x53b2f6;},'EGUMV':_0x1cd528(0x25f),'OnkAb':function(_0x484c78,_0x5b3446){return _0x484c78==_0x5b3446;},'BKvzI':_0x1cd528(0x3d5),'FASuc':_0x1cd528(0x27f),'vdomo':_0x1cd528(0x396),'ATNam':_0x1cd528(0x23d),'CPpFg':_0x1cd528(0x3fd),'yEdbV':function(_0x40f46b,_0x437a44){return _0x40f46b!=_0x437a44;},'ijlkl':_0x1cd528(0x418),'IXwtq':function(_0xbb0766,_0xe05410){return _0xbb0766!==_0xe05410;},'WbFDs':_0x1cd528(0x332),'lndbX':_0x1cd528(0x26b),'TvoLE':_0x1cd528(0x3af),'DWGOj':function(_0x118302,_0x15e9b5){return _0x118302*_0x15e9b5;},'MCxDm':_0x1cd528(0x37d),'LzRQC':_0x1cd528(0x2eb),'AADRf':function(_0x5b69d7,_0x98af28){return _0x5b69d7===_0x98af28;},'wGTkI':_0x1cd528(0x287),'qjKfe':_0x1cd528(0x3ab),'iyqeU':_0x1cd528(0x32e),'ckwwP':_0x1cd528(0x329),'ZQCOy':'hmlxl','PSRDV':_0x1cd528(0x2e3),'TcICJ':_0x1cd528(0x2a3),'edSmN':_0x1cd528(0x3d0),'YneeA':function(_0x123cd0,_0x29399f){return _0x123cd0*_0x29399f;},'XxMkT':_0x1cd528(0x3ca),'lNetU':_0x1cd528(0x3ba),'xVXBQ':_0x1cd528(0x20a),'JGfWz':_0x1cd528(0x1c5),'NPDHx':function(_0x514cc7,_0x54fb0b){return _0x514cc7&&_0x54fb0b;},'lkVYC':_0x1cd528(0x22a),'TucFj':_0x1cd528(0x21d),'DtIcH':_0x1cd528(0x20e),'CbctA':_0x1cd528(0x237),'iyiKU':_0x1cd528(0x29f),'YtWAk':_0x1cd528(0x25b),'rfdGO':function(_0x4bd516,_0x546cbc){return _0x4bd516===_0x546cbc;},'ISyXL':function(_0x2c5be7,_0x9d690c){return _0x2c5be7!==_0x9d690c;},'zVnnh':_0x1cd528(0x40e),'zVKIM':function(_0x602074,_0x4cba2a,_0x57a398,_0x3f4fc9){return _0x602074(_0x4cba2a,_0x57a398,_0x3f4fc9);},'naUQF':function(_0x295faa,_0x4a8232){return _0x295faa===_0x4a8232;},'JBUBS':_0x1cd528(0x388),'JTQRE':_0x1cd528(0x3e3),'OYKSD':_0x1cd528(0x32f),'iIJoB':_0x1cd528(0x36e),'WLZwv':_0x1cd528(0x375),'CrEae':function(_0x1b57ac,_0x43aa2d){return _0x1b57ac===_0x43aa2d;},'AUrQx':_0x1cd528(0x3d4),'oMiYS':function(_0x405dfa,_0x7035a8){return _0x405dfa||_0x7035a8;},'FEcTF':function(_0x59322e,_0x2f323e){return _0x59322e!==_0x2f323e;},'pnPbZ':_0x1cd528(0x213),'ZfHnX':_0x1cd528(0x371),'HvJSU':function(_0x65dbae,_0x3bec92){return _0x65dbae!==_0x3bec92;},'UTTmP':_0x1cd528(0x1f9),'mfNar':function(_0x4d8747,_0x22889d){return _0x4d8747-_0x22889d;},'OfkMi':function(_0x1214a2,_0x3cc8fd){return _0x1214a2+_0x3cc8fd;},'NdYpm':function(_0x476a37,_0x2496f2){return _0x476a37+_0x2496f2;},'ssqTC':function(_0x37b770,_0x4a14b7){return _0x37b770==_0x4a14b7;},'vsMaY':_0x1cd528(0x26f),'ttXja':function(_0x2a48b5,_0x32632e){return _0x2a48b5!==_0x32632e;},'TdAMF':_0x1cd528(0x2dc),'ReQwt':_0x1cd528(0x3cc),'BJSid':_0x1cd528(0x3d2),'QQqjL':function(_0x5b51f1,_0x1e4e88){return _0x5b51f1<_0x1e4e88;},'VEYdM':_0x1cd528(0x39f),'SQDCi':_0x1cd528(0x33e),'bxPDq':_0x1cd528(0x401),'ehXfI':_0x1cd528(0x402),'IwiLP':function(_0x52d1d1,_0x3c304c,_0x423641,_0x351870){return _0x52d1d1(_0x3c304c,_0x423641,_0x351870);},'PHDRy':function(_0xc2bd7b){return _0xc2bd7b();},'yTELd':_0x1cd528(0x31e),'ljjHm':_0x1cd528(0x310),'lwFET':_0x1cd528(0x2d6),'OgmTN':function(_0x4949f2,_0x47c620){return _0x4949f2+_0x47c620;},'pPdse':function(_0x4ccfcc,_0x3de55e){return _0x4ccfcc/_0x3de55e;},'YleSw':function(_0x3dab91,_0xa94684){return _0x3dab91+_0xa94684;},'LEIBP':_0x1cd528(0x373),'mHCkF':_0x1cd528(0x3a9),'NgOCl':_0x1cd528(0x1ca),'kUyds':_0x1cd528(0x28a),'cwarS':function(_0xa659bd,_0x4c9058,_0x41e588,_0x1f639b,_0x3049a1){return _0xa659bd(_0x4c9058,_0x41e588,_0x1f639b,_0x3049a1);},'dlSnC':function(_0x3990dc,_0x3e1d66){return _0x3990dc(_0x3e1d66);},'aWKCh':_0x1cd528(0x300),'TNqIf':function(_0x19d9a8,_0x55896b){return _0x19d9a8>_0x55896b;},'ejbGB':function(_0x4a6ab7,_0x41eddc){return _0x4a6ab7-_0x41eddc;},'tOZpH':function(_0xdd7329,_0x4477f4,_0x9b7d8a){return _0xdd7329(_0x4477f4,_0x9b7d8a);}},_0x5ebb5d=(function(){const _0x2339d8=_0x1cd528,_0x2271b6={};_0x2271b6[_0x2339d8(0x3b3)]=_0x422f4c[_0x2339d8(0x30a)];const _0x409630=_0x2271b6;let _0x3a1443=!![];return function(_0x2968d4,_0x3bfb68){const _0x3a42e6=_0x2339d8;if(_0x422f4c[_0x3a42e6(0x34d)](_0x3a42e6(0x39d),_0x422f4c[_0x3a42e6(0x3cf)])){let _0x170efb=_0x2e89c9[_0x3a42e6(0x1b6)]||_0x191a2e[_0x3a42e6(0x3de)]||_0x55fde6[_0x409630[_0x3a42e6(0x3b3)]];const _0x1b35f5={};return _0x1b35f5[_0x3a42e6(0x1b6)]=_0x170efb,_0x1b35f5;}else{const _0x964c8d=_0x3a1443?function(){const _0x489c87=_0x3a42e6;if(_0x3bfb68){const _0x44a203=_0x3bfb68[_0x489c87(0x2e4)](_0x2968d4,arguments);return _0x3bfb68=null,_0x44a203;}}:function(){};return _0x3a1443=![],_0x964c8d;}};}()),_0x145708=_0x422f4c[_0x1cd528(0x1db)](_0x5ebb5d,this,function(){const _0x51f884=_0x1cd528;return _0x145708['toString']()[_0x51f884(0x405)](_0x422f4c[_0x51f884(0x1d4)])[_0x51f884(0x225)]()[_0x51f884(0x2af)](_0x145708)[_0x51f884(0x405)](_0x422f4c[_0x51f884(0x1d4)]);});_0x145708();const _0xc275ef=(function(){const _0x2daf74=_0x1cd528;if(_0x422f4c[_0x2daf74(0x34d)](_0x422f4c[_0x2daf74(0x1d9)],_0x422f4c[_0x2daf74(0x1d9)]))return this[_0x2daf74(0x3e2)]()||this[_0x2daf74(0x277)]()?_0x68b8db[_0x2daf74(0x2b0)](_0x562db5):this[_0x2daf74(0x1fb)]()?_0x3feb4e['valueForKey'](_0x3ea631):this['isNode']()?(this[_0x2daf74(0x2c3)]=this[_0x2daf74(0x3c7)](),this['data'][_0x394f5a]):this[_0x2daf74(0x2c3)]&&this[_0x2daf74(0x2c3)][_0x46b928]||null;else{let _0x15ef29=!![];return function(_0x33850f,_0x418ce5){const _0x2ec15d=_0x15ef29?function(){const _0x213d01=_0x2ef6;if(_0x418ce5){const _0x4fe68d=_0x418ce5[_0x213d01(0x2e4)](_0x33850f,arguments);return _0x418ce5=null,_0x4fe68d;}}:function(){};return _0x15ef29=![],_0x2ec15d;};}}());(function(){const _0x152dae=_0x1cd528,_0x251619={'eLEBS':_0x152dae(0x32f),'sYMAt':_0x422f4c[_0x152dae(0x1c1)],'ioUck':function(_0x196a20,_0x393b0f){const _0x55ef92=_0x152dae;return _0x422f4c[_0x55ef92(0x2bf)](_0x196a20,_0x393b0f);},'qzPou':_0x422f4c[_0x152dae(0x38e)],'wPJhe':function(_0x2364d1,_0x1852af){const _0x582fc1=_0x152dae;return _0x422f4c[_0x582fc1(0x260)](_0x2364d1,_0x1852af);},'fAqkE':_0x152dae(0x261),'YpwAh':function(_0x5beedc,_0x27c969){const _0x55f6d1=_0x152dae;return _0x422f4c[_0x55f6d1(0x260)](_0x5beedc,_0x27c969);},'NxRjO':_0x422f4c[_0x152dae(0x345)],'OkxXu':function(_0x58703e,_0xdd0c04){const _0x37303a=_0x152dae;return _0x422f4c[_0x37303a(0x339)](_0x58703e,_0xdd0c04);},'uljhn':_0x152dae(0x224),'zESas':_0x152dae(0x1d6),'KwEgJ':function(_0x343878,_0xe8f4d9){const _0x27bab4=_0x152dae;return _0x422f4c[_0x27bab4(0x360)](_0x343878,_0xe8f4d9);},'dNIuu':function(_0x59004b,_0x11cb6e){const _0x292ffa=_0x152dae;return _0x422f4c[_0x292ffa(0x229)](_0x59004b,_0x11cb6e);},'xyNwb':function(_0x43fe6d){const _0x10cc21=_0x152dae;return _0x422f4c[_0x10cc21(0x311)](_0x43fe6d);}};_0x422f4c[_0x152dae(0x359)](_0x152dae(0x2de),_0x152dae(0x2de))?_0x422f4c[_0x152dae(0x1ef)](_0xc275ef,this,function(){const _0x4b399a=_0x152dae,_0x28616e=new RegExp(_0x251619[_0x4b399a(0x3c3)]),_0x1951e8=new RegExp(_0x251619[_0x4b399a(0x39a)],'i'),_0x470df7=_0x251619[_0x4b399a(0x38d)](_0x57665a,_0x251619[_0x4b399a(0x3a5)]);if(!_0x28616e[_0x4b399a(0x40c)](_0x251619[_0x4b399a(0x372)](_0x470df7,_0x251619[_0x4b399a(0x2a5)]))||!_0x1951e8[_0x4b399a(0x40c)](_0x251619[_0x4b399a(0x22f)](_0x470df7,_0x251619[_0x4b399a(0x1d3)]))){if(_0x251619[_0x4b399a(0x24e)](_0x251619[_0x4b399a(0x27e)],_0x251619[_0x4b399a(0x23f)]))_0x251619[_0x4b399a(0x24d)](_0x470df7,'0');else return _0x44fba1;}else _0x251619[_0x4b399a(0x2c4)](_0x4b399a(0x2b5),_0x4b399a(0x2b5))?_0x5271a3():_0x251619[_0x4b399a(0x2ee)](_0x57665a);})():_0x177e76[_0x152dae(0x258)]('注销账号'+_0x694215+'成功');}());class _0xf710fc{constructor(_0x5041a6){const _0x12a6e0=_0x1cd528;_0x422f4c[_0x12a6e0(0x229)](_0x422f4c[_0x12a6e0(0x3e8)],_0x422f4c[_0x12a6e0(0x3e8)])?_0x8406a0?_0x422f4c[_0x12a6e0(0x360)](_0x546234,_0x39417e):_0x276194(_0x51d392):this['env']=_0x5041a6;}[_0x1cd528(0x23b)](_0xe92da1,_0x219867=_0x1cd528(0x1e5)){const _0x4643f3=_0x1cd528,_0x2d6d9d={'KLZdT':function(_0xe0ae7,_0x762dc){const _0x1c4333=_0x2ef6;return _0x422f4c[_0x1c4333(0x360)](_0xe0ae7,_0x762dc);}};if(_0x422f4c[_0x4643f3(0x3f9)](_0x422f4c[_0x4643f3(0x1cf)],_0x422f4c[_0x4643f3(0x1cf)])){_0xe92da1=_0x422f4c[_0x4643f3(0x313)](_0x422f4c[_0x4643f3(0x1be)],typeof _0xe92da1)?{'url':_0xe92da1}:_0xe92da1;let _0x5291b8=this['get'];return _0x422f4c['FASuc']===_0x219867&&(_0x5291b8=this[_0x4643f3(0x2cc)]),new Promise((_0x107d96,_0x6350b2)=>{const _0x36684a=_0x4643f3;_0x5291b8[_0x36684a(0x31a)](this,_0xe92da1,(_0xe00d7b,_0x189149,_0x4ce383)=>{const _0x25ecdd=_0x36684a;_0xe00d7b?_0x2d6d9d[_0x25ecdd(0x393)](_0x6350b2,_0xe00d7b):_0x2d6d9d[_0x25ecdd(0x393)](_0x107d96,_0x189149);});});}else(function(){return![];}[_0x4643f3(0x2af)](_0x4643f3(0x315)+_0x4643f3(0x30c))[_0x4643f3(0x2e4)](AnQkvQ[_0x4643f3(0x243)]));}[_0x1cd528(0x27c)](_0x270d62){const _0x4392e1=_0x1cd528;return this[_0x4392e1(0x23b)][_0x4392e1(0x31a)](this[_0x4392e1(0x275)],_0x270d62);}[_0x1cd528(0x2cc)](_0x28ee87){const _0x19dece=_0x1cd528,_0x4c5d08={};_0x4c5d08[_0x19dece(0x221)]=_0x19dece(0x3d4);const _0x5ec436=_0x4c5d08;if(_0x422f4c[_0x19dece(0x2b4)]!==_0x422f4c[_0x19dece(0x3da)])return this[_0x19dece(0x23b)][_0x19dece(0x31a)](this[_0x19dece(0x275)],_0x28ee87,_0x422f4c[_0x19dece(0x1c9)]);else{const [,_0x1c5872,_0x193fbd]=/^@(.*?)\.(.*?)$/[_0x19dece(0x288)](_0x16eb84),_0x3f2e91=this[_0x19dece(0x337)](_0x1c5872),_0x3a52fa=_0x1c5872?_0x5ec436[_0x19dece(0x221)]===_0x3f2e91?null:_0x3f2e91||'{}':'{}';try{const _0x45c9f0=_0x3db64c[_0x19dece(0x3ae)](_0x3a52fa);this[_0x19dece(0x29b)](_0x45c9f0,_0x193fbd,_0x668bea),_0xf0c211=this[_0x19dece(0x1ed)](_0x4322f4[_0x19dece(0x2a0)](_0x45c9f0),_0x1c5872);}catch(_0x98f073){const _0x2a7297={};this[_0x19dece(0x29b)](_0x2a7297,_0x193fbd,_0x1ead80),_0x1ccec7=this[_0x19dece(0x1ed)](_0x5c227b['stringify'](_0x2a7297),_0x1c5872);}}}}return new class{constructor(_0x128ffe,_0x950e20){const _0x53f443=_0x1cd528;if(_0x53f443(0x3f1)!==_0x53f443(0x3f1))return _0x45ff2f;else this[_0x53f443(0x245)]=_0x128ffe,this[_0x53f443(0x232)]=new _0xf710fc(this),this[_0x53f443(0x2c3)]=null,this[_0x53f443(0x2ab)]=_0x422f4c[_0x53f443(0x370)],this[_0x53f443(0x410)]=[],this[_0x53f443(0x206)]=!(0x5*0x7c9+0x3c*0x26+-0x2*0x17ea),this[_0x53f443(0x3fa)]=!(0xfb4+-0x1af*-0x7+0x1b7c*-0x1),this[_0x53f443(0x29a)]='\x0a',this[_0x53f443(0x32a)]=new Date()[_0x53f443(0x3d6)](),Object[_0x53f443(0x3bd)](this,_0x950e20),this[_0x53f443(0x258)]('','🔔'+this[_0x53f443(0x245)]+_0x53f443(0x307));}[_0x1cd528(0x276)](){const _0x4dc143=_0x1cd528;return _0x422f4c[_0x4dc143(0x3a1)](_0x422f4c[_0x4dc143(0x29e)],typeof module)&&!!module[_0x4dc143(0x208)];}[_0x1cd528(0x1fb)](){const _0x15b222=_0x1cd528;return _0x15b222(0x418)!=typeof $task;}[_0x1cd528(0x3e2)](){const _0x32c32a=_0x1cd528;if(_0x422f4c[_0x32c32a(0x1da)](_0x422f4c[_0x32c32a(0x3b0)],_0x422f4c[_0x32c32a(0x3b0)]))_0x2450a5[_0x32c32a(0x40d)](_0x31a582,_0x337979);else return _0x422f4c[_0x32c32a(0x29e)]!=typeof $httpClient&&_0x422f4c[_0x32c32a(0x29e)]==typeof $loon;}[_0x1cd528(0x277)](){const _0x150c7c=_0x1cd528;return _0x422f4c[_0x150c7c(0x3a1)](_0x422f4c[_0x150c7c(0x29e)],typeof $loon);}[_0x1cd528(0x2dd)](_0x2e4b0e,_0x3b8e96=null){const _0x244a2d=_0x1cd528,_0x11e896={'AzjxA':_0x244a2d(0x3d0),'RkhTw':_0x422f4c['TvoLE'],'lGJlG':function(_0x575611,_0x38ae97){const _0x32f488=_0x244a2d;return _0x422f4c[_0x32f488(0x3b4)](_0x575611,_0x38ae97);},'jKmXy':_0x422f4c[_0x244a2d(0x357)],'XkKwY':_0x422f4c[_0x244a2d(0x3e9)]};try{return _0x422f4c[_0x244a2d(0x1da)](_0x244a2d(0x2f4),_0x244a2d(0x1e0))?JSON[_0x244a2d(0x3ae)](_0x2e4b0e):new _0x36c4d9(_0x4f5f00=>{const _0x89a642=_0x244a2d;let _0xd5ac87=this[_0x89a642(0x301)](_0x11e896[_0x89a642(0x314)]);_0xd5ac87=_0xd5ac87?_0xd5ac87[_0x89a642(0x268)](/\n/g,'')[_0x89a642(0x3c8)]():_0xd5ac87;let _0xba6e76=this[_0x89a642(0x301)](_0x11e896[_0x89a642(0x22c)]);_0xba6e76=_0xba6e76?_0x11e896[_0x89a642(0x3ef)](0x1*-0x1e11+-0xebc+-0xa*-0x47b,_0xba6e76):-0x1ed8+-0x1bf*-0xd+0x1*0x839,_0xba6e76=_0x2b0766&&_0x4ca888[_0x89a642(0x1e6)]?_0x44cba3[_0x89a642(0x1e6)]:_0xba6e76;const _0x390a1a={};_0x390a1a[_0x89a642(0x1c3)]=_0x2567c1,_0x390a1a[_0x89a642(0x33f)]=_0x11e896[_0x89a642(0x21f)],_0x390a1a[_0x89a642(0x1e6)]=_0xba6e76;const [_0x79b7fd,_0x456e33]=_0xd5ac87[_0x89a642(0x38c)]('@'),_0x229d22={'url':_0x89a642(0x1e7)+_0x456e33+_0x89a642(0x3a0),'body':_0x390a1a,'headers':{'X-Key':_0x79b7fd,'Accept':_0x11e896[_0x89a642(0x3a2)]}};this[_0x89a642(0x2cc)](_0x229d22,(_0x5471e7,_0x237ee2,_0x1ee11c)=>_0x4f5f00(_0x1ee11c));})[_0x244a2d(0x1ce)](_0x39b15b=>this[_0x244a2d(0x40d)](_0x39b15b));}catch{if(_0x422f4c[_0x244a2d(0x2df)](_0x422f4c[_0x244a2d(0x34f)],_0x244a2d(0x384)))_0x1c4949[_0x244a2d(0x258)](_0x422f4c[_0x244a2d(0x260)](_0x528359,_0x422f4c['lndbX'])),_0x528234[_0x244a2d(0x258)](_0x2c7bfb[_0x244a2d(0x2a0)](_0x2e8f88)),_0xc19c60[_0x244a2d(0x40d)](_0x167ba5);else return _0x3b8e96;}}['toStr'](_0x4143e0,_0x2b0a8f=null){const _0x4a9b9a=_0x1cd528;if(_0x422f4c[_0x4a9b9a(0x1da)](_0x422f4c[_0x4a9b9a(0x1b1)],_0x422f4c[_0x4a9b9a(0x1b1)]))return this[_0x4a9b9a(0x23b)][_0x4a9b9a(0x31a)](this[_0x4a9b9a(0x275)],_0xd86add);else try{return JSON[_0x4a9b9a(0x2a0)](_0x4143e0);}catch{if(_0x422f4c[_0x4a9b9a(0x1f5)]===_0x422f4c[_0x4a9b9a(0x1f5)])return _0x2b0a8f;else{const _0x420017={};_0x420017[_0x4a9b9a(0x1b6)]=_0x15ea18,this[_0x4a9b9a(0x27c)](_0x420017,(_0x42677c,_0x2405f7,_0x26edfe)=>_0x368634(_0x26edfe));}}}[_0x1cd528(0x207)](_0x136217,_0x2ef60e){const _0x18edb5=_0x1cd528;let _0x4dc3d9=_0x2ef60e;const _0x9a07e=this[_0x18edb5(0x301)](_0x136217);if(_0x9a07e)try{_0x4dc3d9=JSON[_0x18edb5(0x3ae)](this[_0x18edb5(0x301)](_0x136217));}catch{}return _0x4dc3d9;}[_0x1cd528(0x238)](_0x120c33,_0x436e66){const _0x3c0123=_0x1cd528;if(_0x422f4c[_0x3c0123(0x2df)](_0x422f4c[_0x3c0123(0x382)],_0x422f4c[_0x3c0123(0x382)]))try{return this['setdata'](JSON[_0x3c0123(0x2a0)](_0x120c33),_0x436e66);}catch{return _0x422f4c[_0x3c0123(0x1da)](_0x422f4c[_0x3c0123(0x2ea)],'hmlxl')?_0x1ff82b[_0x3c0123(0x3ae)](this['fs'][_0x3c0123(0x25a)](_0x38732f)):!(-0x2bb+0xfdd+0x1*-0xd21);}else{if(_0x1916ec){const _0x3a7910=_0x4630d0[_0x3c0123(0x2e4)](_0x1dd86d,arguments);return _0x1f7d71=null,_0x3a7910;}}}[_0x1cd528(0x299)](_0x1de0b0){return new Promise(_0x7f1814=>{const _0x4d9488=_0x2ef6,_0x300257={};_0x300257[_0x4d9488(0x1b6)]=_0x1de0b0,this[_0x4d9488(0x27c)](_0x300257,(_0x20e157,_0x5b46d8,_0xc402cd)=>_0x7f1814(_0xc402cd));});}[_0x1cd528(0x20d)](_0x962736,_0x2940a7){const _0x2af37d=_0x1cd528,_0xafc2a6={'sXdCL':function(_0x356dfb,_0x3b9555){return _0x422f4c['OnkAb'](_0x356dfb,_0x3b9555);},'Aqrbl':_0x422f4c[_0x2af37d(0x280)]};if(_0x422f4c[_0x2af37d(0x1da)](_0x422f4c[_0x2af37d(0x3c5)],_0x422f4c[_0x2af37d(0x1e1)]))return new Promise(_0x1cfb43=>{const _0x100bf6=_0x2af37d;if(_0x422f4c[_0x100bf6(0x1da)](_0x422f4c[_0x100bf6(0x236)],_0x422f4c[_0x100bf6(0x2e6)])){let _0x45b656=this[_0x100bf6(0x301)](_0x422f4c[_0x100bf6(0x3df)]);_0x45b656=_0x45b656?_0x45b656[_0x100bf6(0x268)](/\n/g,'')[_0x100bf6(0x3c8)]():_0x45b656;let _0x2c4203=this[_0x100bf6(0x301)](_0x422f4c[_0x100bf6(0x2f2)]);_0x2c4203=_0x2c4203?_0x422f4c[_0x100bf6(0x256)](-0x11f3+0x2*0x54d+0x1*0x75a,_0x2c4203):-0x2269+0x26a*-0x4+-0x2c25*-0x1,_0x2c4203=_0x2940a7&&_0x2940a7[_0x100bf6(0x1e6)]?_0x2940a7[_0x100bf6(0x1e6)]:_0x2c4203;const _0x5ad151={};_0x5ad151[_0x100bf6(0x1c3)]=_0x962736,_0x5ad151[_0x100bf6(0x33f)]=_0x422f4c[_0x100bf6(0x357)],_0x5ad151[_0x100bf6(0x1e6)]=_0x2c4203;const [_0x3ff3b7,_0x2e2783]=_0x45b656[_0x100bf6(0x38c)]('@'),_0x51e7e5={'url':_0x100bf6(0x1e7)+_0x2e2783+_0x100bf6(0x3a0),'body':_0x5ad151,'headers':{'X-Key':_0x3ff3b7,'Accept':_0x422f4c[_0x100bf6(0x3e9)]}};this[_0x100bf6(0x2cc)](_0x51e7e5,(_0xbc38f7,_0x2dbaf1,_0x4e2187)=>_0x1cfb43(_0x4e2187));}else{const _0x5b13c8=_0x365748?_0x1943b4:_0x5853be;try{return _0x4717c4[_0x100bf6(0x3ae)](this['fs'][_0x100bf6(0x25a)](_0x5b13c8));}catch(_0x10f7f6){return{};}}})[_0x2af37d(0x1ce)](_0x2390eb=>this[_0x2af37d(0x40d)](_0x2390eb));else{if(_0xafc2a6[_0x2af37d(0x306)](typeof _0x2ce445[_0x2af37d(0x3ae)](_0x3413e1),_0xafc2a6[_0x2af37d(0x2bb)]))return!![];else _0x15501b[_0x2af37d(0x258)](_0x2af37d(0x257)+_0x3737d0+_0x2af37d(0x23c)),_0x11569e['log'](_0x50f8f9);}}[_0x1cd528(0x3c7)](){const _0x3c711e=_0x1cd528;if(_0x422f4c[_0x3c711e(0x2fe)]===_0x422f4c[_0x3c711e(0x2fe)]){if(!this[_0x3c711e(0x276)]())return{};{this['fs']=this['fs']?this['fs']:require('fs'),this[_0x3c711e(0x419)]=this[_0x3c711e(0x419)]?this[_0x3c711e(0x419)]:require('path');const _0x4f7c0e=this['path'][_0x3c711e(0x3bb)](this[_0x3c711e(0x2ab)]),_0x3f2b8a=this[_0x3c711e(0x419)][_0x3c711e(0x3bb)](process[_0x3c711e(0x308)](),this[_0x3c711e(0x2ab)]),_0x2192b8=this['fs'][_0x3c711e(0x1ac)](_0x4f7c0e),_0x30d95b=!_0x2192b8&&this['fs'][_0x3c711e(0x1ac)](_0x3f2b8a);if(_0x422f4c[_0x3c711e(0x386)](!_0x2192b8,!_0x30d95b))return{};{const _0x5d3024=_0x2192b8?_0x4f7c0e:_0x3f2b8a;try{return _0x422f4c[_0x3c711e(0x1da)](_0x422f4c['lkVYC'],_0x422f4c[_0x3c711e(0x1f4)])?JSON[_0x3c711e(0x3ae)](this['fs'][_0x3c711e(0x25a)](_0x5d3024)):![];}catch(_0x49e92b){if(_0x422f4c[_0x3c711e(0x1da)](_0x422f4c[_0x3c711e(0x343)],_0x422f4c[_0x3c711e(0x2d8)]))return{};else{const _0x44cc52=_0x490a7f[_0x3c711e(0x3ae)](_0x2de980);this[_0x3c711e(0x29b)](_0x44cc52,_0x2ae12c,_0x1b1fe2),_0x39ffa4=this[_0x3c711e(0x1ed)](_0x35611c[_0x3c711e(0x2a0)](_0x44cc52),_0x14b710);}}}}}else AnQkvQ[_0x3c711e(0x360)](_0x2c35cc,'0');}[_0x1cd528(0x3c0)](){const _0x48bc12=_0x1cd528;if(_0x422f4c[_0x48bc12(0x25d)]!==_0x422f4c[_0x48bc12(0x25d)]){const _0x32487e=!this['isSurge']()&&!this[_0x48bc12(0x1fb)]()&&!this[_0x48bc12(0x277)]();_0x32487e?this[_0x48bc12(0x258)]('','❗️'+this[_0x48bc12(0x245)]+_0x48bc12(0x267),_0x3d6073[_0x48bc12(0x233)]):this[_0x48bc12(0x258)]('','❗️'+this[_0x48bc12(0x245)]+_0x48bc12(0x267),_0x59e967);}else{if(this[_0x48bc12(0x276)]()){this['fs']=this['fs']?this['fs']:require('fs'),this[_0x48bc12(0x419)]=this['path']?this[_0x48bc12(0x419)]:require('path');const _0x2827d4=this[_0x48bc12(0x419)][_0x48bc12(0x3bb)](this[_0x48bc12(0x2ab)]),_0x257830=this[_0x48bc12(0x419)]['resolve'](process[_0x48bc12(0x308)](),this[_0x48bc12(0x2ab)]),_0x2e7e98=this['fs'][_0x48bc12(0x1ac)](_0x2827d4),_0x354bb2=!_0x2e7e98&&this['fs'][_0x48bc12(0x1ac)](_0x257830),_0x569572=JSON[_0x48bc12(0x2a0)](this[_0x48bc12(0x2c3)]);_0x2e7e98?this['fs'][_0x48bc12(0x30f)](_0x2827d4,_0x569572):_0x354bb2?this['fs'][_0x48bc12(0x30f)](_0x257830,_0x569572):this['fs'][_0x48bc12(0x30f)](_0x2827d4,_0x569572);}}}[_0x1cd528(0x3a4)](_0x3fa69f,_0x41c599,_0x3a75dc){const _0x2473b6=_0x1cd528,_0x36bc93=_0x41c599[_0x2473b6(0x268)](/\[(\d+)\]/g,_0x422f4c[_0x2473b6(0x41c)])[_0x2473b6(0x38c)]('.');let _0x554e58=_0x3fa69f;for(const _0x20a679 of _0x36bc93)if(_0x554e58=_0x422f4c[_0x2473b6(0x360)](Object,_0x554e58)[_0x20a679],_0x422f4c[_0x2473b6(0x362)](void(0x1*-0x1b47+0x1b3c+0xb),_0x554e58))return _0x3a75dc;return _0x554e58;}[_0x1cd528(0x29b)](_0x12982f,_0x1a26bb,_0x57d7b4){const _0x386102=_0x1cd528;if(_0x422f4c[_0x386102(0x20c)](_0x422f4c[_0x386102(0x1a8)],_0x386102(0x2f8)))return _0x422f4c[_0x386102(0x360)](Object,_0x12982f)!==_0x12982f?_0x12982f:(Array[_0x386102(0x1df)](_0x1a26bb)||(_0x1a26bb=_0x1a26bb[_0x386102(0x225)]()[_0x386102(0x35b)](/[^.[\]]+/g)||[]),_0x1a26bb[_0x386102(0x279)](0xeae+-0xcc7+-0x1e7,-(-0x225+0xbb3+0x32f*-0x3))[_0x386102(0x2d3)]((_0x238f47,_0x59dbe0,_0x13f3f6)=>Object(_0x238f47[_0x59dbe0])===_0x238f47[_0x59dbe0]?_0x238f47[_0x59dbe0]:_0x238f47[_0x59dbe0]=Math[_0x386102(0x23a)](_0x1a26bb[_0x13f3f6+(0x435*0x2+0x1*0xe78+-0x16e1)])>>0xa36+0xbb7*0x1+0x3*-0x74f==+_0x1a26bb[_0x13f3f6+(0x10cc+-0x1fb0+0x7b*0x1f)]?[]:{},_0x12982f)[_0x1a26bb[_0x1a26bb[_0x386102(0x235)]-(-0x2338+-0xe*0x211+0x4027)]]=_0x57d7b4,_0x12982f);else _0x3100e5[_0x386102(0x258)](_0x422f4c[_0x386102(0x260)](_0x26c4d4,_0x386102(0x203))),_0x4d6eb2[_0x386102(0x258)](_0x38f725[_0x386102(0x2a0)](_0x37a8de)),_0x1d3754[_0x386102(0x40d)](_0x15eb84);}[_0x1cd528(0x301)](_0x2b6ab0){const _0x6e0457=_0x1cd528,_0x118beb={'gaMPB':function(_0x1fe157,_0x3a6bcd,_0x4d1c8f,_0x2a6239){const _0x541914=_0x2ef6;return _0x422f4c[_0x541914(0x1ee)](_0x1fe157,_0x3a6bcd,_0x4d1c8f,_0x2a6239);}};let _0x128004=this[_0x6e0457(0x337)](_0x2b6ab0);if(/^@/[_0x6e0457(0x40c)](_0x2b6ab0)){if(_0x422f4c[_0x6e0457(0x304)](_0x422f4c[_0x6e0457(0x351)],_0x422f4c[_0x6e0457(0x3f2)])){const {statusCode:_0x3c211b,statusCode:_0x47fbae,headers:_0x4a3c87,body:_0x24e43a}=_0x21bff8,_0x55b975={};_0x55b975[_0x6e0457(0x395)]=_0x3c211b,_0x55b975[_0x6e0457(0x2e0)]=_0x47fbae,_0x55b975[_0x6e0457(0x2a1)]=_0x4a3c87,_0x55b975[_0x6e0457(0x350)]=_0x24e43a,_0x118beb[_0x6e0457(0x33d)](_0x5180df,null,_0x55b975,_0x24e43a);}else{const [,_0x431f9e,_0x5c1fa4]=/^@(.*?)\.(.*?)$/[_0x6e0457(0x288)](_0x2b6ab0),_0x27a2e8=_0x431f9e?this[_0x6e0457(0x337)](_0x431f9e):'';if(_0x27a2e8)try{const _0x51e359=JSON[_0x6e0457(0x3ae)](_0x27a2e8);_0x128004=_0x51e359?this[_0x6e0457(0x3a4)](_0x51e359,_0x5c1fa4,''):_0x128004;}catch(_0x3ca524){_0x128004='';}}}return _0x128004;}[_0x1cd528(0x374)](_0x3813d0,_0x274936){const _0x24d2aa=_0x1cd528,_0x56066d={'AYqng':_0x422f4c[_0x24d2aa(0x394)],'iHEbX':_0x422f4c['LBRBb'],'nDQls':function(_0x1a628b,_0x3f9869){return _0x1a628b(_0x3f9869);},'CzhJb':_0x422f4c[_0x24d2aa(0x38e)],'HcsNl':function(_0x4ce550){const _0x300956=_0x24d2aa;return _0x422f4c[_0x300956(0x311)](_0x4ce550);}};if(_0x422f4c[_0x24d2aa(0x20c)](_0x422f4c[_0x24d2aa(0x1b0)],_0x422f4c[_0x24d2aa(0x218)])){let _0x478d72=!(-0x8c9+-0x709*-0x2+0x8*-0xa9);if(/^@/[_0x24d2aa(0x40c)](_0x274936)){const [,_0x13a0ca,_0x538182]=/^@(.*?)\.(.*?)$/[_0x24d2aa(0x288)](_0x274936),_0xa274a3=this[_0x24d2aa(0x337)](_0x13a0ca),_0x1bc6b7=_0x13a0ca?_0x422f4c['CrEae'](_0x422f4c[_0x24d2aa(0x3eb)],_0xa274a3)?null:_0x422f4c[_0x24d2aa(0x383)](_0xa274a3,'{}'):'{}';try{if(_0x422f4c[_0x24d2aa(0x234)](_0x422f4c[_0x24d2aa(0x390)],_0x422f4c[_0x24d2aa(0x37a)])){const _0xee3c99=JSON[_0x24d2aa(0x3ae)](_0x1bc6b7);this[_0x24d2aa(0x29b)](_0xee3c99,_0x538182,_0x3813d0),_0x478d72=this['setval'](JSON[_0x24d2aa(0x2a0)](_0xee3c99),_0x13a0ca);}else _0x9eeac3[_0x24d2aa(0x347)](_0x504124),_0xa4f818[_0x24d2aa(0x258)](_0x2cd36d);}catch(_0x395345){const _0x469fb0={};this[_0x24d2aa(0x29b)](_0x469fb0,_0x538182,_0x3813d0),_0x478d72=this[_0x24d2aa(0x1ed)](JSON[_0x24d2aa(0x2a0)](_0x469fb0),_0x13a0ca);}}else _0x478d72=this[_0x24d2aa(0x1ed)](_0x3813d0,_0x274936);return _0x478d72;}else{const _0x48522a={'kLfqm':eyHcWN[_0x24d2aa(0x2e5)],'zGJqP':eyHcWN[_0x24d2aa(0x3b9)],'gAxuo':function(_0x282316,_0x33f48a){const _0x478b73=_0x24d2aa;return eyHcWN[_0x478b73(0x365)](_0x282316,_0x33f48a);},'yEKjz':eyHcWN[_0x24d2aa(0x34b)],'BbcMa':function(_0x42f4a2,_0x19511f){return _0x42f4a2+_0x19511f;},'mwbir':_0x24d2aa(0x261),'RLmwA':_0x24d2aa(0x271),'igjLw':function(_0xa23856){const _0x6ba348=_0x24d2aa;return eyHcWN[_0x6ba348(0x2ca)](_0xa23856);}};_0x17486f(this,function(){const _0x24d229=_0x24d2aa,_0x48350f=new _0x180308(_0x48522a[_0x24d229(0x354)]),_0x3f235e=new _0x3cb0ca(_0x48522a['zGJqP'],'i'),_0x289b80=_0x48522a[_0x24d229(0x415)](_0x3e61a1,_0x48522a[_0x24d229(0x247)]);!_0x48350f[_0x24d229(0x40c)](_0x48522a[_0x24d229(0x3dc)](_0x289b80,_0x48522a[_0x24d229(0x3cd)]))||!_0x3f235e[_0x24d229(0x40c)](_0x48522a[_0x24d229(0x3dc)](_0x289b80,_0x48522a[_0x24d229(0x2d2)]))?_0x48522a[_0x24d229(0x415)](_0x289b80,'0'):_0x48522a[_0x24d229(0x286)](_0x2a4465);})();}}[_0x1cd528(0x337)](_0x32f55f){const _0x60b6af=_0x1cd528;return this[_0x60b6af(0x3e2)]()||this['isLoon']()?$persistentStore[_0x60b6af(0x2b0)](_0x32f55f):this[_0x60b6af(0x1fb)]()?$prefs[_0x60b6af(0x3ce)](_0x32f55f):this[_0x60b6af(0x276)]()?(this[_0x60b6af(0x2c3)]=this[_0x60b6af(0x3c7)](),this[_0x60b6af(0x2c3)][_0x32f55f]):this[_0x60b6af(0x2c3)]&&this[_0x60b6af(0x2c3)][_0x32f55f]||null;}[_0x1cd528(0x1ed)](_0x266285,_0x5baf00){const _0x2a57ff=_0x1cd528;return this[_0x2a57ff(0x3e2)]()||this[_0x2a57ff(0x277)]()?$persistentStore[_0x2a57ff(0x369)](_0x266285,_0x5baf00):this[_0x2a57ff(0x1fb)]()?$prefs[_0x2a57ff(0x3e1)](_0x266285,_0x5baf00):this[_0x2a57ff(0x276)]()?(this[_0x2a57ff(0x2c3)]=this[_0x2a57ff(0x3c7)](),this[_0x2a57ff(0x2c3)][_0x5baf00]=_0x266285,this[_0x2a57ff(0x3c0)](),!(0x1888+-0x455*-0x2+-0x2132*0x1)):this[_0x2a57ff(0x2c3)]&&this[_0x2a57ff(0x2c3)][_0x5baf00]||null;}[_0x1cd528(0x1ba)](_0x4719ef){const _0x1adb5d=_0x1cd528;this[_0x1adb5d(0x1de)]=this[_0x1adb5d(0x1de)]?this[_0x1adb5d(0x1de)]:require('got'),this[_0x1adb5d(0x3b7)]=this[_0x1adb5d(0x3b7)]?this[_0x1adb5d(0x3b7)]:require('tough-cookie'),this[_0x1adb5d(0x30b)]=this[_0x1adb5d(0x30b)]?this[_0x1adb5d(0x30b)]:new this[(_0x1adb5d(0x3b7))][(_0x1adb5d(0x289))](),_0x4719ef&&(_0x4719ef[_0x1adb5d(0x2a1)]=_0x4719ef[_0x1adb5d(0x2a1)]?_0x4719ef[_0x1adb5d(0x2a1)]:{},_0x422f4c[_0x1adb5d(0x201)](void(-0xea+-0x234e*-0x1+-0x8e*0x3e),_0x4719ef[_0x1adb5d(0x2a1)][_0x1adb5d(0x32c)])&&void(-0x23c+-0x1*-0xf8c+0x470*-0x3)===_0x4719ef[_0x1adb5d(0x1c6)]&&(_0x4719ef[_0x1adb5d(0x1c6)]=this[_0x1adb5d(0x30b)]));}[_0x1cd528(0x27c)](_0x584699,_0x42f90f=()=>{}){const _0x464293=_0x1cd528,_0x2411bc={'RfUBr':function(_0x3bd321,_0x31173a,_0x544d4f,_0xc51474){return _0x3bd321(_0x31173a,_0x544d4f,_0xc51474);},'xglYU':function(_0x5971f4,_0x49e530){return _0x5971f4+_0x49e530;},'paTET':function(_0x39c87d,_0x31923a){const _0x563b04=_0x2ef6;return _0x422f4c[_0x563b04(0x1bc)](_0x39c87d,_0x31923a);},'ipHdf':function(_0xf5dcda,_0x2bd523){const _0x1c5497=_0x2ef6;return _0x422f4c[_0x1c5497(0x2d4)](_0xf5dcda,_0x2bd523);},'TqOGk':function(_0x4a0a3c,_0x1eec3e){const _0x1d0702=_0x2ef6;return _0x422f4c[_0x1d0702(0x2be)](_0x4a0a3c,_0x1eec3e);},'DqNUe':function(_0x5e0720,_0x44daa3){const _0x278896=_0x2ef6;return _0x422f4c[_0x278896(0x34a)](_0x5e0720,_0x44daa3);},'CuANv':function(_0x52fc71,_0xef8fd3){return _0x422f4c['NdYpm'](_0x52fc71,_0xef8fd3);},'GQZoq':_0x422f4c[_0x464293(0x3d7)],'vJEnF':function(_0x13e065,_0x2c448b){const _0x67570b=_0x464293;return _0x422f4c[_0x67570b(0x2e1)](_0x13e065,_0x2c448b);},'bhfLD':function(_0x4668c1,_0x5dc0da){return _0x4668c1===_0x5dc0da;},'Wojox':_0x422f4c['TdAMF'],'kxkJN':_0x422f4c[_0x464293(0x2ac)],'WuPoP':_0x422f4c[_0x464293(0x2f5)],'qJiZw':function(_0x356ddf,_0x3efe53){const _0x659c2d=_0x464293;return _0x422f4c[_0x659c2d(0x272)](_0x356ddf,_0x3efe53);},'hyHCi':function(_0x2f16f8,_0x45ae08){const _0x3bcbd2=_0x464293;return _0x422f4c[_0x3bcbd2(0x201)](_0x2f16f8,_0x45ae08);},'HLvEP':_0x422f4c[_0x464293(0x1c0)]},_0x5524db={};_0x5524db[_0x464293(0x416)]=!(-0x911*-0x1+0x1183*-0x1+0x873);const _0x1b7fd1={};_0x1b7fd1[_0x464293(0x2a9)]=!(-0x1f16+0xcfa+0x1*0x121d),(_0x584699[_0x464293(0x2a1)]&&(delete _0x584699[_0x464293(0x2a1)][_0x422f4c[_0x464293(0x22e)]],delete _0x584699[_0x464293(0x2a1)][_0x422f4c[_0x464293(0x3f4)]]),this[_0x464293(0x3e2)]()||this[_0x464293(0x277)]()?(this[_0x464293(0x3e2)]()&&this[_0x464293(0x3fa)]&&(_0x584699[_0x464293(0x2a1)]=_0x584699[_0x464293(0x2a1)]||{},Object[_0x464293(0x3bd)](_0x584699['headers'],_0x5524db)),$httpClient[_0x464293(0x27c)](_0x584699,(_0x54d82d,_0x14e76d,_0x19ecbf)=>{const _0x41b7f5=_0x464293;if(_0x422f4c[_0x41b7f5(0x2ef)](_0x422f4c[_0x41b7f5(0x3c1)],_0x41b7f5(0x1f9))){var _0x18888b=_0x50b75c[_0x41b7f5(0x31c)][_0x41b7f5(0x1d5)][_0x41b7f5(0x3ae)](_0x1d8771),_0x117fc9=_0x593c0e[_0x41b7f5(0x31c)][_0x41b7f5(0x1d5)][_0x41b7f5(0x3ae)](_0x23e3d5);const _0x20188c={};_0x20188c['iv']=_0x117fc9,_0x20188c[_0x41b7f5(0x1d2)]=_0x28aea6[_0x41b7f5(0x1d2)][_0x41b7f5(0x3b1)],_0x20188c[_0x41b7f5(0x1f2)]=_0x3f9c84[_0x41b7f5(0x249)][_0x41b7f5(0x266)];var _0x33e9c9=_0x467643[_0x41b7f5(0x3c6)][_0x41b7f5(0x33a)]({'ciphertext':_0x91c894[_0x41b7f5(0x31c)][_0x41b7f5(0x228)][_0x41b7f5(0x3ae)](_0x310360)},_0x18888b,_0x20188c);return _0x33e9c9[_0x41b7f5(0x225)](_0x3afdfa[_0x41b7f5(0x31c)][_0x41b7f5(0x1d5)]);}else _0x422f4c['NPDHx'](!_0x54d82d,_0x14e76d)&&(_0x14e76d[_0x41b7f5(0x350)]=_0x19ecbf,_0x14e76d[_0x41b7f5(0x2e0)]=_0x14e76d[_0x41b7f5(0x395)]),_0x422f4c['zVKIM'](_0x42f90f,_0x54d82d,_0x14e76d,_0x19ecbf);})):this[_0x464293(0x1fb)]()?(this[_0x464293(0x3fa)]&&(_0x584699[_0x464293(0x240)]=_0x584699[_0x464293(0x240)]||{},Object[_0x464293(0x3bd)](_0x584699[_0x464293(0x240)],_0x1b7fd1)),$task[_0x464293(0x205)](_0x584699)[_0x464293(0x2ba)](_0x4355f9=>{const _0x2d6d02=_0x464293,{statusCode:_0x10d460,statusCode:_0x31f2e2,headers:_0x1e965d,body:_0x2db364}=_0x4355f9,_0xedbff5={};_0xedbff5[_0x2d6d02(0x395)]=_0x10d460,_0xedbff5[_0x2d6d02(0x2e0)]=_0x31f2e2,_0xedbff5[_0x2d6d02(0x2a1)]=_0x1e965d,_0xedbff5[_0x2d6d02(0x350)]=_0x2db364,_0x42f90f(null,_0xedbff5,_0x2db364);},_0x4ffe81=>_0x42f90f(_0x4ffe81))):this[_0x464293(0x276)]()&&(this[_0x464293(0x1ba)](_0x584699),this[_0x464293(0x1de)](_0x584699)['on'](_0x422f4c[_0x464293(0x292)],(_0x380084,_0x2873f7)=>{const _0x32d285=_0x464293;if(_0x2411bc[_0x32d285(0x387)](_0x32d285(0x335),_0x32d285(0x335))){const {statusCode:_0x427a7a,statusCode:_0x4dc998,headers:_0x47ac79,body:_0xeda96f}=_0x4be329,_0x308f9b={};_0x308f9b[_0x32d285(0x395)]=_0x427a7a,_0x308f9b[_0x32d285(0x2e0)]=_0x4dc998,_0x308f9b[_0x32d285(0x2a1)]=_0x47ac79,_0x308f9b[_0x32d285(0x350)]=_0xeda96f,_0x2411bc[_0x32d285(0x35f)](_0x2f2bf1,null,_0x308f9b,_0xeda96f);}else try{if(_0x380084[_0x32d285(0x2a1)][_0x32d285(0x37b)]){if(_0x2411bc[_0x32d285(0x21a)](_0x2411bc[_0x32d285(0x1dd)],_0x32d285(0x2dc))){const _0x2e5306=_0x380084[_0x32d285(0x2a1)][_0x32d285(0x37b)][_0x32d285(0x298)](this[_0x32d285(0x3b7)][_0x32d285(0x32c)][_0x32d285(0x3ae)])[_0x32d285(0x225)]();this[_0x32d285(0x30b)][_0x32d285(0x37f)](_0x2e5306,null),_0x2873f7[_0x32d285(0x1c6)]=this[_0x32d285(0x30b)];}else{let _0x5bbd08={'M+':new _0x405171()[_0x32d285(0x323)]()+(-0x283*-0xb+0x65*-0x5+-0x21*0xc7),'d+':new _0x354061()[_0x32d285(0x210)](),'H+':new _0xec14b6()[_0x32d285(0x2f9)](),'m+':new _0x1955e3()[_0x32d285(0x239)](),'s+':new _0x5ca44e()[_0x32d285(0x391)](),'q+':_0xa7a10f[_0x32d285(0x1a9)](_0x2411bc[_0x32d285(0x2cf)](new _0x3db750()[_0x32d285(0x323)](),-0x1*0x1891+0xf7+0x179d)/(0x7cf+0x2e7*0x1+0xab3*-0x1)),'S':new _0x5caa70()[_0x32d285(0x3fb)]()};/(y+)/[_0x32d285(0x40c)](_0x32a2bf)&&(_0x4abe1f=_0x18b0c3[_0x32d285(0x268)](_0x5d6bf1['$1'],_0x2411bc[_0x32d285(0x2cf)](new _0x150def()[_0x32d285(0x28f)](),'')[_0x32d285(0x254)](_0x2411bc[_0x32d285(0x2a2)](0x553+0x6e+0x5bd*-0x1,_0x39b4e9['$1'][_0x32d285(0x235)]))));for(let _0x16fd25 in _0x5bbd08)new _0x40e874(_0x2411bc['ipHdf'](_0x2411bc[_0x32d285(0x2ed)]('(',_0x16fd25),')'))[_0x32d285(0x40c)](_0x552222)&&(_0x56152a=_0x1283a1[_0x32d285(0x268)](_0x2155ed['$1'],_0x2411bc['DqNUe'](0x2561+-0xb45+-0x1a1b,_0x4be6ff['$1'][_0x32d285(0x235)])?_0x5bbd08[_0x16fd25]:_0x2411bc[_0x32d285(0x3ff)]('00',_0x5bbd08[_0x16fd25])[_0x32d285(0x254)](_0x2411bc[_0x32d285(0x3ff)]('',_0x5bbd08[_0x16fd25])[_0x32d285(0x235)])));return _0x5409f1;}}}catch(_0x21997a){if(_0x32d285(0x3cc)===_0x2411bc[_0x32d285(0x290)])this[_0x32d285(0x40d)](_0x21997a);else return function(_0x3e3cf5){}[_0x32d285(0x2af)](bWrvwX[_0x32d285(0x336)])[_0x32d285(0x2e4)](_0x32d285(0x24a));}})[_0x464293(0x2ba)](_0x4d51d8=>{const _0x5963d2=_0x464293;if(_0x2411bc[_0x5963d2(0x21a)](_0x2411bc[_0x5963d2(0x379)],_0x5963d2(0x3d2))){const {statusCode:_0x119013,statusCode:_0x59eb67,headers:_0x1ca098,body:_0x290129}=_0x4d51d8,_0x23f955={};_0x23f955[_0x5963d2(0x395)]=_0x119013,_0x23f955[_0x5963d2(0x2e0)]=_0x59eb67,_0x23f955[_0x5963d2(0x2a1)]=_0x1ca098,_0x23f955[_0x5963d2(0x350)]=_0x290129,_0x42f90f(null,_0x23f955,_0x290129);}else return _0x492078[_0x5963d2(0x3ae)](_0x369e4a);},_0x158cf4=>{const _0x48c1e6=_0x464293,_0xd198c={'PLMdv':function(_0x1d1169,_0x12a705){const _0x1c8408=_0x2ef6;return _0x2411bc[_0x1c8408(0x3f6)](_0x1d1169,_0x12a705);}};if(_0x2411bc[_0x48c1e6(0x2c6)](_0x2411bc[_0x48c1e6(0x41a)],_0x2411bc[_0x48c1e6(0x41a)])){const {message:_0x4bf001,response:_0x369f2e}=_0x158cf4;_0x42f90f(_0x4bf001,_0x369f2e,_0x369f2e&&_0x369f2e[_0x48c1e6(0x350)]);}else return _0xd198c[_0x48c1e6(0x389)](_0x2f40cd,_0x4702c6)?_0x4c490c:_0x15a393;})));}[_0x1cd528(0x2cc)](_0x388c1c,_0x12ffec=()=>{}){const _0x2c191f=_0x1cd528,_0x4c6c10={'OJdoH':function(_0x29a7d7,_0x9856f5,_0x108289,_0x5ce2d5){const _0x84c9ff=_0x2ef6;return _0x422f4c[_0x84c9ff(0x2e7)](_0x29a7d7,_0x9856f5,_0x108289,_0x5ce2d5);},'AQOll':function(_0x2ed859){const _0x25c06a=_0x2ef6;return _0x422f4c[_0x25c06a(0x3d3)](_0x2ed859);},'boURs':_0x422f4c[_0x2c191f(0x1fa)],'SMKec':function(_0x36550f,_0x833b74,_0x2821af,_0x5e04d2){const _0x310e82=_0x2c191f;return _0x422f4c[_0x310e82(0x2e7)](_0x36550f,_0x833b74,_0x2821af,_0x5e04d2);}},_0x3a7931={};_0x3a7931[_0x2c191f(0x416)]=!(0x4*0xd3+0xb8*-0x31+-0x1*-0x1fed);const _0x4063cc={};_0x4063cc[_0x2c191f(0x2a9)]=!(0x35*-0x55+-0x944+0xb5*0x26);if(_0x388c1c[_0x2c191f(0x350)]&&_0x388c1c[_0x2c191f(0x2a1)]&&!_0x388c1c[_0x2c191f(0x2a1)][_0x422f4c[_0x2c191f(0x22e)]]&&(_0x388c1c[_0x2c191f(0x2a1)][_0x422f4c[_0x2c191f(0x22e)]]=_0x422f4c[_0x2c191f(0x278)]),_0x388c1c[_0x2c191f(0x2a1)]&&delete _0x388c1c[_0x2c191f(0x2a1)][_0x422f4c[_0x2c191f(0x3f4)]],this[_0x2c191f(0x3e2)]()||this[_0x2c191f(0x277)]())this[_0x2c191f(0x3e2)]()&&this[_0x2c191f(0x3fa)]&&(_0x388c1c[_0x2c191f(0x2a1)]=_0x388c1c[_0x2c191f(0x2a1)]||{},Object[_0x2c191f(0x3bd)](_0x388c1c[_0x2c191f(0x2a1)],_0x3a7931)),$httpClient[_0x2c191f(0x2cc)](_0x388c1c,(_0x512899,_0xbeb599,_0x4eda65)=>{const _0x115fc7=_0x2c191f;!_0x512899&&_0xbeb599&&(_0xbeb599[_0x115fc7(0x350)]=_0x4eda65,_0xbeb599[_0x115fc7(0x2e0)]=_0xbeb599[_0x115fc7(0x395)]),_0x12ffec(_0x512899,_0xbeb599,_0x4eda65);});else{if(this[_0x2c191f(0x1fb)]())_0x388c1c[_0x2c191f(0x3ee)]=_0x422f4c[_0x2c191f(0x1c9)],this[_0x2c191f(0x3fa)]&&(_0x388c1c[_0x2c191f(0x240)]=_0x388c1c[_0x2c191f(0x240)]||{},Object[_0x2c191f(0x3bd)](_0x388c1c[_0x2c191f(0x240)],_0x4063cc)),$task[_0x2c191f(0x205)](_0x388c1c)[_0x2c191f(0x2ba)](_0x5c35c1=>{const _0x2b26f9=_0x2c191f,{statusCode:_0x32e4dd,statusCode:_0x5ad8ea,headers:_0x59fb72,body:_0x301f98}=_0x5c35c1,_0x39105b={};_0x39105b[_0x2b26f9(0x395)]=_0x32e4dd,_0x39105b[_0x2b26f9(0x2e0)]=_0x5ad8ea,_0x39105b[_0x2b26f9(0x2a1)]=_0x59fb72,_0x39105b[_0x2b26f9(0x350)]=_0x301f98,_0x12ffec(null,_0x39105b,_0x301f98);},_0x5bfa76=>_0x12ffec(_0x5bfa76));else{if(this[_0x2c191f(0x276)]()){if(_0x422f4c[_0x2c191f(0x217)]!==_0x2c191f(0x3b2)){this[_0x2c191f(0x1ba)](_0x388c1c);const {url:_0x3f908c,..._0x1d8f31}=_0x388c1c;this[_0x2c191f(0x1de)][_0x2c191f(0x2cc)](_0x3f908c,_0x1d8f31)[_0x2c191f(0x2ba)](_0x5de501=>{const _0x1ce74e=_0x2c191f,{statusCode:_0xe63aa9,statusCode:_0x40fb9b,headers:_0x21cc11,body:_0x5d4085}=_0x5de501,_0x5de524={};_0x5de524['status']=_0xe63aa9,_0x5de524[_0x1ce74e(0x2e0)]=_0x40fb9b,_0x5de524[_0x1ce74e(0x2a1)]=_0x21cc11,_0x5de524[_0x1ce74e(0x350)]=_0x5d4085,_0x4c6c10[_0x1ce74e(0x264)](_0x12ffec,null,_0x5de524,_0x5d4085);},_0x34f2d0=>{const _0x5ea45b=_0x2c191f;if(_0x4c6c10[_0x5ea45b(0x29d)]===_0x4c6c10[_0x5ea45b(0x29d)]){const {message:_0x752cf1,response:_0x289ac9}=_0x34f2d0;_0x4c6c10[_0x5ea45b(0x30e)](_0x12ffec,_0x752cf1,_0x289ac9,_0x289ac9&&_0x289ac9[_0x5ea45b(0x350)]);}else _0x4c6c10[_0x5ea45b(0x39e)](_0x7648fd);});}else{const [,_0x39f01f,_0x454c92]=/^@(.*?)\.(.*?)$/[_0x2c191f(0x288)](_0x348004),_0x2c862e=_0x39f01f?this[_0x2c191f(0x337)](_0x39f01f):'';if(_0x2c862e)try{const _0x451c18=_0x5efc85[_0x2c191f(0x3ae)](_0x2c862e);_0x3ae241=_0x451c18?this[_0x2c191f(0x3a4)](_0x451c18,_0x454c92,''):_0x1ea69f;}catch(_0x4f4231){_0x52f8b8='';}}}}}}[_0x1cd528(0x41b)](_0x366628){const _0x4d1e8e=_0x1cd528;let _0x90016a={'M+':_0x422f4c[_0x4d1e8e(0x36a)](new Date()['getMonth'](),0x153*0x7+-0xb5*-0xe+-0x132a),'d+':new Date()[_0x4d1e8e(0x210)](),'H+':new Date()[_0x4d1e8e(0x2f9)](),'m+':new Date()[_0x4d1e8e(0x239)](),'s+':new Date()[_0x4d1e8e(0x391)](),'q+':Math[_0x4d1e8e(0x1a9)](_0x422f4c[_0x4d1e8e(0x1f7)](new Date()[_0x4d1e8e(0x323)]()+(0x5*-0x2a1+0x16a*-0x8+-0x6*-0x414),0x67*-0x17+0x1f2+0x752)),'S':new Date()[_0x4d1e8e(0x3fb)]()};/(y+)/[_0x4d1e8e(0x40c)](_0x366628)&&(_0x366628=_0x366628[_0x4d1e8e(0x268)](RegExp['$1'],(new Date()[_0x4d1e8e(0x28f)]()+'')[_0x4d1e8e(0x254)](_0x422f4c[_0x4d1e8e(0x1bc)](-0xf2c+-0x13*0x49+-0x1*-0x149b,RegExp['$1'][_0x4d1e8e(0x235)]))));for(let _0x285bba in _0x90016a)new RegExp(_0x422f4c[_0x4d1e8e(0x230)]('(',_0x285bba)+')')[_0x4d1e8e(0x40c)](_0x366628)&&(_0x366628=_0x366628[_0x4d1e8e(0x268)](RegExp['$1'],0x215c+-0x89e+-0x18bd==RegExp['$1'][_0x4d1e8e(0x235)]?_0x90016a[_0x285bba]:_0x422f4c[_0x4d1e8e(0x230)]('00',_0x90016a[_0x285bba])[_0x4d1e8e(0x254)](_0x422f4c[_0x4d1e8e(0x230)]('',_0x90016a[_0x285bba])[_0x4d1e8e(0x235)])));return _0x366628;}[_0x1cd528(0x2b3)](_0x463f2e=_0x363070,_0x49c0ad='',_0x40629e='',_0x530a69){const _0x252438=_0x1cd528,_0x2ee7e0=_0x8170c=>{const _0x1b69e1=_0x2ef6;if(!_0x8170c)return _0x8170c;if(_0x422f4c[_0x1b69e1(0x34a)](_0x422f4c[_0x1b69e1(0x1be)],typeof _0x8170c))return this[_0x1b69e1(0x277)]()?_0x8170c:this['isQuanX']()?{'open-url':_0x8170c}:this[_0x1b69e1(0x3e2)]()?{'url':_0x8170c}:void(0x1a2b+-0x1384+-0x6a7*0x1);if(_0x422f4c[_0x1b69e1(0x34a)](_0x422f4c[_0x1b69e1(0x280)],typeof _0x8170c)){if(_0x422f4c[_0x1b69e1(0x201)](_0x422f4c[_0x1b69e1(0x397)],_0x422f4c[_0x1b69e1(0x397)])){if(this[_0x1b69e1(0x277)]()){let _0x4a177b=_0x8170c[_0x1b69e1(0x3de)]||_0x8170c[_0x1b69e1(0x1b6)]||_0x8170c[_0x422f4c[_0x1b69e1(0x30a)]],_0x119038=_0x8170c[_0x1b69e1(0x1f3)]||_0x8170c[_0x422f4c[_0x1b69e1(0x31f)]];const _0x380621={};return _0x380621[_0x1b69e1(0x3de)]=_0x4a177b,_0x380621[_0x1b69e1(0x1f3)]=_0x119038,_0x380621;}if(this[_0x1b69e1(0x1fb)]()){if(_0x422f4c[_0x1b69e1(0x2e1)](_0x422f4c[_0x1b69e1(0x26d)],_0x422f4c[_0x1b69e1(0x338)])){let _0x24f637=_0x8170c[_0x422f4c[_0x1b69e1(0x30a)]]||_0x8170c[_0x1b69e1(0x1b6)]||_0x8170c[_0x1b69e1(0x3de)],_0x486bb9=_0x8170c[_0x1b69e1(0x3a9)]||_0x8170c[_0x1b69e1(0x1f3)];const _0x687c55={};return _0x687c55[_0x1b69e1(0x244)]=_0x24f637,_0x687c55[_0x1b69e1(0x3a9)]=_0x486bb9,_0x687c55;}else return this[_0x1b69e1(0x374)](_0x11b882[_0x1b69e1(0x2a0)](_0x97980f),_0x37d68b);}if(this[_0x1b69e1(0x3e2)]()){let _0x22c8ef=_0x8170c[_0x1b69e1(0x1b6)]||_0x8170c[_0x1b69e1(0x3de)]||_0x8170c[_0x422f4c[_0x1b69e1(0x30a)]];const _0x4ec70a={};return _0x4ec70a[_0x1b69e1(0x1b6)]=_0x22c8ef,_0x4ec70a;}}else return this[_0x1b69e1(0x3e2)]()||this[_0x1b69e1(0x277)]()?_0x3a87ab[_0x1b69e1(0x369)](_0x2fc55b,_0x3ac030):this[_0x1b69e1(0x1fb)]()?_0xbe017e[_0x1b69e1(0x3e1)](_0x39dc51,_0x35a049):this[_0x1b69e1(0x276)]()?(this['data']=this['loaddata'](),this[_0x1b69e1(0x2c3)][_0x56f23c]=_0x2a8de5,this[_0x1b69e1(0x3c0)](),!(-0x2*0x3c+-0x8*0x31+-0x8*-0x40)):this[_0x1b69e1(0x2c3)]&&this[_0x1b69e1(0x2c3)][_0x4ac67f]||null;}};this[_0x252438(0x206)]||(this[_0x252438(0x3e2)]()||this[_0x252438(0x277)]()?$notification[_0x252438(0x2cc)](_0x463f2e,_0x49c0ad,_0x40629e,_0x2ee7e0(_0x530a69)):this[_0x252438(0x1fb)]()&&_0x422f4c[_0x252438(0x353)]($notify,_0x463f2e,_0x49c0ad,_0x40629e,_0x422f4c[_0x252438(0x2ce)](_0x2ee7e0,_0x530a69)));let _0x2ea334=['',_0x422f4c[_0x252438(0x216)]];_0x2ea334[_0x252438(0x347)](_0x463f2e),_0x49c0ad&&_0x2ea334[_0x252438(0x347)](_0x49c0ad),_0x40629e&&_0x2ea334[_0x252438(0x347)](_0x40629e),console[_0x252438(0x258)](_0x2ea334[_0x252438(0x358)]('\x0a')),this[_0x252438(0x410)]=this[_0x252438(0x410)][_0x252438(0x36c)](_0x2ea334);}[_0x1cd528(0x258)](..._0x49d55c){const _0x5ce773=_0x1cd528;_0x422f4c[_0x5ce773(0x3fe)](_0x49d55c[_0x5ce773(0x235)],-0x200b+-0x8b9+0x28c4)&&(this[_0x5ce773(0x410)]=[...this[_0x5ce773(0x410)],..._0x49d55c]),console[_0x5ce773(0x258)](_0x49d55c['join'](this[_0x5ce773(0x29a)]));}[_0x1cd528(0x40d)](_0x2d1af7,_0x2d7834){const _0x6bdbcb=_0x1cd528,_0x48a951=!this[_0x6bdbcb(0x3e2)]()&&!this[_0x6bdbcb(0x1fb)]()&&!this[_0x6bdbcb(0x277)]();_0x48a951?this[_0x6bdbcb(0x258)]('','❗️'+this[_0x6bdbcb(0x245)]+_0x6bdbcb(0x267),_0x2d1af7[_0x6bdbcb(0x233)]):this['log']('','❗️'+this[_0x6bdbcb(0x245)]+_0x6bdbcb(0x267),_0x2d1af7);}[_0x1cd528(0x3a3)](_0x13df5d){return new Promise(_0x2b0910=>setTimeout(_0x2b0910,_0x13df5d));}[_0x1cd528(0x1b7)](_0x3fa778={}){const _0x3196a2=_0x1cd528,_0x518300=new Date()[_0x3196a2(0x3d6)](),_0x35ce3b=_0x422f4c[_0x3196a2(0x1f7)](_0x422f4c[_0x3196a2(0x340)](_0x518300,this[_0x3196a2(0x32a)]),0x149*-0x1+-0x2e+0x55f);this[_0x3196a2(0x258)]('','🔔'+this[_0x3196a2(0x245)]+_0x3196a2(0x1e8)+_0x35ce3b+'\x20秒'),this[_0x3196a2(0x258)](),(this['isSurge']()||this[_0x3196a2(0x1fb)]()||this[_0x3196a2(0x277)]())&&_0x422f4c[_0x3196a2(0x2ce)]($done,_0x3fa778);}}(_0x363070,_0x2c29a7);}function _0x57665a(_0x1080e7){const _0x2a2889=_0x56a2b9,_0x197be6={};_0x197be6['DkBZC']=_0x2a2889(0x3a9),_0x197be6[_0x2a2889(0x363)]=function(_0xf14229,_0x4424f3){return _0xf14229===_0x4424f3;},_0x197be6[_0x2a2889(0x3dd)]=_0x2a2889(0x2fb),_0x197be6[_0x2a2889(0x242)]=_0x2a2889(0x283),_0x197be6[_0x2a2889(0x1e2)]=function(_0x2c2273,_0x362d35){return _0x2c2273===_0x362d35;},_0x197be6[_0x2a2889(0x368)]=_0x2a2889(0x3d5),_0x197be6[_0x2a2889(0x380)]=_0x2a2889(0x274),_0x197be6[_0x2a2889(0x37e)]=_0x2a2889(0x24a),_0x197be6[_0x2a2889(0x251)]=function(_0x51e449,_0xbf4fd0){return _0x51e449!==_0xbf4fd0;},_0x197be6[_0x2a2889(0x3f0)]=function(_0x191441,_0x302440){return _0x191441+_0x302440;},_0x197be6[_0x2a2889(0x1ec)]=function(_0x53be15,_0x120f43){return _0x53be15/_0x120f43;},_0x197be6[_0x2a2889(0x2d0)]=_0x2a2889(0x235),_0x197be6[_0x2a2889(0x215)]=function(_0xf955ec,_0x19514c){return _0xf955ec===_0x19514c;},_0x197be6[_0x2a2889(0x321)]=function(_0x5dc9d9,_0x20df53){return _0x5dc9d9+_0x20df53;},_0x197be6[_0x2a2889(0x294)]=_0x2a2889(0x315),_0x197be6[_0x2a2889(0x303)]=_0x2a2889(0x3be),_0x197be6[_0x2a2889(0x2f0)]=_0x2a2889(0x30c),_0x197be6[_0x2a2889(0x1f1)]=_0x2a2889(0x1c7),_0x197be6[_0x2a2889(0x2c5)]=function(_0x29fdde,_0x47a482){return _0x29fdde!==_0x47a482;},_0x197be6[_0x2a2889(0x317)]='xQelM',_0x197be6[_0x2a2889(0x1cc)]=_0x2a2889(0x411),_0x197be6[_0x2a2889(0x414)]=_0x2a2889(0x2f1);const _0x219cf5=_0x197be6;function _0x1d6784(_0x13c89c){const _0x3ea3c7=_0x2a2889;if(_0x219cf5[_0x3ea3c7(0x1e2)](typeof _0x13c89c,_0x219cf5[_0x3ea3c7(0x368)])){if(_0x219cf5[_0x3ea3c7(0x380)]!==_0x219cf5[_0x3ea3c7(0x380)]){let _0x50403f=_0x409bf1[_0x3ea3c7(0x244)]||_0x121129[_0x3ea3c7(0x1b6)]||_0x37feff[_0x3ea3c7(0x3de)],_0x3aa1f8=_0x3338d8[_0x219cf5[_0x3ea3c7(0x273)]]||_0x26fa98[_0x3ea3c7(0x1f3)];const _0x305f58={};return _0x305f58[_0x3ea3c7(0x244)]=_0x50403f,_0x305f58[_0x3ea3c7(0x3a9)]=_0x3aa1f8,_0x305f58;}else return function(_0x56222d){}[_0x3ea3c7(0x2af)](_0x3ea3c7(0x26f))[_0x3ea3c7(0x2e4)](_0x219cf5[_0x3ea3c7(0x37e)]);}else _0x219cf5[_0x3ea3c7(0x251)](_0x219cf5[_0x3ea3c7(0x3f0)]('',_0x219cf5[_0x3ea3c7(0x1ec)](_0x13c89c,_0x13c89c))[_0x219cf5[_0x3ea3c7(0x2d0)]],0x1*0x377+-0x1c5f*-0x1+-0x1fd5)||_0x219cf5[_0x3ea3c7(0x215)](_0x13c89c%(0x4*-0x6a4+-0x335*0x1+0x1dd9*0x1),-0x1a56+0x1439*-0x1+-0x3*-0xf85)?function(){const _0x4879b2=_0x3ea3c7;if(_0x219cf5[_0x4879b2(0x363)](_0x219cf5[_0x4879b2(0x3dd)],_0x4879b2(0x24f))){if(this[_0x4879b2(0x276)]()){this['fs']=this['fs']?this['fs']:_0xf21187('fs'),this[_0x4879b2(0x419)]=this[_0x4879b2(0x419)]?this[_0x4879b2(0x419)]:_0x2afdd6('path');const _0x58a468=this[_0x4879b2(0x419)][_0x4879b2(0x3bb)](this[_0x4879b2(0x2ab)]),_0x5d9abf=this[_0x4879b2(0x419)][_0x4879b2(0x3bb)](_0x2e1138[_0x4879b2(0x308)](),this[_0x4879b2(0x2ab)]),_0x543d5b=this['fs'][_0x4879b2(0x1ac)](_0x58a468),_0x1eda45=!_0x543d5b&&this['fs'][_0x4879b2(0x1ac)](_0x5d9abf),_0x57aab9=_0x3f95f5[_0x4879b2(0x2a0)](this[_0x4879b2(0x2c3)]);_0x543d5b?this['fs'][_0x4879b2(0x30f)](_0x58a468,_0x57aab9):_0x1eda45?this['fs'][_0x4879b2(0x30f)](_0x5d9abf,_0x57aab9):this['fs'][_0x4879b2(0x30f)](_0x58a468,_0x57aab9);}}else return!![];}[_0x3ea3c7(0x2af)](_0x219cf5[_0x3ea3c7(0x321)](_0x219cf5[_0x3ea3c7(0x294)],_0x3ea3c7(0x30c)))[_0x3ea3c7(0x31a)](_0x219cf5[_0x3ea3c7(0x303)]):_0x219cf5[_0x3ea3c7(0x251)](_0x3ea3c7(0x320),_0x3ea3c7(0x320))?(!_0x131fa4&&_0x126273&&(_0x3b428b[_0x3ea3c7(0x350)]=_0x33860a,_0x1ccad1[_0x3ea3c7(0x2e0)]=_0x1de625[_0x3ea3c7(0x395)]),_0x506fa2(_0x20240e,_0xe5dde4,_0x12f3bb)):function(){const _0x33a114=_0x3ea3c7,_0x3ed897={};_0x3ed897[_0x33a114(0x2fc)]=_0x33a114(0x244),_0x3ed897[_0x33a114(0x2a7)]=_0x219cf5[_0x33a114(0x273)];const _0x3d97af=_0x3ed897;if(_0x219cf5[_0x33a114(0x363)](_0x219cf5[_0x33a114(0x242)],_0x33a114(0x283)))return![];else{if(this[_0x33a114(0x277)]()){let _0x44ae80=_0x2d9a92[_0x33a114(0x3de)]||_0x3ca1fd[_0x33a114(0x1b6)]||_0xcf0361[_0x3d97af[_0x33a114(0x2fc)]],_0x55d0c8=_0x2378e4[_0x33a114(0x1f3)]||_0x3b1973[_0x3d97af[_0x33a114(0x2a7)]];const _0x17fe25={};return _0x17fe25[_0x33a114(0x3de)]=_0x44ae80,_0x17fe25[_0x33a114(0x1f3)]=_0x55d0c8,_0x17fe25;}if(this['isQuanX']()){let _0x1a355d=_0x52d0da[_0x3d97af[_0x33a114(0x2fc)]]||_0x24d1b7[_0x33a114(0x1b6)]||_0x2a27e4[_0x33a114(0x3de)],_0xe6003e=_0x3453e6[_0x3d97af[_0x33a114(0x2a7)]]||_0x4afd5b['mediaUrl'];const _0x268d79={};return _0x268d79[_0x33a114(0x244)]=_0x1a355d,_0x268d79[_0x33a114(0x3a9)]=_0xe6003e,_0x268d79;}if(this[_0x33a114(0x3e2)]()){let _0x3972bf=_0x834da1[_0x33a114(0x1b6)]||_0x456e05[_0x33a114(0x3de)]||_0x56ed3c[_0x3d97af[_0x33a114(0x2fc)]];const _0x3578c4={};return _0x3578c4[_0x33a114(0x1b6)]=_0x3972bf,_0x3578c4;}}}[_0x3ea3c7(0x2af)](_0x219cf5[_0x3ea3c7(0x321)](_0x3ea3c7(0x315),_0x219cf5[_0x3ea3c7(0x2f0)]))[_0x3ea3c7(0x2e4)](_0x219cf5['PldSD']);_0x1d6784(++_0x13c89c);}try{if(_0x1080e7)return _0x219cf5[_0x2a2889(0x2c5)](_0x219cf5[_0x2a2889(0x317)],_0x2a2889(0x32b))?_0x1d6784:{};else _0x219cf5[_0x2a2889(0x1cc)]!==_0x219cf5['EJjsc']?_0x1d6784(-0x2*0x81+0xf1*0x1f+-0x1c2d*0x1):this[_0x2a2889(0x275)]=_0xc4b21c;}catch(_0x57956e){}} \ No newline at end of file From b7bc910e85cc195f60920f75dfd29f0611147048 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Tue, 21 Dec 2021 14:51:08 +0800 Subject: [PATCH 73/75] Update zqkd_check.js --- zqkd/zqkd_check.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zqkd/zqkd_check.js b/zqkd/zqkd_check.js index 5f0ffb3..e047d4c 100644 --- a/zqkd/zqkd_check.js +++ b/zqkd/zqkd_check.js @@ -7,4 +7,4 @@ !!!谨慎操作:如果需要注销,请把环境变量zqkdCancel设为1!!! */ -const _0x56a2b9=_0x2ef6;(function(_0x20a5a5,_0x14c2b0){const _0x1de56b=_0x2ef6,_0x35764f=_0x20a5a5();while(!![]){try{const _0x23a67a=-parseInt(_0x1de56b(0x367))/(-0x45*-0x15+0x3*-0x316+0x2*0x1cd)*(-parseInt(_0x1de56b(0x356))/(-0x9f5+-0x111f+0x1b16))+-parseInt(_0x1de56b(0x1d1))/(0x20dd+0x53e+-0x35*0xb8)*(parseInt(_0x1de56b(0x342))/(-0x1*0x1daf+0x19d6+0x3dd))+-parseInt(_0x1de56b(0x21c))/(-0x1109*-0x2+0x978+-0x2b85*0x1)+-parseInt(_0x1de56b(0x3f7))/(-0x4*0x81a+-0xc2+0x2130)*(-parseInt(_0x1de56b(0x1dc))/(0x1*-0x331+-0x15bc+0x18f4))+-parseInt(_0x1de56b(0x2b2))/(0xad*-0x2f+-0x25fc+0x45c7)*(parseInt(_0x1de56b(0x3f5))/(0xad*-0x29+0x2196+0x8*-0xbb))+parseInt(_0x1de56b(0x327))/(-0x3c7*-0x1+0x2a*-0x4c+0x8bb)*(parseInt(_0x1de56b(0x2a8))/(-0x3c1*0x7+0x1af7+-0xa5))+parseInt(_0x1de56b(0x2d9))/(0xf85*-0x1+-0xd78+0x1d09);if(_0x23a67a===_0x14c2b0)break;else _0x35764f['push'](_0x35764f['shift']());}catch(_0x3d2dde){_0x35764f['push'](_0x35764f['shift']());}}}(_0x5c51,0x9e7e2+0x370a7+-0x2db6*0x26));const jsname=_0x56a2b9(0x2fa),$=Env(jsname),logDebug=-0x93*-0x16+-0x18e4*0x1+0xc42;let rndtime='',httpResult;var CryptoJS=require('crypto-js');let userAccount=($[_0x56a2b9(0x276)]()?process[_0x56a2b9(0x275)][_0x56a2b9(0x3db)]:$[_0x56a2b9(0x301)](_0x56a2b9(0x3db)))||'',userAccountArr=[];setInterval(function(){_0x57665a();},-0x49d*-0x7+-0x84*-0x3b+0x5*-0x96b);let needCancel=($[_0x56a2b9(0x276)]()?process[_0x56a2b9(0x275)][_0x56a2b9(0x2db)]:$[_0x56a2b9(0x301)](_0x56a2b9(0x2db)))||0x2*-0x6ee+-0x29*0xf1+0x3475,codeName=_0x56a2b9(0x222),validCode=![],ckList=[],cancelList=[];!(async()=>{const _0x50d79f=_0x56a2b9,_0x391989={'gnoWc':function(_0x961af9,_0x36f0b8){return _0x961af9!=_0x36f0b8;},'HXFAX':_0x50d79f(0x418),'wnAjk':function(_0x510724,_0x57bb0d){return _0x510724==_0x57bb0d;},'dRGEp':function(_0x2f5e86,_0xbb96f8){return _0x2f5e86!==_0xbb96f8;},'LHXgV':_0x50d79f(0x346),'KAxnt':_0x50d79f(0x20f),'qJXRi':function(_0xd9ab4b){return _0xd9ab4b();},'QwTwC':_0x50d79f(0x34e),'COYWD':_0x50d79f(0x399),'uhjtr':_0x50d79f(0x2ec),'HpfLs':function(_0x42f1bf){return _0x42f1bf();},'UIstg':function(_0xd4f62c,_0x4403ad){return _0xd4f62c===_0x4403ad;},'mEiNd':_0x50d79f(0x309),'JzCfV':_0x50d79f(0x1b4),'zryti':function(_0x4be4eb,_0x299dee){return _0x4be4eb<_0x299dee;},'ZnayH':_0x50d79f(0x28b),'GVfka':function(_0x1edb4f,_0x1655e0){return _0x1edb4f>_0x1655e0;},'CFqNW':_0x50d79f(0x27d),'jYDmf':_0x50d79f(0x2bd)};if(_0x391989[_0x50d79f(0x2b7)](typeof $request,_0x391989[_0x50d79f(0x366)]))$[_0x50d79f(0x2b3)](jsname+_0x391989[_0x50d79f(0x40b)]);else{if(_0x391989[_0x50d79f(0x1c8)]!==_0x50d79f(0x1ea)){await _0x391989[_0x50d79f(0x1af)](isValidCode);if(_0x391989[_0x50d79f(0x285)](validCode,![]))return;console[_0x50d79f(0x258)](_0x391989[_0x50d79f(0x406)]),console[_0x50d79f(0x258)](_0x391989[_0x50d79f(0x281)]),console[_0x50d79f(0x258)](_0x391989[_0x50d79f(0x3bf)]),console[_0x50d79f(0x258)](_0x50d79f(0x40a));if(!await _0x391989[_0x50d79f(0x1f6)](checkEnv)){if(_0x391989[_0x50d79f(0x1c4)](_0x391989[_0x50d79f(0x344)],_0x391989[_0x50d79f(0x344)]))return;else return _0x4fe338[_0x50d79f(0x258)](_0x5b08bf),_0x51c569[_0x50d79f(0x258)](_0x50d79f(0x257)+_0x409c61+_0x50d79f(0x22d)),![];}for(let _0x491b6a of userAccountArr){if(_0x391989[_0x50d79f(0x1c4)](_0x50d79f(0x21b),_0x391989[_0x50d79f(0x319)])){const _0x8cfff5=_0x5e9eec[_0x50d79f(0x2e4)](_0x480687,arguments);return _0x1a3e08=null,_0x8cfff5;}else{let _0x164a3f=_0x491b6a[_0x50d79f(0x38c)]('#');if(_0x391989['zryti'](_0x164a3f[_0x50d79f(0x235)],-0x1*0x18b3+-0x765+0x201a))continue;let _0x1110b4=_0x164a3f[-0x1985+-0xdd5*-0x2+0x9*-0x3d],_0x56a4ee=_0x164a3f[-0x1*0xf67+0x2524+-0x15bc],_0xd275bd=CryptoJS[_0x50d79f(0x3b6)](_0x56a4ee)[_0x50d79f(0x225)](CryptoJS[_0x50d79f(0x31c)][_0x50d79f(0x20b)]),_0x59659b=CryptoJS[_0x50d79f(0x255)](_0xd275bd+_0x391989[_0x50d79f(0x36f)])[_0x50d79f(0x225)](CryptoJS[_0x50d79f(0x31c)][_0x50d79f(0x20b)]),_0x5cbe61=_0x50d79f(0x262)+_0x1110b4+_0x50d79f(0x246)+_0x59659b+_0x50d79f(0x219),_0x2b6f24=CryptoJS[_0x50d79f(0x255)](_0x5cbe61)['toString'](CryptoJS[_0x50d79f(0x31c)][_0x50d79f(0x20b)]);await Login(_0x1110b4,_0x59659b,_0x2b6f24);}}if(_0x391989[_0x50d79f(0x1cd)](ckList[_0x50d79f(0x235)],0x17*-0x144+-0x1270+-0x11*-0x2cc)){if(_0x391989[_0x50d79f(0x1c4)](_0x391989[_0x50d79f(0x250)],_0x391989[_0x50d79f(0x250)])){console['log'](_0x391989[_0x50d79f(0x2e8)]);let _0x2f5756=ckList[_0x50d79f(0x358)]('@');console[_0x50d79f(0x258)](_0x2f5756);}else{const _0x229de1=_0x359c7d[_0x50d79f(0x2a1)]['set-cookie'][_0x50d79f(0x298)](this[_0x50d79f(0x3b7)][_0x50d79f(0x32c)][_0x50d79f(0x3ae)])[_0x50d79f(0x225)]();this[_0x50d79f(0x30b)][_0x50d79f(0x37f)](_0x229de1,null),_0x4bee92[_0x50d79f(0x1c6)]=this[_0x50d79f(0x30b)];}}}else return _0x391989[_0x50d79f(0x33b)](_0x391989[_0x50d79f(0x366)],typeof _0x5ebb57)&&_0x391989[_0x50d79f(0x285)](_0x391989[_0x50d79f(0x366)],typeof _0xe9e3a);}})()[_0x56a2b9(0x1ce)](_0x38af62=>$[_0x56a2b9(0x40d)](_0x38af62))['finally'](()=>$[_0x56a2b9(0x1b7)]());async function isValidCode(){const _0xd06499=_0x56a2b9,_0x29bd2f={'zraOA':function(_0x1794e8,_0x54b05e){return _0x1794e8!=_0x54b05e;},'iMGNn':function(_0x491b20,_0x5a7762){return _0x491b20+_0x5a7762;},'zSjkN':_0xd06499(0x38a),'UlNEa':_0xd06499(0x3ec),'sSviD':_0xd06499(0x202),'YOhyy':function(_0x3b3646,_0x37bf0e){return _0x3b3646!==_0x37bf0e;},'Dfcwo':_0xd06499(0x35a),'CBnec':function(_0x187387){return _0x187387();},'Tztdo':_0xd06499(0x2a4)};let _0x364ce4=_0x29bd2f[_0xd06499(0x226)](printCaller);const _0x334dd7={};_0x334dd7[_0xd06499(0x1b6)]=_0x29bd2f[_0xd06499(0x1e3)],_0x334dd7['headers']='';let _0x2cb468=_0x334dd7;return new Promise(_0x48beec=>{const _0x521738=_0xd06499,_0x18ee6f={'OyKHB':function(_0x88f47a,_0x394912){const _0x492421=_0x2ef6;return _0x29bd2f[_0x492421(0x417)](_0x88f47a,_0x394912);},'OJEfi':function(_0x432562,_0x338508){return _0x432562!==_0x338508;},'JdAZX':_0x521738(0x30d),'mMQNF':function(_0xd2a48a,_0x1bee66){const _0x319cbf=_0x521738;return _0x29bd2f[_0x319cbf(0x1b8)](_0xd2a48a,_0x1bee66);},'LUHSo':_0x521738(0x203),'gmGoG':_0x521738(0x3ac),'IwlxF':_0x29bd2f[_0x521738(0x3e0)],'rBmqw':function(_0x168122,_0x5773f9){return _0x168122===_0x5773f9;},'VYPel':_0x29bd2f[_0x521738(0x412)],'VXmaV':_0x29bd2f[_0x521738(0x1b9)],'woXNy':function(_0x466e6e,_0x31d4b7){const _0x5355fe=_0x521738;return _0x29bd2f[_0x5355fe(0x2c7)](_0x466e6e,_0x31d4b7);},'FGStx':_0x29bd2f[_0x521738(0x3e4)],'YRtVJ':function(_0x5605e6){return _0x5605e6();}};$[_0x521738(0x27c)](_0x2cb468,async(_0xf2f5e3,_0x45ad75,_0x1477b)=>{const _0x3c7f0=_0x521738,_0x203c79={'nOJll':function(_0x4e71eb,_0x3003d3){const _0x5ad5f4=_0x2ef6;return _0x18ee6f[_0x5ad5f4(0x1d7)](_0x4e71eb,_0x3003d3);}};if(_0x18ee6f[_0x3c7f0(0x1aa)](_0x3c7f0(0x30d),_0x18ee6f[_0x3c7f0(0x1b2)]))return _0x203c79[_0x3c7f0(0x38f)](_0x3c7f0(0x418),typeof _0x48d024)&&!!_0x2ed1aa[_0x3c7f0(0x208)];else try{if(_0xf2f5e3)console[_0x3c7f0(0x258)](_0x18ee6f[_0x3c7f0(0x2b8)](_0x364ce4,_0x18ee6f[_0x3c7f0(0x25c)])),console[_0x3c7f0(0x258)](JSON[_0x3c7f0(0x2a0)](_0xf2f5e3)),$[_0x3c7f0(0x40d)](_0xf2f5e3);else{if(_0x18ee6f[_0x3c7f0(0x1aa)](_0x3c7f0(0x28e),_0x18ee6f[_0x3c7f0(0x2ad)]))try{let _0x2d2b7f=JSON['parse'](_0x1477b);if(logDebug)console[_0x3c7f0(0x258)](_0x2d2b7f);if(_0x2d2b7f[''+codeName]&&_0x2d2b7f[''+codeName]==0xbed+0x1e33+0x107*-0x29){if(_0x18ee6f[_0x3c7f0(0x1aa)](_0x18ee6f[_0x3c7f0(0x259)],_0x3c7f0(0x2b9)))validCode=!![],console[_0x3c7f0(0x258)](_0x2d2b7f[_0x3c7f0(0x2b3)]);else return;}else{if(_0x18ee6f[_0x3c7f0(0x3c2)](_0x18ee6f[_0x3c7f0(0x263)],_0x18ee6f[_0x3c7f0(0x252)])){const _0x3b2127=_0x16b9ce?function(){const _0x3b9ab7=_0x3c7f0;if(_0x3fba50){const _0x171843=_0x5a9a86[_0x3b9ab7(0x2e4)](_0xde357c,arguments);return _0x2ff7ac=null,_0x171843;}}:function(){};return _0x5dfe95=![],_0x3b2127;}else console[_0x3c7f0(0x258)](_0x2d2b7f[_0x3c7f0(0x302)]);}}catch(_0x4e2eca){_0x18ee6f[_0x3c7f0(0x2cd)](_0x18ee6f[_0x3c7f0(0x265)],_0x18ee6f[_0x3c7f0(0x265)])?_0x2fc6bb=_0xf1d184[_0x3c7f0(0x3ae)](this[_0x3c7f0(0x301)](_0x8fb1a6)):$[_0x3c7f0(0x40d)](_0x4e2eca,_0x45ad75);}finally{_0x18ee6f[_0x3c7f0(0x37c)](_0x48beec);}else{if(_0x2c1d00)_0x524408=_0x422920[_0x3c7f0(0x38c)]('@');else return _0x321c6d[_0x3c7f0(0x258)]('未找到zqkdAccount'),![];return _0x1ce4c[_0x3c7f0(0x258)](_0x3c7f0(0x326)+_0x41df25[_0x3c7f0(0x235)]+_0x3c7f0(0x26c)),!![];}}}catch(_0x43392f){$[_0x3c7f0(0x40d)](_0x43392f,_0x45ad75);}finally{_0x18ee6f[_0x3c7f0(0x37c)](_0x48beec);}});});}async function checkEnv(){const _0x5c99fa=_0x56a2b9,_0x5b8c7b={};_0x5b8c7b[_0x5c99fa(0x409)]=_0x5c99fa(0x231);const _0x1d5728=_0x5b8c7b;if(userAccount)userAccountArr=userAccount[_0x5c99fa(0x38c)]('@');else return console[_0x5c99fa(0x258)](_0x1d5728[_0x5c99fa(0x409)]),![];return console[_0x5c99fa(0x258)](_0x5c99fa(0x326)+userAccountArr[_0x5c99fa(0x235)]+_0x5c99fa(0x26c)),!![];}async function Login(_0x51d6d7,_0x236530,_0x4e1600){const _0x20af14=_0x56a2b9,_0xef4fc4={'GmffZ':function(_0x5106e7){return _0x5106e7();},'fpYMr':_0x20af14(0x322),'YETjg':_0x20af14(0x1b3),'rhwiL':_0x20af14(0x3e7),'zXEQp':_0x20af14(0x21e),'yoSGN':_0x20af14(0x310),'saadK':function(_0x2c436d,_0x2a7619,_0x1b3dbe){return _0x2c436d(_0x2a7619,_0x1b3dbe);},'durzU':function(_0x531358,_0x55a62a){return _0x531358==_0x55a62a;}};let _0x27216b=_0xef4fc4['GmffZ'](printCaller);const _0x683b1c={};_0x683b1c[_0x20af14(0x1b6)]=_0xef4fc4[_0x20af14(0x3fc)],_0x683b1c[_0x20af14(0x2a1)]={},_0x683b1c[_0x20af14(0x350)]=_0x20af14(0x35c)+_0x51d6d7+_0x20af14(0x2c2)+_0x236530+_0x20af14(0x1ae)+_0x4e1600+_0x20af14(0x2d1),_0x683b1c[_0x20af14(0x2a1)][_0x20af14(0x3ad)]=_0xef4fc4[_0x20af14(0x3f3)],_0x683b1c[_0x20af14(0x2a1)][_0x20af14(0x348)]=_0x20af14(0x341),_0x683b1c[_0x20af14(0x2a1)][_0x20af14(0x2c0)]=_0xef4fc4[_0x20af14(0x2b1)],_0x683b1c[_0x20af14(0x2a1)][_0x20af14(0x1d8)]=_0xef4fc4[_0x20af14(0x355)],_0x683b1c[_0x20af14(0x2a1)][_0x20af14(0x33e)]=_0xef4fc4[_0x20af14(0x282)],_0x683b1c[_0x20af14(0x2a1)][_0x20af14(0x227)]=_0x4e1600;let _0x3dd937=_0x683b1c;await _0xef4fc4['saadK'](httpPost,_0x3dd937,_0x27216b);let _0x58c451=httpResult;if(!_0x58c451)return;if(_0xef4fc4[_0x20af14(0x2ae)](_0x58c451[_0x20af14(0x212)],-0x19a3+0x1215*0x1+0x78e)){let _0x1c8acf=_0x20af14(0x3a6)+_0x58c451[_0x20af14(0x223)][_0x20af14(0x328)]+'&zqkey='+_0x58c451[_0x20af14(0x223)][_0x20af14(0x204)]+_0x20af14(0x413)+_0x58c451[_0x20af14(0x223)][_0x20af14(0x3bc)];await getBalance(_0x1c8acf,_0x51d6d7,_0x58c451[_0x20af14(0x223)][_0x20af14(0x1f0)]);}else console[_0x20af14(0x258)]('账号'+_0x51d6d7+_0x20af14(0x209)+_0x58c451['message']);}async function getBalance(_0x488e1a,_0x140479,_0x45dab7){const _0x6219e5=_0x56a2b9,_0x28764c={'opopB':function(_0x3ddcbe){return _0x3ddcbe();},'kuShR':function(_0x15871b,_0x3c19c3){return _0x15871b+_0x3c19c3;},'mKQrg':_0x6219e5(0x404),'PyCVu':function(_0x1efca6,_0x592285){return _0x1efca6(_0x592285);},'gzSbd':function(_0x5511cd,_0x3c1809,_0x209b8c){return _0x5511cd(_0x3c1809,_0x209b8c);},'oPknW':_0x6219e5(0x253),'rxMBg':function(_0x379d09,_0x1235a1){return _0x379d09==_0x1235a1;},'zQyxO':_0x6219e5(0x377),'hXuGE':function(_0x2a61da,_0x781135){return _0x2a61da==_0x781135;},'gFkwt':function(_0x464da8,_0x4b60fb){return _0x464da8!==_0x4b60fb;},'nHIzx':'QZLjN','mnzQq':function(_0x3d6304,_0x1f42bd){return _0x3d6304==_0x1f42bd;},'UtCZU':_0x6219e5(0x39b),'kRjkk':_0x6219e5(0x3d1),'ECUPs':_0x6219e5(0x28d),'arUIX':function(_0x3ec1d7,_0xac366e){return _0x3ec1d7==_0xac366e;},'FdMVe':_0x6219e5(0x385)};let _0x25e297=_0x28764c[_0x6219e5(0x2e2)](printCaller),_0xd7fd24=_0x488e1a[_0x6219e5(0x268)](/zqkey/g,_0x6219e5(0x2bc)),_0x3fc6c9=_0x28764c[_0x6219e5(0x349)](_0x28764c[_0x6219e5(0x316)],_0xd7fd24),_0x5bf8d3=_0x28764c[_0x6219e5(0x295)](populateGetUrl,_0x3fc6c9);await _0x28764c[_0x6219e5(0x325)](httpGet,_0x5bf8d3,_0x25e297);let _0x421670=httpResult;if(!_0x421670)return;let _0x428e09=-0x9a7*0x3+-0x211*0x5+0x274b;console[_0x6219e5(0x258)](_0x28764c[_0x6219e5(0x3e5)]);if(_0x28764c[_0x6219e5(0x3aa)](_0x421670[_0x6219e5(0x395)],0x173*0x7+0x1b4c+-0x2571)){if(_0x6219e5(0x269)===_0x28764c[_0x6219e5(0x2cb)])try{return this[_0x6219e5(0x374)](_0xf14a0a[_0x6219e5(0x2a0)](_0x3ebc9b),_0x1c83a2);}catch{return!(0x1b8d+0x1975+-0x3501);}else{let _0x41fe71=_0x28764c[_0x6219e5(0x3aa)](_0x421670[_0x6219e5(0x3f8)][_0x6219e5(0x395)],0x10b0+-0x1f67+0xeb7)?'黑号':'正常';console[_0x6219e5(0x258)]('账号'+_0x140479+':'+_0x45dab7+_0x6219e5(0x352)+_0x41fe71),console[_0x6219e5(0x258)](_0x6219e5(0x1d0)+_0x421670[_0x6219e5(0x3f8)][_0x6219e5(0x1cb)]),console[_0x6219e5(0x258)](_0x6219e5(0x376)+_0x421670[_0x6219e5(0x3f8)][_0x6219e5(0x1c2)]);if(_0x28764c[_0x6219e5(0x1bf)](_0x421670[_0x6219e5(0x3f8)][_0x6219e5(0x395)],0x700+-0xcfb+0x5fb)){if(_0x28764c[_0x6219e5(0x1eb)](_0x28764c[_0x6219e5(0x1b5)],_0x28764c[_0x6219e5(0x1b5)]))return!(-0xaa8+-0xbe8+0x1691);else{if(_0x28764c[_0x6219e5(0x330)](needCancel,-0x1d8f+-0x248a+-0x210d*-0x2)){if(_0x28764c[_0x6219e5(0x1eb)](_0x6219e5(0x26a),_0x28764c[_0x6219e5(0x27a)]))console[_0x6219e5(0x258)](_0x28764c[_0x6219e5(0x26e)]),_0x428e09=-0x1116+0xf7d+0x199,await _0x28764c[_0x6219e5(0x325)](CancelAccount,_0x488e1a,_0x140479);else{let _0xdfbe59=_0x3f9a16[_0x6219e5(0x1a9)](new _0x5534b2()[_0x6219e5(0x3d6)]()/(-0x1dde*0x1+0x13e9+0x1*0xddd));const _0x51e2df={};_0x51e2df[_0x6219e5(0x28c)]=_0xdfbe59,_0x51e2df[_0x6219e5(0x3ad)]=_0x6219e5(0x1b3),_0x51e2df[_0x6219e5(0x36d)]=_0x6219e5(0x2f3),_0x51e2df[_0x6219e5(0x1e9)]=_0x6219e5(0x1e4),_0x51e2df[_0x6219e5(0x348)]=_0x6219e5(0x341);const _0x174bcf={};_0x174bcf[_0x6219e5(0x1b6)]=_0xd2be66,_0x174bcf[_0x6219e5(0x2a1)]=_0x51e2df,_0x174bcf[_0x6219e5(0x350)]=_0x106173;let _0x1f4047=_0x174bcf;return _0x1f4047;}}else console[_0x6219e5(0x258)](_0x28764c[_0x6219e5(0x324)]);}}}}else console[_0x6219e5(0x258)]('账号'+_0x140479+':'+_0x45dab7+_0x6219e5(0x2d7)+_0x421670[_0x6219e5(0x2b3)]);if(_0x28764c[_0x6219e5(0x2da)](_0x428e09,-0x14bf+0xc91+0x82f)){if(_0x28764c[_0x6219e5(0x1eb)](_0x28764c[_0x6219e5(0x334)],_0x28764c[_0x6219e5(0x334)])){this['fs']=this['fs']?this['fs']:_0x2b4749('fs'),this[_0x6219e5(0x419)]=this[_0x6219e5(0x419)]?this['path']:_0xbc2339('path');const _0x45eb05=this[_0x6219e5(0x419)][_0x6219e5(0x3bb)](this[_0x6219e5(0x2ab)]),_0x56d5f4=this[_0x6219e5(0x419)][_0x6219e5(0x3bb)](_0x19f086[_0x6219e5(0x308)](),this[_0x6219e5(0x2ab)]),_0x5e0312=this['fs'][_0x6219e5(0x1ac)](_0x45eb05),_0x4b739d=!_0x5e0312&&this['fs'][_0x6219e5(0x1ac)](_0x56d5f4),_0x2a6de2=_0x12681e[_0x6219e5(0x2a0)](this[_0x6219e5(0x2c3)]);_0x5e0312?this['fs'][_0x6219e5(0x30f)](_0x45eb05,_0x2a6de2):_0x4b739d?this['fs'][_0x6219e5(0x30f)](_0x56d5f4,_0x2a6de2):this['fs'][_0x6219e5(0x30f)](_0x45eb05,_0x2a6de2);}else ckList['push'](_0x488e1a),console[_0x6219e5(0x258)](_0x488e1a);}}function _0x2ef6(_0x1c81f5,_0x2a9ba3){const _0x431a12=_0x5c51();return _0x2ef6=function(_0x5c5158,_0x2ef6e2){_0x5c5158=_0x5c5158-(0x3b2*-0x7+0x22d5+-0x74f);let _0x5c665e=_0x431a12[_0x5c5158];return _0x5c665e;},_0x2ef6(_0x1c81f5,_0x2a9ba3);}function _0x5c51(){const _0x1818ee=['NdYpm','HQRee','Accept-Encoding','rXaKL','&mobile_type=1&net_type=1&network_type=WIFI&openudid=711ca30d9d3c10b7&os_api=25&os_version=VOG-AL10-user%207.1.2%20HUAWEIVOG-AL10%20701210917%20release-keys&password=','data','dNIuu','vMTrh','hyHCi','YOhyy','Mozilla/5.0\x20(iPhone;\x20CPU\x20iPhone\x20OS\x2015_0\x20like\x20Mac\x20OS\x20X)\x20AppleWebKit/605.1.15\x20(KHTML,\x20like\x20Gecko)\x20Mobile/15E148','eWrzW','HcsNl','zQyxO','post','woXNy','dlSnC','xglYU','HPtOT','&sm_device_id=20211112123533c490f279d26a934ca445950324c9601a01419a1241729573&storage=61.39&uid=61373930&version_code=63','RLmwA','reduce','OfkMi','TpOMR','YmsZU','\x20查询失败:','CbctA','7930908SlIDmT','arUIX','zqkdCancel','nQfyn','toObj','ZYNHB','AADRf','statusCode','ttXja','opopB','LJGtH','apply','AYqng','TcICJ','IwiLP','jYDmf','osYAD','ZQCOy','*/*','例子:export\x20zqkdAccount=\x27110#123456@120#654321\x27','TqOGk','xyNwb','HvJSU','WmnXM','fOZUR','TvoLE','VOG-AL10','unTbc','BJSid','EBaMS','FYiLe','VfKmf','getHours','中青看点检查状态','qdSJm','PNYdK','zlhak','JGfWz','jBNZV','==============📣系统通知📣==============','getdata','errorMsg','VBXsu','naUQF','SKVES','sXdCL',',\x20开始!','cwd','LYBjQ','DBFta','ckjar','gger','tiHoZ','SMKec','writeFileSync','application/x-www-form-urlencoded','SIdop','IGlkb','OnkAb','AzjxA','debu','mKQrg','qiiVP','失败:','JzCfV','call','qRDyM','enc','Dsptc','AmCkv','mHCkF','loWoG','OijkH','https://kandian.wkandian.com/v3/user/mobile/login.json','getMonth','ECUPs','gzSbd','共找到','2432930PTczIc','uid','SffMY','startTime','GUBIT','Cookie','MOtmd','hDZbU','function\x20*\x5c(\x20*\x5c)','mnzQq','TMsCU','SXsDH','https://kandian.wkandian.com/WebApi/User/accountCancel?access=WIfI&app_version=2.6.1&channel=80000000&device_platform=iphone&device_brand=iphone&device_type=1&sm_device_id=zzzz&device_id=yyyy&os_version=15.0&device_model=iPhone%252012&','FdMVe','rqBdA','GQZoq','getval','kUyds','FNnuZ','decrypt','gnoWc','magog','gaMPB','Content-Type','mock_type','ejbGB','keep-alive','4VmlUhF','DtIcH','mEiNd','ibqIz',':\x20此脚本不做重写,请检查重写设置','push','Connection','kuShR','ssqTC','CzhJb','sfTDU','KJoSp','本脚本会找出账号ck并检查账号状态是否黑号,默认不执行注销','wGTkI','body','JBUBS','\x20状态\x20--\x20','cwarS','kLfqm','zXEQp','482LbFJiv','MCxDm','join','RSONo','HQKFv','match','access=WIFI&app_name=zqkd_app&app_version=3.6.0&carrier=CMCC&channel=c1031&device_brand=HUAWEI&device_id=56800462&device_model=VOG-AL10&device_platform=android&device_type=android&dpi=240&inner_version=202108181534&language=zh-CN&memory=3&mi=0&mobile=','ZdLRD','BArol','RfUBr','GyHpO','mpnYf','rfdGO','cYDvG','BGWqx','nDQls','HXFAX','3422jtrhtd','cWiKU','write','OgmTN','init','concat','device-model','hjCmn','ZnayH','CPpFg','BHqEC','wPJhe','GcWhw','setdata','ZLSmR','【历史收益】:','thgvb','JqWxN','WuPoP','ZfHnX','set-cookie','YRtVJ','cron','fcnyX','setCookieSync','jWZqL','\x5c+\x5c+\x20*(?:[a-zA-Z_$][0-9a-zA-Z_$]*)','ckwwP','oMiYS','CxEPU','YbhFC','NPDHx','vJEnF','JxBHE','PLMdv','haspd','mulPW','split','ioUck','KgiFY','nOJll','pnPbZ','getSeconds','rAene','KLZdT','OYKSD','status','HoaHR','LEIBP','Thuko','把需要检查的账号按照\x20手机号#密码\x20的格式,填到zqkdAccount里,多账号用@隔开','sYMAt','sfieu','BulLJ','lqONA','AQOll','blYQu','/v1/scripting/evaluate','yEdbV','XkKwY','wait','lodash_get','qzPou','uid=','vvqAZ','nkOIk','media-url','rxMBg','mooqE','xkzlj','Host','parse','@chavy_boxjs_userCfgs.httpapi_timeout','WbFDs','CBC','krFHn','WNTwZ','DWGOj','spJDh','SHA1','cktough','XMLHttpRequest','iHEbX','jyNkf','resolve','zqkey_id','assign','action','uhjtr','writedata','UTTmP','rBmqw','eLEBS','gFMrT','lNetU','DES','loaddata','trim','PrOWz','object','VSiaM','vEvrH','mwbir','valueForKey','sRuxB','@chavy_boxjs_userCfgs.httpapi','已黑号,准备注销此账号','tPvIv','PHDRy','null','string','getTime','vsMaY','ciphertext','注销账号','ATNam','zqkdAccount','BbcMa','VdXQP','openUrl','edSmN','zSjkN','setValueForKey','isSurge','lrwST','Dfcwo','oPknW','sbnpr','gzip','OMQpt','LzRQC','PUPcy','AUrQx','qhAvi','wrDtI','method','lGJlG','YjlQo','TwKbT','JTQRE','YETjg','bxPDq','360FNXnPt','qJiZw','68226LqmSRu','user','QtDma','isNeedRewrite','getMilliseconds','fpYMr','box.dat','TNqIf','CuANv','vUbAj','Content-Length','redirect','charAt','https://kandian.wkandian.com/wap/user/balance?','search','QwTwC','CVPre','tJYJP','fOHGG','!!!谨慎操作:如果需要注销,请把环境变量zqkdCancel设为1!!!\x0a','LHXgV','test','logErr','fnPmY','NmWhl','logs','joWjD','UlNEa','&zqkey_id=','EJjsc','gAxuo','X-Surge-Skip-Scripting','zraOA','undefined','path','HLvEP','time','YtWAk','zVnnh','floor','OJEfi','XLEJV','existsSync','bCttP','&phone_sim=1&request_time=1640060741&resolution=720x1280&rom_version=VOG-AL10-user%207.1.2%20HUAWEIVOG-AL10%20701210917%20release-keys&s_ad=WFbVGOYyXwIo%3DG3RaF-mQ3_hnznzkfvm51kuVs0b3dMvGt&s_im=vYdVi_XPUOzA%3DmY3BxrJj0CkiC9Sa0W1DOA%3D%3DDR&sign=','qJXRi','iIJoB','qjKfe','JdAZX','kandian.wkandian.com','mlTFf','nHIzx','url','done','iMGNn','sSviD','initGotEnv','0|2|3|1|4','mfNar','dQCtA','BKvzI','hXuGE','VEYdM','LBRBb','total_score','script_text','UIstg','pelMr','cookieJar','stateObject','KAxnt','FASuc','flwTe','score','eDzUS','GVfka','catch','EGUMV','【金币总数】:','2033652JRqLnw','mode','NxRjO','Ltlts','Utf8','PFIrF','OyKHB','User-Agent','kAaVF','IXwtq','tOZpH','252XdSElf','Wojox','got','isArray','UkjQW','xVXBQ','EfdQi','Tztdo','android','GET','timeout','http://',',\x20结束!\x20🕛\x20','device-platform','TobCN','gFkwt','LHnCb','setval','zVKIM','EOFon','nickname','PldSD','padding','mediaUrl','TucFj','iyqeU','HpfLs','pPdse','tbphD','WbPxm','yTELd','isQuanX','KcPRv','EmKKJ','DiwAd','qjnQK','NgFeD','CrEae','taaQp',':\x20post请求失败','zqkey','fetch','isMute','getjson','exports','登录失败:','gnbYS','Hex','ISyXL','runScript','LKIbI','ruNTi','getDate','(((.+)+)+)+$','error_code','dXhmi','https://kandian.wkandian.com/h5/staticPage/20210816logout/reason.html?access=WIfI&app_version=2.6.1&channel=80000000&device_platform=iphone&device_brand=iphone&device_type=1&sm_device_id=20211010165617354e5c206e3a80e35b12ff9f7b2d32dd01aea6d82201a6f1&device_id=55902582&os_version=15.0&device_model=iPhone%252012&','zrqiL','aWKCh','lwFET','WLZwv','phone_sim=1request_time=1640060741resolution=720x1280rom_version=VOG-AL10-user\x207.1.2\x20HUAWEIVOG-AL10\x20701210917\x20release-keyss_ad=WFbVGOYyXwIo=G3RaF-mQ3_hnznzkfvm51kuVs0b3dMvGts_im=vYdVi_XPUOzA=mY3BxrJj0CkiC9Sa0W1DOA==DRsm_device_id=20211112123533c490f279d26a934ca445950324c9601a01419a1241729573storage=61.39uid=61373930version_code=63jdvylqchJZrfw0o2DgAbsmCGUapF1YChc','bhfLD','ajtXH','4024895pMOzeM','IiauV','okhttp/3.12.2','jKmXy','rxUMJ','GqtJC','zqkd_check','items','fVIMj','toString','CBnec','Token','Base64','xjdmo','ArcGB','jWTDG','RkhTw',':\x20服务器访问数据为空,请检查自身设备网络情况','SQDCi','YpwAh','YleSw','未找到zqkdAccount','http','stack','FEcTF','length','PSRDV','Gcxch','setjson','getMinutes','abs','send',':\x20未知错误','kpypf','eybna','zESas','opts','fZEEZ','NHDJm','Kakmp','open-url','name','mobile_type=1net_type=1network_type=WIFIopenudid=711ca30d9d3c10b7os_api=25os_version=VOG-AL10-user\x207.1.2\x20HUAWEIVOG-AL10\x20701210917\x20release-keyspassword=','yEKjz','Oacwr','pad','counter','TKzzU','jkQQx','KwEgJ','OkxXu','umHux','CFqNW','URGPH','VXmaV','========================','substr','MD5','YneeA','Function\x20','log','IwlxF','readFileSync','.$1','LUHSo','iyiKU','DPtyW','IOoNV','UcWib','chain','access=WIFIapp_name=zqkd_appapp_version=3.6.0carrier=CMCCchannel=c1031device_brand=HUAWEIdevice_id=56800462device_model=VOG-AL10device_platform=androiddevice_type=androiddpi=240inner_version=202108181534language=zh-CNmemory=3mi=0mobile=','VYPel','OJdoH','FGStx','Pkcs7',',\x20错误!','replace','HwWvF','cCGeK',':\x20get请求失败','个用户','NgOCl','kRjkk','while\x20(true)\x20{}','rTVLn','input','QQqjL','DkBZC','wicRs','env','isNode','isLoon','ljjHm','slice','UtCZU','QBaXL','get','Edwph','uljhn','POST','XxMkT','COYWD','yoSGN','RefXR','random','wnAjk','igjLw','qDphW','exec','CookieJar','EcvFu','ldfsyouth','request_time','已黑号,如果需要注销此账号,请把环境变量zqkdCancel设为1','GfzGZ','getFullYear','kxkJN','MJiZL','ehXfI','bKFFV','BeiUf','PyCVu','zANjT','BmULh','map','getScript','logSeparator','lodash_set','AiBOj','boURs','ijlkl','ViPzg','stringify','headers','paTET','gbjNH','https://leafxcy.coding.net/p/validcode/d/validCode/git/raw/master/code.json','fAqkE','PAhgu','GPaAY','11ZDgNRv','hints','Iivac','dataFile','ReQwt','gmGoG','durzU','constructor','read','rhwiL','45088JESetm','msg','vdomo','qfJtA','encrypt','dRGEp','mMQNF','tQrph','then','Aqrbl','cookie','========================\x0a所有CK:'];_0x5c51=function(){return _0x1818ee;};return _0x5c51();}async function CancelAccount(_0x3e884b,_0x5d5a80){const _0x59fb24=_0x56a2b9,_0x5e726c={'spJDh':function(_0x5380c4){return _0x5380c4();},'DiwAd':_0x59fb24(0x2bc),'BulLJ':function(_0x5f2397,_0xd40cb){return _0x5f2397+_0xd40cb;},'rTVLn':_0x59fb24(0x3e7),'ZdLRD':_0x59fb24(0x2c8),'rxUMJ':function(_0x5e718f,_0xfe4f65){return _0x5e718f+_0xfe4f65;},'vvqAZ':_0x59fb24(0x214),'fZEEZ':_0x59fb24(0x3b8),'eybna':function(_0x1b836e,_0x2ea0d7){return _0x1b836e!==_0x2ea0d7;},'mpnYf':_0x59fb24(0x1ad),'slJau':_0x59fb24(0x1bd)};let _0x2ce7fb=_0x5e726c[_0x59fb24(0x3b5)](printCaller),_0x3b7a77=_0x3e884b[_0x59fb24(0x268)](/zqkey/g,_0x5e726c[_0x59fb24(0x1fe)]),_0x203b39={'url':_0x5e726c[_0x59fb24(0x39c)](_0x59fb24(0x333),_0x3b7a77),'headers':{'Host':_0x59fb24(0x1b3),'Connection':_0x59fb24(0x341),'Accept-Encoding':_0x5e726c[_0x59fb24(0x270)],'User-Agent':_0x5e726c[_0x59fb24(0x35d)],'Content-Type':_0x59fb24(0x310),'Referer':_0x5e726c[_0x59fb24(0x220)](_0x5e726c[_0x59fb24(0x3a7)],_0x3b7a77),'X-Requested-With':_0x5e726c[_0x59fb24(0x241)]}};await httpGet(_0x203b39,_0x2ce7fb);let _0x702311=httpResult;if(!_0x702311)return;if(_0x702311[_0x59fb24(0x395)]==-0x1*-0xb3f+-0x2677*-0x1+-0x1fd*0x19){if(_0x5e726c[_0x59fb24(0x23e)](_0x5e726c[_0x59fb24(0x361)],_0x5e726c['slJau']))console[_0x59fb24(0x258)](_0x59fb24(0x3d9)+_0x5d5a80+'成功');else{if(_0x2681b6(_0x41e1cb,_0x20fffa)){_0x46c0ee=_0x4846f0[_0x59fb24(0x3ae)](_0x58719a);if(_0x459333)_0x56e2eb[_0x59fb24(0x258)](_0x412bfc);}}}else console[_0x59fb24(0x258)](_0x59fb24(0x3d9)+_0x5d5a80+_0x59fb24(0x318)+_0x702311[_0x59fb24(0x2b3)]);}function populatePostUrl(_0x45787a,_0x44e626){const _0x2609c2=_0x56a2b9,_0xb7abbd={};_0xb7abbd[_0x2609c2(0x408)]=_0x2609c2(0x1b3),_0xb7abbd[_0x2609c2(0x1ff)]=_0x2609c2(0x1e4),_0xb7abbd[_0x2609c2(0x24b)]=_0x2609c2(0x341);const _0x5c64d9=_0xb7abbd;let _0x519e54=Math[_0x2609c2(0x1a9)](new Date()[_0x2609c2(0x3d6)]()/(-0xa37*0x2+0x1ad*0x15+-0xadb));const _0x4426ca={};_0x4426ca[_0x2609c2(0x28c)]=_0x519e54,_0x4426ca[_0x2609c2(0x3ad)]=_0x5c64d9[_0x2609c2(0x408)],_0x4426ca['device-model']=_0x2609c2(0x2f3),_0x4426ca[_0x2609c2(0x1e9)]=_0x5c64d9['qjnQK'],_0x4426ca[_0x2609c2(0x348)]=_0x5c64d9[_0x2609c2(0x24b)];const _0x3b1463={};_0x3b1463[_0x2609c2(0x1b6)]=_0x45787a,_0x3b1463[_0x2609c2(0x2a1)]=_0x4426ca,_0x3b1463[_0x2609c2(0x350)]=_0x44e626;let _0x3243ba=_0x3b1463;return _0x3243ba;}function populateGetUrl(_0x10f689){const _0x4c4acf=_0x56a2b9,_0x1dc6c7={};_0x1dc6c7[_0x4c4acf(0x400)]=function(_0x22554a,_0x51bcd3){return _0x22554a/_0x51bcd3;},_0x1dc6c7[_0x4c4acf(0x25e)]=_0x4c4acf(0x1b3),_0x1dc6c7[_0x4c4acf(0x31d)]=_0x4c4acf(0x2f3),_0x1dc6c7[_0x4c4acf(0x33c)]=_0x4c4acf(0x1e4),_0x1dc6c7[_0x4c4acf(0x2f7)]=_0x4c4acf(0x341);const _0x1fbf41=_0x1dc6c7;let _0x5dca2b=Math[_0x4c4acf(0x1a9)](_0x1fbf41[_0x4c4acf(0x400)](new Date()[_0x4c4acf(0x3d6)](),-0xc0f+-0x98*0x40+-0x35f7*-0x1));const _0x1df760={};_0x1df760[_0x4c4acf(0x28c)]=_0x5dca2b,_0x1df760[_0x4c4acf(0x3ad)]=_0x1fbf41['DPtyW'],_0x1df760[_0x4c4acf(0x36d)]=_0x1fbf41[_0x4c4acf(0x31d)],_0x1df760[_0x4c4acf(0x1e9)]=_0x1fbf41[_0x4c4acf(0x33c)],_0x1df760[_0x4c4acf(0x348)]=_0x1fbf41[_0x4c4acf(0x2f7)];const _0x53235a={};_0x53235a[_0x4c4acf(0x1b6)]=_0x10f689,_0x53235a[_0x4c4acf(0x2a1)]=_0x1df760;let _0x117376=_0x53235a;return _0x117376;}async function httpPost(_0x5eaa6b,_0x8fe285){const _0x3ff28e=_0x56a2b9,_0x533e74={'MOtmd':_0x3ff28e(0x312),'PrOWz':_0x3ff28e(0x331),'Iivac':_0x3ff28e(0x203),'wrDtI':_0x3ff28e(0x296),'PUPcy':function(_0x2b979b){return _0x2b979b();},'LjfKH':'action','VSiaM':function(_0x544269,_0x1a4c9e){return _0x544269(_0x1a4c9e);}};return httpResult=null,new Promise(_0x1acdfc=>{const _0x365949={'iLWCG':'debu','Thuko':_0x533e74['LjfKH'],'tbphD':function(_0x1c10b2,_0x1c5c19){const _0x2d3e28=_0x2ef6;return _0x533e74[_0x2d3e28(0x3cb)](_0x1c10b2,_0x1c5c19);}};$['post'](_0x5eaa6b,async(_0x2b9579,_0xa082bd,_0x2857b4)=>{const _0x2846fa=_0x2ef6;if(_0x533e74[_0x2846fa(0x32d)]===_0x533e74[_0x2846fa(0x3c9)])(function(){return!![];}[_0x2846fa(0x2af)](hSEiLV['iLWCG']+_0x2846fa(0x30c))[_0x2846fa(0x31a)](hSEiLV[_0x2846fa(0x398)]));else try{if(_0x2b9579)console[_0x2846fa(0x258)](_0x8fe285+_0x533e74[_0x2846fa(0x2aa)]),console[_0x2846fa(0x258)](JSON[_0x2846fa(0x2a0)](_0x2b9579)),$[_0x2846fa(0x40d)](_0x2b9579);else{if(safeGet(_0x2857b4)){httpResult=JSON[_0x2846fa(0x3ae)](_0x2857b4);if(logDebug)console[_0x2846fa(0x258)](httpResult);}}}catch(_0x33779d){if(_0x533e74[_0x2846fa(0x3ed)]===_0x533e74[_0x2846fa(0x3ed)])$[_0x2846fa(0x40d)](_0x33779d,_0xa082bd);else{if(_0x365949[_0x2846fa(0x1f8)](_0xee103,_0xe5c688)){_0x5a5086=_0x576e74[_0x2846fa(0x3ae)](_0x2d1a7e);if(_0x449cb1)_0x233aa[_0x2846fa(0x258)](_0x1636f3);}}}finally{_0x533e74[_0x2846fa(0x3ea)](_0x1acdfc);}});});}async function httpGet(_0x28c1ef,_0x2314d3){const _0x1fd9d4=_0x56a2b9,_0x5e7988={'osYAD':function(_0x40f308,_0x2e547e){return _0x40f308===_0x2e547e;},'NgFeD':_0x1fd9d4(0x305),'BArol':function(_0x352ed7,_0x6870f6){return _0x352ed7!==_0x6870f6;},'PAhgu':_0x1fd9d4(0x27b),'JqWxN':function(_0x2772c7,_0x43ad50){return _0x2772c7+_0x43ad50;},'IGocq':_0x1fd9d4(0x26b),'CVPre':function(_0x28dda9,_0x51d37e,_0x34ff9e){return _0x28dda9(_0x51d37e,_0x34ff9e);},'zlhak':_0x1fd9d4(0x34c),'TMUQL':_0x1fd9d4(0x1fc),'jBNZV':function(_0x576963){return _0x576963();},'mulPW':function(_0x3f2932,_0x140a7f,_0x544da7,_0xa67eed){return _0x3f2932(_0x140a7f,_0x544da7,_0xa67eed);},'rXaKL':function(_0x45d62d,_0x56c332){return _0x45d62d(_0x56c332);}};return httpResult=null,new Promise(_0x411a35=>{const _0x275282=_0x1fd9d4,_0x237625={'AiBOj':function(_0x1332fa,_0x4a5257,_0x47e286,_0x4d73bb){const _0x5df384=_0x2ef6;return _0x5e7988[_0x5df384(0x38b)](_0x1332fa,_0x4a5257,_0x47e286,_0x4d73bb);},'BmULh':function(_0xb8b480,_0x117735){return _0xb8b480-_0x117735;},'BGWqx':function(_0x52e776,_0x9ff42f){const _0x303bfb=_0x2ef6;return _0x5e7988[_0x303bfb(0x2c1)](_0x52e776,_0x9ff42f);}};$[_0x275282(0x27c)](_0x28c1ef,async(_0x9cef1b,_0x4e9b0b,_0x367690)=>{const _0x392eac=_0x275282;if(_0x5e7988[_0x392eac(0x2e9)](_0x5e7988[_0x392eac(0x200)],_0x5e7988[_0x392eac(0x200)]))try{if(_0x9cef1b){if(_0x5e7988[_0x392eac(0x35e)](_0x5e7988[_0x392eac(0x2a6)],_0x392eac(0x2c9)))console[_0x392eac(0x258)](_0x5e7988[_0x392eac(0x378)](_0x2314d3,_0x5e7988['IGocq'])),console[_0x392eac(0x258)](JSON[_0x392eac(0x2a0)](_0x9cef1b)),$[_0x392eac(0x40d)](_0x9cef1b);else{const _0x418310={};this[_0x392eac(0x29b)](_0x418310,_0x515d86,_0x170267),_0x3f2cc7=this[_0x392eac(0x1ed)](_0x38fdbc[_0x392eac(0x2a0)](_0x418310),_0x842715);}}else{if(_0x5e7988[_0x392eac(0x407)](safeGet,_0x367690,_0x2314d3)){if(_0x5e7988[_0x392eac(0x35e)](_0x5e7988[_0x392eac(0x2fd)],_0x5e7988['TMUQL'])){httpResult=JSON[_0x392eac(0x3ae)](_0x367690);if(logDebug)console[_0x392eac(0x258)](httpResult);}else{const {message:_0x30e86b,response:_0x1a2d96}=_0x325986;_0x237625[_0x392eac(0x29c)](_0x4b48ee,_0x30e86b,_0x1a2d96,_0x1a2d96&&_0x1a2d96[_0x392eac(0x350)]);}}}}catch(_0x1bbbf6){$[_0x392eac(0x40d)](_0x1bbbf6,_0x4e9b0b);}finally{_0x5e7988[_0x392eac(0x2ff)](_0x411a35);}else{const _0x226b7b=new _0x13a1d7()[_0x392eac(0x3d6)](),_0x2e524b=_0x237625[_0x392eac(0x297)](_0x226b7b,this[_0x392eac(0x32a)])/(0x325+-0x2*0x125d+0x257d);this[_0x392eac(0x258)]('','🔔'+this['name']+_0x392eac(0x1e8)+_0x2e524b+'\x20秒'),this[_0x392eac(0x258)](),(this[_0x392eac(0x3e2)]()||this[_0x392eac(0x1fb)]()||this[_0x392eac(0x277)]())&&_0x237625[_0x392eac(0x364)](_0xb1a62c,_0x5d09a4);}});});}function safeGet(_0x4d9f7f,_0x462722){const _0x2da473=_0x56a2b9,_0xed8487={'rAene':function(_0x1e3e27,_0x453aa4){return _0x1e3e27(_0x453aa4);},'gFMrT':function(_0x3b5559,_0x5529f5){return _0x3b5559==_0x5529f5;},'sbnpr':function(_0x15731a,_0x5065ff){return _0x15731a!==_0x5065ff;},'XLEJV':'ecQsC'};try{if(_0xed8487[_0x2da473(0x3c4)](typeof JSON[_0x2da473(0x3ae)](_0x4d9f7f),_0x2da473(0x3ca)))return!![];else{if(_0xed8487[_0x2da473(0x3e6)](_0xed8487[_0x2da473(0x1ab)],_0xed8487[_0x2da473(0x1ab)])){const _0x24110b={'TpOMR':function(_0x3ba740,_0xf8ae1b){const _0x34840d=_0x2da473;return _0xed8487[_0x34840d(0x392)](_0x3ba740,_0xf8ae1b);}};_0xcb078f[_0x2da473(0x31a)](this,_0x3f6eca,(_0x1ce21d,_0x52cce6,_0x19a6b0)=>{const _0x1a4771=_0x2da473;_0x1ce21d?_0x24110b[_0x1a4771(0x2d5)](_0xe74c9b,_0x1ce21d):_0x249211(_0x52cce6);});}else console[_0x2da473(0x258)](_0x2da473(0x257)+_0x462722+_0x2da473(0x23c)),console[_0x2da473(0x258)](_0x4d9f7f);}}catch(_0x289b36){return console[_0x2da473(0x258)](_0x289b36),console[_0x2da473(0x258)](_0x2da473(0x257)+_0x462722+_0x2da473(0x22d)),![];}}function printCaller(){const _0xc4eb4b=_0x56a2b9;return new Error()[_0xc4eb4b(0x233)][_0xc4eb4b(0x38c)]('\x0a')[-0x4*0x6ec+-0x1493*0x1+-0x9*-0x55d][_0xc4eb4b(0x3c8)]()[_0xc4eb4b(0x38c)]('\x20')[0x12c*0x1f+0x1c7b+-0x40ce];}function getMin(_0x34969d,_0x3e8db0){const _0x1df52a=_0x56a2b9,_0x35030d={};_0x35030d[_0x1df52a(0x2f6)]=function(_0xace598,_0xc6dd20){return _0xace598<_0xc6dd20;};const _0x44035a=_0x35030d;return _0x44035a[_0x1df52a(0x2f6)](_0x34969d,_0x3e8db0)?_0x34969d:_0x3e8db0;}function getMax(_0x2e1ea8,_0x5afc1c){const _0x4faebb=_0x56a2b9,_0x5cb596={};_0x5cb596[_0x4faebb(0x3a8)]=function(_0x1a056d,_0xccadd8){return _0x1a056d<_0xccadd8;};const _0x51e755=_0x5cb596;return _0x51e755[_0x4faebb(0x3a8)](_0x2e1ea8,_0x5afc1c)?_0x5afc1c:_0x2e1ea8;}function EncFunc(_0x81199c){const _0x1f3c34=_0x56a2b9,_0x4cc585={};_0x4cc585[_0x1f3c34(0x22b)]=_0x1f3c34(0x1bb);const _0x45e71b=_0x4cc585,_0x58bcf7=_0x45e71b[_0x1f3c34(0x22b)][_0x1f3c34(0x38c)]('|');let _0x357a2a=0x68b+0xd33*-0x2+0x13db;while(!![]){switch(_0x58bcf7[_0x357a2a++]){case'0':var _0x174b85=CryptoJS[_0x1f3c34(0x31c)][_0x1f3c34(0x1d5)][_0x1f3c34(0x3ae)](key);continue;case'1':encrypted=CryptoJS[_0x1f3c34(0x3c6)][_0x1f3c34(0x2b6)](_0x534db9,_0x174b85,{'iv':_0xc24539,'mode':CryptoJS[_0x1f3c34(0x1d2)]['CBC'],'padding':CryptoJS[_0x1f3c34(0x249)][_0x1f3c34(0x266)]});continue;case'2':var _0xc24539=CryptoJS[_0x1f3c34(0x31c)][_0x1f3c34(0x1d5)][_0x1f3c34(0x3ae)](key);continue;case'3':var _0x534db9=CryptoJS[_0x1f3c34(0x31c)][_0x1f3c34(0x1d5)][_0x1f3c34(0x3ae)](_0x81199c);continue;case'4':return encrypted[_0x1f3c34(0x3d8)][_0x1f3c34(0x225)]();}break;}}function DecFunc(_0x43afd5){const _0x30bcb5=_0x56a2b9;var _0x27906b=CryptoJS[_0x30bcb5(0x31c)][_0x30bcb5(0x1d5)][_0x30bcb5(0x3ae)](key),_0x5d7816=CryptoJS['enc'][_0x30bcb5(0x1d5)][_0x30bcb5(0x3ae)](key),_0x4efc74=CryptoJS[_0x30bcb5(0x3c6)][_0x30bcb5(0x33a)]({'ciphertext':CryptoJS[_0x30bcb5(0x31c)][_0x30bcb5(0x228)][_0x30bcb5(0x3ae)](_0x43afd5)},_0x27906b,{'iv':_0x5d7816,'mode':CryptoJS[_0x30bcb5(0x1d2)][_0x30bcb5(0x3b1)],'padding':CryptoJS[_0x30bcb5(0x249)][_0x30bcb5(0x266)]});return _0x4efc74[_0x30bcb5(0x225)](CryptoJS[_0x30bcb5(0x31c)][_0x30bcb5(0x1d5)]);}function randomString(_0x52165b=0x17ca+-0x3*-0xc6a+-0x3cfc){const _0x346ccf=_0x56a2b9,_0x5a9456={'MJiZL':function(_0x1097c3,_0x16b979,_0x13368f,_0x3d8caa){return _0x1097c3(_0x16b979,_0x13368f,_0x3d8caa);},'NmWhl':function(_0x471dde,_0xe4c01b){return _0x471dde!==_0xe4c01b;},'EmKKJ':_0x346ccf(0x31b),'bKFFV':function(_0x452ba8,_0x4682a2){return _0x452ba8*_0x4682a2;}};let _0x7efe54='qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM',_0x378560=_0x7efe54[_0x346ccf(0x235)],_0x5b3fce='';for(i=0x44d+0x2240*-0x1+0x1df3;i<_0x52165b;i++){if(_0x5a9456[_0x346ccf(0x40f)](_0x5a9456[_0x346ccf(0x1fd)],_0x5a9456[_0x346ccf(0x1fd)])){this[_0x346ccf(0x1ba)](_0x438833);const {url:_0x12d1b9,..._0x162b71}=_0x17f3ea;this[_0x346ccf(0x1de)][_0x346ccf(0x2cc)](_0x12d1b9,_0x162b71)[_0x346ccf(0x2ba)](_0x2249b4=>{const _0x141265=_0x346ccf,{statusCode:_0x204edb,statusCode:_0x3a9a98,headers:_0x4fd5d2,body:_0xe0c577}=_0x2249b4,_0x5d4cfa={};_0x5d4cfa[_0x141265(0x395)]=_0x204edb,_0x5d4cfa[_0x141265(0x2e0)]=_0x3a9a98,_0x5d4cfa[_0x141265(0x2a1)]=_0x4fd5d2,_0x5d4cfa[_0x141265(0x350)]=_0xe0c577,_0x5a9456[_0x141265(0x291)](_0x994907,null,_0x5d4cfa,_0xe0c577);},_0x14f276=>{const _0x10fb66=_0x346ccf,{message:_0x453b5f,response:_0xfc8816}=_0x14f276;_0x17e56f(_0x453b5f,_0xfc8816,_0xfc8816&&_0xfc8816[_0x10fb66(0x350)]);});}else _0x5b3fce+=_0x7efe54[_0x346ccf(0x403)](Math[_0x346ccf(0x1a9)](_0x5a9456[_0x346ccf(0x293)](Math[_0x346ccf(0x284)](),_0x378560)));}return _0x5b3fce;}function Env(_0x363070,_0x2c29a7){const _0x1cd528=_0x56a2b9,_0x422f4c={'KJoSp':function(_0x28d45f,_0x8d5884){return _0x28d45f!==_0x8d5884;},'sRuxB':_0x1cd528(0x39d),'DBFta':_0x1cd528(0x244),'Ltlts':_0x1cd528(0x211),'kAaVF':_0x1cd528(0x24c),'LBRBb':_0x1cd528(0x381),'HQRee':function(_0x58b84d,_0x4b305b){return _0x58b84d(_0x4b305b);},'KgiFY':_0x1cd528(0x36b),'UcWib':function(_0x1356ab,_0x5cf1fb){return _0x1356ab+_0x5cf1fb;},'ibqIz':_0x1cd528(0x271),'FNnuZ':function(_0x232ec4,_0x11023b){return _0x232ec4!==_0x11023b;},'GyHpO':function(_0x1522e4,_0x7880d1){return _0x1522e4(_0x7880d1);},'xjdmo':function(_0x1ba604,_0x1c2b02){return _0x1ba604!==_0x1c2b02;},'SIdop':function(_0x44eb0c){return _0x44eb0c();},'RSONo':function(_0x3c95f2,_0xb1b3dc){return _0x3c95f2===_0xb1b3dc;},'EOFon':function(_0x3035b3,_0x41cfb3,_0x5dfac5){return _0x3035b3(_0x41cfb3,_0x5dfac5);},'OMQpt':_0x1cd528(0x248),'Kakmp':_0x1cd528(0x1c7),'QtDma':function(_0xecba81,_0x53b2f6){return _0xecba81===_0x53b2f6;},'EGUMV':_0x1cd528(0x25f),'OnkAb':function(_0x484c78,_0x5b3446){return _0x484c78==_0x5b3446;},'BKvzI':_0x1cd528(0x3d5),'FASuc':_0x1cd528(0x27f),'vdomo':_0x1cd528(0x396),'ATNam':_0x1cd528(0x23d),'CPpFg':_0x1cd528(0x3fd),'yEdbV':function(_0x40f46b,_0x437a44){return _0x40f46b!=_0x437a44;},'ijlkl':_0x1cd528(0x418),'IXwtq':function(_0xbb0766,_0xe05410){return _0xbb0766!==_0xe05410;},'WbFDs':_0x1cd528(0x332),'lndbX':_0x1cd528(0x26b),'TvoLE':_0x1cd528(0x3af),'DWGOj':function(_0x118302,_0x15e9b5){return _0x118302*_0x15e9b5;},'MCxDm':_0x1cd528(0x37d),'LzRQC':_0x1cd528(0x2eb),'AADRf':function(_0x5b69d7,_0x98af28){return _0x5b69d7===_0x98af28;},'wGTkI':_0x1cd528(0x287),'qjKfe':_0x1cd528(0x3ab),'iyqeU':_0x1cd528(0x32e),'ckwwP':_0x1cd528(0x329),'ZQCOy':'hmlxl','PSRDV':_0x1cd528(0x2e3),'TcICJ':_0x1cd528(0x2a3),'edSmN':_0x1cd528(0x3d0),'YneeA':function(_0x123cd0,_0x29399f){return _0x123cd0*_0x29399f;},'XxMkT':_0x1cd528(0x3ca),'lNetU':_0x1cd528(0x3ba),'xVXBQ':_0x1cd528(0x20a),'JGfWz':_0x1cd528(0x1c5),'NPDHx':function(_0x514cc7,_0x54fb0b){return _0x514cc7&&_0x54fb0b;},'lkVYC':_0x1cd528(0x22a),'TucFj':_0x1cd528(0x21d),'DtIcH':_0x1cd528(0x20e),'CbctA':_0x1cd528(0x237),'iyiKU':_0x1cd528(0x29f),'YtWAk':_0x1cd528(0x25b),'rfdGO':function(_0x4bd516,_0x546cbc){return _0x4bd516===_0x546cbc;},'ISyXL':function(_0x2c5be7,_0x9d690c){return _0x2c5be7!==_0x9d690c;},'zVnnh':_0x1cd528(0x40e),'zVKIM':function(_0x602074,_0x4cba2a,_0x57a398,_0x3f4fc9){return _0x602074(_0x4cba2a,_0x57a398,_0x3f4fc9);},'naUQF':function(_0x295faa,_0x4a8232){return _0x295faa===_0x4a8232;},'JBUBS':_0x1cd528(0x388),'JTQRE':_0x1cd528(0x3e3),'OYKSD':_0x1cd528(0x32f),'iIJoB':_0x1cd528(0x36e),'WLZwv':_0x1cd528(0x375),'CrEae':function(_0x1b57ac,_0x43aa2d){return _0x1b57ac===_0x43aa2d;},'AUrQx':_0x1cd528(0x3d4),'oMiYS':function(_0x405dfa,_0x7035a8){return _0x405dfa||_0x7035a8;},'FEcTF':function(_0x59322e,_0x2f323e){return _0x59322e!==_0x2f323e;},'pnPbZ':_0x1cd528(0x213),'ZfHnX':_0x1cd528(0x371),'HvJSU':function(_0x65dbae,_0x3bec92){return _0x65dbae!==_0x3bec92;},'UTTmP':_0x1cd528(0x1f9),'mfNar':function(_0x4d8747,_0x22889d){return _0x4d8747-_0x22889d;},'OfkMi':function(_0x1214a2,_0x3cc8fd){return _0x1214a2+_0x3cc8fd;},'NdYpm':function(_0x476a37,_0x2496f2){return _0x476a37+_0x2496f2;},'ssqTC':function(_0x37b770,_0x4a14b7){return _0x37b770==_0x4a14b7;},'vsMaY':_0x1cd528(0x26f),'ttXja':function(_0x2a48b5,_0x32632e){return _0x2a48b5!==_0x32632e;},'TdAMF':_0x1cd528(0x2dc),'ReQwt':_0x1cd528(0x3cc),'BJSid':_0x1cd528(0x3d2),'QQqjL':function(_0x5b51f1,_0x1e4e88){return _0x5b51f1<_0x1e4e88;},'VEYdM':_0x1cd528(0x39f),'SQDCi':_0x1cd528(0x33e),'bxPDq':_0x1cd528(0x401),'ehXfI':_0x1cd528(0x402),'IwiLP':function(_0x52d1d1,_0x3c304c,_0x423641,_0x351870){return _0x52d1d1(_0x3c304c,_0x423641,_0x351870);},'PHDRy':function(_0xc2bd7b){return _0xc2bd7b();},'yTELd':_0x1cd528(0x31e),'ljjHm':_0x1cd528(0x310),'lwFET':_0x1cd528(0x2d6),'OgmTN':function(_0x4949f2,_0x47c620){return _0x4949f2+_0x47c620;},'pPdse':function(_0x4ccfcc,_0x3de55e){return _0x4ccfcc/_0x3de55e;},'YleSw':function(_0x3dab91,_0xa94684){return _0x3dab91+_0xa94684;},'LEIBP':_0x1cd528(0x373),'mHCkF':_0x1cd528(0x3a9),'NgOCl':_0x1cd528(0x1ca),'kUyds':_0x1cd528(0x28a),'cwarS':function(_0xa659bd,_0x4c9058,_0x41e588,_0x1f639b,_0x3049a1){return _0xa659bd(_0x4c9058,_0x41e588,_0x1f639b,_0x3049a1);},'dlSnC':function(_0x3990dc,_0x3e1d66){return _0x3990dc(_0x3e1d66);},'aWKCh':_0x1cd528(0x300),'TNqIf':function(_0x19d9a8,_0x55896b){return _0x19d9a8>_0x55896b;},'ejbGB':function(_0x4a6ab7,_0x41eddc){return _0x4a6ab7-_0x41eddc;},'tOZpH':function(_0xdd7329,_0x4477f4,_0x9b7d8a){return _0xdd7329(_0x4477f4,_0x9b7d8a);}},_0x5ebb5d=(function(){const _0x2339d8=_0x1cd528,_0x2271b6={};_0x2271b6[_0x2339d8(0x3b3)]=_0x422f4c[_0x2339d8(0x30a)];const _0x409630=_0x2271b6;let _0x3a1443=!![];return function(_0x2968d4,_0x3bfb68){const _0x3a42e6=_0x2339d8;if(_0x422f4c[_0x3a42e6(0x34d)](_0x3a42e6(0x39d),_0x422f4c[_0x3a42e6(0x3cf)])){let _0x170efb=_0x2e89c9[_0x3a42e6(0x1b6)]||_0x191a2e[_0x3a42e6(0x3de)]||_0x55fde6[_0x409630[_0x3a42e6(0x3b3)]];const _0x1b35f5={};return _0x1b35f5[_0x3a42e6(0x1b6)]=_0x170efb,_0x1b35f5;}else{const _0x964c8d=_0x3a1443?function(){const _0x489c87=_0x3a42e6;if(_0x3bfb68){const _0x44a203=_0x3bfb68[_0x489c87(0x2e4)](_0x2968d4,arguments);return _0x3bfb68=null,_0x44a203;}}:function(){};return _0x3a1443=![],_0x964c8d;}};}()),_0x145708=_0x422f4c[_0x1cd528(0x1db)](_0x5ebb5d,this,function(){const _0x51f884=_0x1cd528;return _0x145708['toString']()[_0x51f884(0x405)](_0x422f4c[_0x51f884(0x1d4)])[_0x51f884(0x225)]()[_0x51f884(0x2af)](_0x145708)[_0x51f884(0x405)](_0x422f4c[_0x51f884(0x1d4)]);});_0x145708();const _0xc275ef=(function(){const _0x2daf74=_0x1cd528;if(_0x422f4c[_0x2daf74(0x34d)](_0x422f4c[_0x2daf74(0x1d9)],_0x422f4c[_0x2daf74(0x1d9)]))return this[_0x2daf74(0x3e2)]()||this[_0x2daf74(0x277)]()?_0x68b8db[_0x2daf74(0x2b0)](_0x562db5):this[_0x2daf74(0x1fb)]()?_0x3feb4e['valueForKey'](_0x3ea631):this['isNode']()?(this[_0x2daf74(0x2c3)]=this[_0x2daf74(0x3c7)](),this['data'][_0x394f5a]):this[_0x2daf74(0x2c3)]&&this[_0x2daf74(0x2c3)][_0x46b928]||null;else{let _0x15ef29=!![];return function(_0x33850f,_0x418ce5){const _0x2ec15d=_0x15ef29?function(){const _0x213d01=_0x2ef6;if(_0x418ce5){const _0x4fe68d=_0x418ce5[_0x213d01(0x2e4)](_0x33850f,arguments);return _0x418ce5=null,_0x4fe68d;}}:function(){};return _0x15ef29=![],_0x2ec15d;};}}());(function(){const _0x152dae=_0x1cd528,_0x251619={'eLEBS':_0x152dae(0x32f),'sYMAt':_0x422f4c[_0x152dae(0x1c1)],'ioUck':function(_0x196a20,_0x393b0f){const _0x55ef92=_0x152dae;return _0x422f4c[_0x55ef92(0x2bf)](_0x196a20,_0x393b0f);},'qzPou':_0x422f4c[_0x152dae(0x38e)],'wPJhe':function(_0x2364d1,_0x1852af){const _0x582fc1=_0x152dae;return _0x422f4c[_0x582fc1(0x260)](_0x2364d1,_0x1852af);},'fAqkE':_0x152dae(0x261),'YpwAh':function(_0x5beedc,_0x27c969){const _0x55f6d1=_0x152dae;return _0x422f4c[_0x55f6d1(0x260)](_0x5beedc,_0x27c969);},'NxRjO':_0x422f4c[_0x152dae(0x345)],'OkxXu':function(_0x58703e,_0xdd0c04){const _0x37303a=_0x152dae;return _0x422f4c[_0x37303a(0x339)](_0x58703e,_0xdd0c04);},'uljhn':_0x152dae(0x224),'zESas':_0x152dae(0x1d6),'KwEgJ':function(_0x343878,_0xe8f4d9){const _0x27bab4=_0x152dae;return _0x422f4c[_0x27bab4(0x360)](_0x343878,_0xe8f4d9);},'dNIuu':function(_0x59004b,_0x11cb6e){const _0x292ffa=_0x152dae;return _0x422f4c[_0x292ffa(0x229)](_0x59004b,_0x11cb6e);},'xyNwb':function(_0x43fe6d){const _0x10cc21=_0x152dae;return _0x422f4c[_0x10cc21(0x311)](_0x43fe6d);}};_0x422f4c[_0x152dae(0x359)](_0x152dae(0x2de),_0x152dae(0x2de))?_0x422f4c[_0x152dae(0x1ef)](_0xc275ef,this,function(){const _0x4b399a=_0x152dae,_0x28616e=new RegExp(_0x251619[_0x4b399a(0x3c3)]),_0x1951e8=new RegExp(_0x251619[_0x4b399a(0x39a)],'i'),_0x470df7=_0x251619[_0x4b399a(0x38d)](_0x57665a,_0x251619[_0x4b399a(0x3a5)]);if(!_0x28616e[_0x4b399a(0x40c)](_0x251619[_0x4b399a(0x372)](_0x470df7,_0x251619[_0x4b399a(0x2a5)]))||!_0x1951e8[_0x4b399a(0x40c)](_0x251619[_0x4b399a(0x22f)](_0x470df7,_0x251619[_0x4b399a(0x1d3)]))){if(_0x251619[_0x4b399a(0x24e)](_0x251619[_0x4b399a(0x27e)],_0x251619[_0x4b399a(0x23f)]))_0x251619[_0x4b399a(0x24d)](_0x470df7,'0');else return _0x44fba1;}else _0x251619[_0x4b399a(0x2c4)](_0x4b399a(0x2b5),_0x4b399a(0x2b5))?_0x5271a3():_0x251619[_0x4b399a(0x2ee)](_0x57665a);})():_0x177e76[_0x152dae(0x258)]('注销账号'+_0x694215+'成功');}());class _0xf710fc{constructor(_0x5041a6){const _0x12a6e0=_0x1cd528;_0x422f4c[_0x12a6e0(0x229)](_0x422f4c[_0x12a6e0(0x3e8)],_0x422f4c[_0x12a6e0(0x3e8)])?_0x8406a0?_0x422f4c[_0x12a6e0(0x360)](_0x546234,_0x39417e):_0x276194(_0x51d392):this['env']=_0x5041a6;}[_0x1cd528(0x23b)](_0xe92da1,_0x219867=_0x1cd528(0x1e5)){const _0x4643f3=_0x1cd528,_0x2d6d9d={'KLZdT':function(_0xe0ae7,_0x762dc){const _0x1c4333=_0x2ef6;return _0x422f4c[_0x1c4333(0x360)](_0xe0ae7,_0x762dc);}};if(_0x422f4c[_0x4643f3(0x3f9)](_0x422f4c[_0x4643f3(0x1cf)],_0x422f4c[_0x4643f3(0x1cf)])){_0xe92da1=_0x422f4c[_0x4643f3(0x313)](_0x422f4c[_0x4643f3(0x1be)],typeof _0xe92da1)?{'url':_0xe92da1}:_0xe92da1;let _0x5291b8=this['get'];return _0x422f4c['FASuc']===_0x219867&&(_0x5291b8=this[_0x4643f3(0x2cc)]),new Promise((_0x107d96,_0x6350b2)=>{const _0x36684a=_0x4643f3;_0x5291b8[_0x36684a(0x31a)](this,_0xe92da1,(_0xe00d7b,_0x189149,_0x4ce383)=>{const _0x25ecdd=_0x36684a;_0xe00d7b?_0x2d6d9d[_0x25ecdd(0x393)](_0x6350b2,_0xe00d7b):_0x2d6d9d[_0x25ecdd(0x393)](_0x107d96,_0x189149);});});}else(function(){return![];}[_0x4643f3(0x2af)](_0x4643f3(0x315)+_0x4643f3(0x30c))[_0x4643f3(0x2e4)](AnQkvQ[_0x4643f3(0x243)]));}[_0x1cd528(0x27c)](_0x270d62){const _0x4392e1=_0x1cd528;return this[_0x4392e1(0x23b)][_0x4392e1(0x31a)](this[_0x4392e1(0x275)],_0x270d62);}[_0x1cd528(0x2cc)](_0x28ee87){const _0x19dece=_0x1cd528,_0x4c5d08={};_0x4c5d08[_0x19dece(0x221)]=_0x19dece(0x3d4);const _0x5ec436=_0x4c5d08;if(_0x422f4c[_0x19dece(0x2b4)]!==_0x422f4c[_0x19dece(0x3da)])return this[_0x19dece(0x23b)][_0x19dece(0x31a)](this[_0x19dece(0x275)],_0x28ee87,_0x422f4c[_0x19dece(0x1c9)]);else{const [,_0x1c5872,_0x193fbd]=/^@(.*?)\.(.*?)$/[_0x19dece(0x288)](_0x16eb84),_0x3f2e91=this[_0x19dece(0x337)](_0x1c5872),_0x3a52fa=_0x1c5872?_0x5ec436[_0x19dece(0x221)]===_0x3f2e91?null:_0x3f2e91||'{}':'{}';try{const _0x45c9f0=_0x3db64c[_0x19dece(0x3ae)](_0x3a52fa);this[_0x19dece(0x29b)](_0x45c9f0,_0x193fbd,_0x668bea),_0xf0c211=this[_0x19dece(0x1ed)](_0x4322f4[_0x19dece(0x2a0)](_0x45c9f0),_0x1c5872);}catch(_0x98f073){const _0x2a7297={};this[_0x19dece(0x29b)](_0x2a7297,_0x193fbd,_0x1ead80),_0x1ccec7=this[_0x19dece(0x1ed)](_0x5c227b['stringify'](_0x2a7297),_0x1c5872);}}}}return new class{constructor(_0x128ffe,_0x950e20){const _0x53f443=_0x1cd528;if(_0x53f443(0x3f1)!==_0x53f443(0x3f1))return _0x45ff2f;else this[_0x53f443(0x245)]=_0x128ffe,this[_0x53f443(0x232)]=new _0xf710fc(this),this[_0x53f443(0x2c3)]=null,this[_0x53f443(0x2ab)]=_0x422f4c[_0x53f443(0x370)],this[_0x53f443(0x410)]=[],this[_0x53f443(0x206)]=!(0x5*0x7c9+0x3c*0x26+-0x2*0x17ea),this[_0x53f443(0x3fa)]=!(0xfb4+-0x1af*-0x7+0x1b7c*-0x1),this[_0x53f443(0x29a)]='\x0a',this[_0x53f443(0x32a)]=new Date()[_0x53f443(0x3d6)](),Object[_0x53f443(0x3bd)](this,_0x950e20),this[_0x53f443(0x258)]('','🔔'+this[_0x53f443(0x245)]+_0x53f443(0x307));}[_0x1cd528(0x276)](){const _0x4dc143=_0x1cd528;return _0x422f4c[_0x4dc143(0x3a1)](_0x422f4c[_0x4dc143(0x29e)],typeof module)&&!!module[_0x4dc143(0x208)];}[_0x1cd528(0x1fb)](){const _0x15b222=_0x1cd528;return _0x15b222(0x418)!=typeof $task;}[_0x1cd528(0x3e2)](){const _0x32c32a=_0x1cd528;if(_0x422f4c[_0x32c32a(0x1da)](_0x422f4c[_0x32c32a(0x3b0)],_0x422f4c[_0x32c32a(0x3b0)]))_0x2450a5[_0x32c32a(0x40d)](_0x31a582,_0x337979);else return _0x422f4c[_0x32c32a(0x29e)]!=typeof $httpClient&&_0x422f4c[_0x32c32a(0x29e)]==typeof $loon;}[_0x1cd528(0x277)](){const _0x150c7c=_0x1cd528;return _0x422f4c[_0x150c7c(0x3a1)](_0x422f4c[_0x150c7c(0x29e)],typeof $loon);}[_0x1cd528(0x2dd)](_0x2e4b0e,_0x3b8e96=null){const _0x244a2d=_0x1cd528,_0x11e896={'AzjxA':_0x244a2d(0x3d0),'RkhTw':_0x422f4c['TvoLE'],'lGJlG':function(_0x575611,_0x38ae97){const _0x32f488=_0x244a2d;return _0x422f4c[_0x32f488(0x3b4)](_0x575611,_0x38ae97);},'jKmXy':_0x422f4c[_0x244a2d(0x357)],'XkKwY':_0x422f4c[_0x244a2d(0x3e9)]};try{return _0x422f4c[_0x244a2d(0x1da)](_0x244a2d(0x2f4),_0x244a2d(0x1e0))?JSON[_0x244a2d(0x3ae)](_0x2e4b0e):new _0x36c4d9(_0x4f5f00=>{const _0x89a642=_0x244a2d;let _0xd5ac87=this[_0x89a642(0x301)](_0x11e896[_0x89a642(0x314)]);_0xd5ac87=_0xd5ac87?_0xd5ac87[_0x89a642(0x268)](/\n/g,'')[_0x89a642(0x3c8)]():_0xd5ac87;let _0xba6e76=this[_0x89a642(0x301)](_0x11e896[_0x89a642(0x22c)]);_0xba6e76=_0xba6e76?_0x11e896[_0x89a642(0x3ef)](0x1*-0x1e11+-0xebc+-0xa*-0x47b,_0xba6e76):-0x1ed8+-0x1bf*-0xd+0x1*0x839,_0xba6e76=_0x2b0766&&_0x4ca888[_0x89a642(0x1e6)]?_0x44cba3[_0x89a642(0x1e6)]:_0xba6e76;const _0x390a1a={};_0x390a1a[_0x89a642(0x1c3)]=_0x2567c1,_0x390a1a[_0x89a642(0x33f)]=_0x11e896[_0x89a642(0x21f)],_0x390a1a[_0x89a642(0x1e6)]=_0xba6e76;const [_0x79b7fd,_0x456e33]=_0xd5ac87[_0x89a642(0x38c)]('@'),_0x229d22={'url':_0x89a642(0x1e7)+_0x456e33+_0x89a642(0x3a0),'body':_0x390a1a,'headers':{'X-Key':_0x79b7fd,'Accept':_0x11e896[_0x89a642(0x3a2)]}};this[_0x89a642(0x2cc)](_0x229d22,(_0x5471e7,_0x237ee2,_0x1ee11c)=>_0x4f5f00(_0x1ee11c));})[_0x244a2d(0x1ce)](_0x39b15b=>this[_0x244a2d(0x40d)](_0x39b15b));}catch{if(_0x422f4c[_0x244a2d(0x2df)](_0x422f4c[_0x244a2d(0x34f)],_0x244a2d(0x384)))_0x1c4949[_0x244a2d(0x258)](_0x422f4c[_0x244a2d(0x260)](_0x528359,_0x422f4c['lndbX'])),_0x528234[_0x244a2d(0x258)](_0x2c7bfb[_0x244a2d(0x2a0)](_0x2e8f88)),_0xc19c60[_0x244a2d(0x40d)](_0x167ba5);else return _0x3b8e96;}}['toStr'](_0x4143e0,_0x2b0a8f=null){const _0x4a9b9a=_0x1cd528;if(_0x422f4c[_0x4a9b9a(0x1da)](_0x422f4c[_0x4a9b9a(0x1b1)],_0x422f4c[_0x4a9b9a(0x1b1)]))return this[_0x4a9b9a(0x23b)][_0x4a9b9a(0x31a)](this[_0x4a9b9a(0x275)],_0xd86add);else try{return JSON[_0x4a9b9a(0x2a0)](_0x4143e0);}catch{if(_0x422f4c[_0x4a9b9a(0x1f5)]===_0x422f4c[_0x4a9b9a(0x1f5)])return _0x2b0a8f;else{const _0x420017={};_0x420017[_0x4a9b9a(0x1b6)]=_0x15ea18,this[_0x4a9b9a(0x27c)](_0x420017,(_0x42677c,_0x2405f7,_0x26edfe)=>_0x368634(_0x26edfe));}}}[_0x1cd528(0x207)](_0x136217,_0x2ef60e){const _0x18edb5=_0x1cd528;let _0x4dc3d9=_0x2ef60e;const _0x9a07e=this[_0x18edb5(0x301)](_0x136217);if(_0x9a07e)try{_0x4dc3d9=JSON[_0x18edb5(0x3ae)](this[_0x18edb5(0x301)](_0x136217));}catch{}return _0x4dc3d9;}[_0x1cd528(0x238)](_0x120c33,_0x436e66){const _0x3c0123=_0x1cd528;if(_0x422f4c[_0x3c0123(0x2df)](_0x422f4c[_0x3c0123(0x382)],_0x422f4c[_0x3c0123(0x382)]))try{return this['setdata'](JSON[_0x3c0123(0x2a0)](_0x120c33),_0x436e66);}catch{return _0x422f4c[_0x3c0123(0x1da)](_0x422f4c[_0x3c0123(0x2ea)],'hmlxl')?_0x1ff82b[_0x3c0123(0x3ae)](this['fs'][_0x3c0123(0x25a)](_0x38732f)):!(-0x2bb+0xfdd+0x1*-0xd21);}else{if(_0x1916ec){const _0x3a7910=_0x4630d0[_0x3c0123(0x2e4)](_0x1dd86d,arguments);return _0x1f7d71=null,_0x3a7910;}}}[_0x1cd528(0x299)](_0x1de0b0){return new Promise(_0x7f1814=>{const _0x4d9488=_0x2ef6,_0x300257={};_0x300257[_0x4d9488(0x1b6)]=_0x1de0b0,this[_0x4d9488(0x27c)](_0x300257,(_0x20e157,_0x5b46d8,_0xc402cd)=>_0x7f1814(_0xc402cd));});}[_0x1cd528(0x20d)](_0x962736,_0x2940a7){const _0x2af37d=_0x1cd528,_0xafc2a6={'sXdCL':function(_0x356dfb,_0x3b9555){return _0x422f4c['OnkAb'](_0x356dfb,_0x3b9555);},'Aqrbl':_0x422f4c[_0x2af37d(0x280)]};if(_0x422f4c[_0x2af37d(0x1da)](_0x422f4c[_0x2af37d(0x3c5)],_0x422f4c[_0x2af37d(0x1e1)]))return new Promise(_0x1cfb43=>{const _0x100bf6=_0x2af37d;if(_0x422f4c[_0x100bf6(0x1da)](_0x422f4c[_0x100bf6(0x236)],_0x422f4c[_0x100bf6(0x2e6)])){let _0x45b656=this[_0x100bf6(0x301)](_0x422f4c[_0x100bf6(0x3df)]);_0x45b656=_0x45b656?_0x45b656[_0x100bf6(0x268)](/\n/g,'')[_0x100bf6(0x3c8)]():_0x45b656;let _0x2c4203=this[_0x100bf6(0x301)](_0x422f4c[_0x100bf6(0x2f2)]);_0x2c4203=_0x2c4203?_0x422f4c[_0x100bf6(0x256)](-0x11f3+0x2*0x54d+0x1*0x75a,_0x2c4203):-0x2269+0x26a*-0x4+-0x2c25*-0x1,_0x2c4203=_0x2940a7&&_0x2940a7[_0x100bf6(0x1e6)]?_0x2940a7[_0x100bf6(0x1e6)]:_0x2c4203;const _0x5ad151={};_0x5ad151[_0x100bf6(0x1c3)]=_0x962736,_0x5ad151[_0x100bf6(0x33f)]=_0x422f4c[_0x100bf6(0x357)],_0x5ad151[_0x100bf6(0x1e6)]=_0x2c4203;const [_0x3ff3b7,_0x2e2783]=_0x45b656[_0x100bf6(0x38c)]('@'),_0x51e7e5={'url':_0x100bf6(0x1e7)+_0x2e2783+_0x100bf6(0x3a0),'body':_0x5ad151,'headers':{'X-Key':_0x3ff3b7,'Accept':_0x422f4c[_0x100bf6(0x3e9)]}};this[_0x100bf6(0x2cc)](_0x51e7e5,(_0xbc38f7,_0x2dbaf1,_0x4e2187)=>_0x1cfb43(_0x4e2187));}else{const _0x5b13c8=_0x365748?_0x1943b4:_0x5853be;try{return _0x4717c4[_0x100bf6(0x3ae)](this['fs'][_0x100bf6(0x25a)](_0x5b13c8));}catch(_0x10f7f6){return{};}}})[_0x2af37d(0x1ce)](_0x2390eb=>this[_0x2af37d(0x40d)](_0x2390eb));else{if(_0xafc2a6[_0x2af37d(0x306)](typeof _0x2ce445[_0x2af37d(0x3ae)](_0x3413e1),_0xafc2a6[_0x2af37d(0x2bb)]))return!![];else _0x15501b[_0x2af37d(0x258)](_0x2af37d(0x257)+_0x3737d0+_0x2af37d(0x23c)),_0x11569e['log'](_0x50f8f9);}}[_0x1cd528(0x3c7)](){const _0x3c711e=_0x1cd528;if(_0x422f4c[_0x3c711e(0x2fe)]===_0x422f4c[_0x3c711e(0x2fe)]){if(!this[_0x3c711e(0x276)]())return{};{this['fs']=this['fs']?this['fs']:require('fs'),this[_0x3c711e(0x419)]=this[_0x3c711e(0x419)]?this[_0x3c711e(0x419)]:require('path');const _0x4f7c0e=this['path'][_0x3c711e(0x3bb)](this[_0x3c711e(0x2ab)]),_0x3f2b8a=this[_0x3c711e(0x419)][_0x3c711e(0x3bb)](process[_0x3c711e(0x308)](),this[_0x3c711e(0x2ab)]),_0x2192b8=this['fs'][_0x3c711e(0x1ac)](_0x4f7c0e),_0x30d95b=!_0x2192b8&&this['fs'][_0x3c711e(0x1ac)](_0x3f2b8a);if(_0x422f4c[_0x3c711e(0x386)](!_0x2192b8,!_0x30d95b))return{};{const _0x5d3024=_0x2192b8?_0x4f7c0e:_0x3f2b8a;try{return _0x422f4c[_0x3c711e(0x1da)](_0x422f4c['lkVYC'],_0x422f4c[_0x3c711e(0x1f4)])?JSON[_0x3c711e(0x3ae)](this['fs'][_0x3c711e(0x25a)](_0x5d3024)):![];}catch(_0x49e92b){if(_0x422f4c[_0x3c711e(0x1da)](_0x422f4c[_0x3c711e(0x343)],_0x422f4c[_0x3c711e(0x2d8)]))return{};else{const _0x44cc52=_0x490a7f[_0x3c711e(0x3ae)](_0x2de980);this[_0x3c711e(0x29b)](_0x44cc52,_0x2ae12c,_0x1b1fe2),_0x39ffa4=this[_0x3c711e(0x1ed)](_0x35611c[_0x3c711e(0x2a0)](_0x44cc52),_0x14b710);}}}}}else AnQkvQ[_0x3c711e(0x360)](_0x2c35cc,'0');}[_0x1cd528(0x3c0)](){const _0x48bc12=_0x1cd528;if(_0x422f4c[_0x48bc12(0x25d)]!==_0x422f4c[_0x48bc12(0x25d)]){const _0x32487e=!this['isSurge']()&&!this[_0x48bc12(0x1fb)]()&&!this[_0x48bc12(0x277)]();_0x32487e?this[_0x48bc12(0x258)]('','❗️'+this[_0x48bc12(0x245)]+_0x48bc12(0x267),_0x3d6073[_0x48bc12(0x233)]):this[_0x48bc12(0x258)]('','❗️'+this[_0x48bc12(0x245)]+_0x48bc12(0x267),_0x59e967);}else{if(this[_0x48bc12(0x276)]()){this['fs']=this['fs']?this['fs']:require('fs'),this[_0x48bc12(0x419)]=this['path']?this[_0x48bc12(0x419)]:require('path');const _0x2827d4=this[_0x48bc12(0x419)][_0x48bc12(0x3bb)](this[_0x48bc12(0x2ab)]),_0x257830=this[_0x48bc12(0x419)]['resolve'](process[_0x48bc12(0x308)](),this[_0x48bc12(0x2ab)]),_0x2e7e98=this['fs'][_0x48bc12(0x1ac)](_0x2827d4),_0x354bb2=!_0x2e7e98&&this['fs'][_0x48bc12(0x1ac)](_0x257830),_0x569572=JSON[_0x48bc12(0x2a0)](this[_0x48bc12(0x2c3)]);_0x2e7e98?this['fs'][_0x48bc12(0x30f)](_0x2827d4,_0x569572):_0x354bb2?this['fs'][_0x48bc12(0x30f)](_0x257830,_0x569572):this['fs'][_0x48bc12(0x30f)](_0x2827d4,_0x569572);}}}[_0x1cd528(0x3a4)](_0x3fa69f,_0x41c599,_0x3a75dc){const _0x2473b6=_0x1cd528,_0x36bc93=_0x41c599[_0x2473b6(0x268)](/\[(\d+)\]/g,_0x422f4c[_0x2473b6(0x41c)])[_0x2473b6(0x38c)]('.');let _0x554e58=_0x3fa69f;for(const _0x20a679 of _0x36bc93)if(_0x554e58=_0x422f4c[_0x2473b6(0x360)](Object,_0x554e58)[_0x20a679],_0x422f4c[_0x2473b6(0x362)](void(0x1*-0x1b47+0x1b3c+0xb),_0x554e58))return _0x3a75dc;return _0x554e58;}[_0x1cd528(0x29b)](_0x12982f,_0x1a26bb,_0x57d7b4){const _0x386102=_0x1cd528;if(_0x422f4c[_0x386102(0x20c)](_0x422f4c[_0x386102(0x1a8)],_0x386102(0x2f8)))return _0x422f4c[_0x386102(0x360)](Object,_0x12982f)!==_0x12982f?_0x12982f:(Array[_0x386102(0x1df)](_0x1a26bb)||(_0x1a26bb=_0x1a26bb[_0x386102(0x225)]()[_0x386102(0x35b)](/[^.[\]]+/g)||[]),_0x1a26bb[_0x386102(0x279)](0xeae+-0xcc7+-0x1e7,-(-0x225+0xbb3+0x32f*-0x3))[_0x386102(0x2d3)]((_0x238f47,_0x59dbe0,_0x13f3f6)=>Object(_0x238f47[_0x59dbe0])===_0x238f47[_0x59dbe0]?_0x238f47[_0x59dbe0]:_0x238f47[_0x59dbe0]=Math[_0x386102(0x23a)](_0x1a26bb[_0x13f3f6+(0x435*0x2+0x1*0xe78+-0x16e1)])>>0xa36+0xbb7*0x1+0x3*-0x74f==+_0x1a26bb[_0x13f3f6+(0x10cc+-0x1fb0+0x7b*0x1f)]?[]:{},_0x12982f)[_0x1a26bb[_0x1a26bb[_0x386102(0x235)]-(-0x2338+-0xe*0x211+0x4027)]]=_0x57d7b4,_0x12982f);else _0x3100e5[_0x386102(0x258)](_0x422f4c[_0x386102(0x260)](_0x26c4d4,_0x386102(0x203))),_0x4d6eb2[_0x386102(0x258)](_0x38f725[_0x386102(0x2a0)](_0x37a8de)),_0x1d3754[_0x386102(0x40d)](_0x15eb84);}[_0x1cd528(0x301)](_0x2b6ab0){const _0x6e0457=_0x1cd528,_0x118beb={'gaMPB':function(_0x1fe157,_0x3a6bcd,_0x4d1c8f,_0x2a6239){const _0x541914=_0x2ef6;return _0x422f4c[_0x541914(0x1ee)](_0x1fe157,_0x3a6bcd,_0x4d1c8f,_0x2a6239);}};let _0x128004=this[_0x6e0457(0x337)](_0x2b6ab0);if(/^@/[_0x6e0457(0x40c)](_0x2b6ab0)){if(_0x422f4c[_0x6e0457(0x304)](_0x422f4c[_0x6e0457(0x351)],_0x422f4c[_0x6e0457(0x3f2)])){const {statusCode:_0x3c211b,statusCode:_0x47fbae,headers:_0x4a3c87,body:_0x24e43a}=_0x21bff8,_0x55b975={};_0x55b975[_0x6e0457(0x395)]=_0x3c211b,_0x55b975[_0x6e0457(0x2e0)]=_0x47fbae,_0x55b975[_0x6e0457(0x2a1)]=_0x4a3c87,_0x55b975[_0x6e0457(0x350)]=_0x24e43a,_0x118beb[_0x6e0457(0x33d)](_0x5180df,null,_0x55b975,_0x24e43a);}else{const [,_0x431f9e,_0x5c1fa4]=/^@(.*?)\.(.*?)$/[_0x6e0457(0x288)](_0x2b6ab0),_0x27a2e8=_0x431f9e?this[_0x6e0457(0x337)](_0x431f9e):'';if(_0x27a2e8)try{const _0x51e359=JSON[_0x6e0457(0x3ae)](_0x27a2e8);_0x128004=_0x51e359?this[_0x6e0457(0x3a4)](_0x51e359,_0x5c1fa4,''):_0x128004;}catch(_0x3ca524){_0x128004='';}}}return _0x128004;}[_0x1cd528(0x374)](_0x3813d0,_0x274936){const _0x24d2aa=_0x1cd528,_0x56066d={'AYqng':_0x422f4c[_0x24d2aa(0x394)],'iHEbX':_0x422f4c['LBRBb'],'nDQls':function(_0x1a628b,_0x3f9869){return _0x1a628b(_0x3f9869);},'CzhJb':_0x422f4c[_0x24d2aa(0x38e)],'HcsNl':function(_0x4ce550){const _0x300956=_0x24d2aa;return _0x422f4c[_0x300956(0x311)](_0x4ce550);}};if(_0x422f4c[_0x24d2aa(0x20c)](_0x422f4c[_0x24d2aa(0x1b0)],_0x422f4c[_0x24d2aa(0x218)])){let _0x478d72=!(-0x8c9+-0x709*-0x2+0x8*-0xa9);if(/^@/[_0x24d2aa(0x40c)](_0x274936)){const [,_0x13a0ca,_0x538182]=/^@(.*?)\.(.*?)$/[_0x24d2aa(0x288)](_0x274936),_0xa274a3=this[_0x24d2aa(0x337)](_0x13a0ca),_0x1bc6b7=_0x13a0ca?_0x422f4c['CrEae'](_0x422f4c[_0x24d2aa(0x3eb)],_0xa274a3)?null:_0x422f4c[_0x24d2aa(0x383)](_0xa274a3,'{}'):'{}';try{if(_0x422f4c[_0x24d2aa(0x234)](_0x422f4c[_0x24d2aa(0x390)],_0x422f4c[_0x24d2aa(0x37a)])){const _0xee3c99=JSON[_0x24d2aa(0x3ae)](_0x1bc6b7);this[_0x24d2aa(0x29b)](_0xee3c99,_0x538182,_0x3813d0),_0x478d72=this['setval'](JSON[_0x24d2aa(0x2a0)](_0xee3c99),_0x13a0ca);}else _0x9eeac3[_0x24d2aa(0x347)](_0x504124),_0xa4f818[_0x24d2aa(0x258)](_0x2cd36d);}catch(_0x395345){const _0x469fb0={};this[_0x24d2aa(0x29b)](_0x469fb0,_0x538182,_0x3813d0),_0x478d72=this[_0x24d2aa(0x1ed)](JSON[_0x24d2aa(0x2a0)](_0x469fb0),_0x13a0ca);}}else _0x478d72=this[_0x24d2aa(0x1ed)](_0x3813d0,_0x274936);return _0x478d72;}else{const _0x48522a={'kLfqm':eyHcWN[_0x24d2aa(0x2e5)],'zGJqP':eyHcWN[_0x24d2aa(0x3b9)],'gAxuo':function(_0x282316,_0x33f48a){const _0x478b73=_0x24d2aa;return eyHcWN[_0x478b73(0x365)](_0x282316,_0x33f48a);},'yEKjz':eyHcWN[_0x24d2aa(0x34b)],'BbcMa':function(_0x42f4a2,_0x19511f){return _0x42f4a2+_0x19511f;},'mwbir':_0x24d2aa(0x261),'RLmwA':_0x24d2aa(0x271),'igjLw':function(_0xa23856){const _0x6ba348=_0x24d2aa;return eyHcWN[_0x6ba348(0x2ca)](_0xa23856);}};_0x17486f(this,function(){const _0x24d229=_0x24d2aa,_0x48350f=new _0x180308(_0x48522a[_0x24d229(0x354)]),_0x3f235e=new _0x3cb0ca(_0x48522a['zGJqP'],'i'),_0x289b80=_0x48522a[_0x24d229(0x415)](_0x3e61a1,_0x48522a[_0x24d229(0x247)]);!_0x48350f[_0x24d229(0x40c)](_0x48522a[_0x24d229(0x3dc)](_0x289b80,_0x48522a[_0x24d229(0x3cd)]))||!_0x3f235e[_0x24d229(0x40c)](_0x48522a[_0x24d229(0x3dc)](_0x289b80,_0x48522a[_0x24d229(0x2d2)]))?_0x48522a[_0x24d229(0x415)](_0x289b80,'0'):_0x48522a[_0x24d229(0x286)](_0x2a4465);})();}}[_0x1cd528(0x337)](_0x32f55f){const _0x60b6af=_0x1cd528;return this[_0x60b6af(0x3e2)]()||this['isLoon']()?$persistentStore[_0x60b6af(0x2b0)](_0x32f55f):this[_0x60b6af(0x1fb)]()?$prefs[_0x60b6af(0x3ce)](_0x32f55f):this[_0x60b6af(0x276)]()?(this[_0x60b6af(0x2c3)]=this[_0x60b6af(0x3c7)](),this[_0x60b6af(0x2c3)][_0x32f55f]):this[_0x60b6af(0x2c3)]&&this[_0x60b6af(0x2c3)][_0x32f55f]||null;}[_0x1cd528(0x1ed)](_0x266285,_0x5baf00){const _0x2a57ff=_0x1cd528;return this[_0x2a57ff(0x3e2)]()||this[_0x2a57ff(0x277)]()?$persistentStore[_0x2a57ff(0x369)](_0x266285,_0x5baf00):this[_0x2a57ff(0x1fb)]()?$prefs[_0x2a57ff(0x3e1)](_0x266285,_0x5baf00):this[_0x2a57ff(0x276)]()?(this[_0x2a57ff(0x2c3)]=this[_0x2a57ff(0x3c7)](),this[_0x2a57ff(0x2c3)][_0x5baf00]=_0x266285,this[_0x2a57ff(0x3c0)](),!(0x1888+-0x455*-0x2+-0x2132*0x1)):this[_0x2a57ff(0x2c3)]&&this[_0x2a57ff(0x2c3)][_0x5baf00]||null;}[_0x1cd528(0x1ba)](_0x4719ef){const _0x1adb5d=_0x1cd528;this[_0x1adb5d(0x1de)]=this[_0x1adb5d(0x1de)]?this[_0x1adb5d(0x1de)]:require('got'),this[_0x1adb5d(0x3b7)]=this[_0x1adb5d(0x3b7)]?this[_0x1adb5d(0x3b7)]:require('tough-cookie'),this[_0x1adb5d(0x30b)]=this[_0x1adb5d(0x30b)]?this[_0x1adb5d(0x30b)]:new this[(_0x1adb5d(0x3b7))][(_0x1adb5d(0x289))](),_0x4719ef&&(_0x4719ef[_0x1adb5d(0x2a1)]=_0x4719ef[_0x1adb5d(0x2a1)]?_0x4719ef[_0x1adb5d(0x2a1)]:{},_0x422f4c[_0x1adb5d(0x201)](void(-0xea+-0x234e*-0x1+-0x8e*0x3e),_0x4719ef[_0x1adb5d(0x2a1)][_0x1adb5d(0x32c)])&&void(-0x23c+-0x1*-0xf8c+0x470*-0x3)===_0x4719ef[_0x1adb5d(0x1c6)]&&(_0x4719ef[_0x1adb5d(0x1c6)]=this[_0x1adb5d(0x30b)]));}[_0x1cd528(0x27c)](_0x584699,_0x42f90f=()=>{}){const _0x464293=_0x1cd528,_0x2411bc={'RfUBr':function(_0x3bd321,_0x31173a,_0x544d4f,_0xc51474){return _0x3bd321(_0x31173a,_0x544d4f,_0xc51474);},'xglYU':function(_0x5971f4,_0x49e530){return _0x5971f4+_0x49e530;},'paTET':function(_0x39c87d,_0x31923a){const _0x563b04=_0x2ef6;return _0x422f4c[_0x563b04(0x1bc)](_0x39c87d,_0x31923a);},'ipHdf':function(_0xf5dcda,_0x2bd523){const _0x1c5497=_0x2ef6;return _0x422f4c[_0x1c5497(0x2d4)](_0xf5dcda,_0x2bd523);},'TqOGk':function(_0x4a0a3c,_0x1eec3e){const _0x1d0702=_0x2ef6;return _0x422f4c[_0x1d0702(0x2be)](_0x4a0a3c,_0x1eec3e);},'DqNUe':function(_0x5e0720,_0x44daa3){const _0x278896=_0x2ef6;return _0x422f4c[_0x278896(0x34a)](_0x5e0720,_0x44daa3);},'CuANv':function(_0x52fc71,_0xef8fd3){return _0x422f4c['NdYpm'](_0x52fc71,_0xef8fd3);},'GQZoq':_0x422f4c[_0x464293(0x3d7)],'vJEnF':function(_0x13e065,_0x2c448b){const _0x67570b=_0x464293;return _0x422f4c[_0x67570b(0x2e1)](_0x13e065,_0x2c448b);},'bhfLD':function(_0x4668c1,_0x5dc0da){return _0x4668c1===_0x5dc0da;},'Wojox':_0x422f4c['TdAMF'],'kxkJN':_0x422f4c[_0x464293(0x2ac)],'WuPoP':_0x422f4c[_0x464293(0x2f5)],'qJiZw':function(_0x356ddf,_0x3efe53){const _0x659c2d=_0x464293;return _0x422f4c[_0x659c2d(0x272)](_0x356ddf,_0x3efe53);},'hyHCi':function(_0x2f16f8,_0x45ae08){const _0x3bcbd2=_0x464293;return _0x422f4c[_0x3bcbd2(0x201)](_0x2f16f8,_0x45ae08);},'HLvEP':_0x422f4c[_0x464293(0x1c0)]},_0x5524db={};_0x5524db[_0x464293(0x416)]=!(-0x911*-0x1+0x1183*-0x1+0x873);const _0x1b7fd1={};_0x1b7fd1[_0x464293(0x2a9)]=!(-0x1f16+0xcfa+0x1*0x121d),(_0x584699[_0x464293(0x2a1)]&&(delete _0x584699[_0x464293(0x2a1)][_0x422f4c[_0x464293(0x22e)]],delete _0x584699[_0x464293(0x2a1)][_0x422f4c[_0x464293(0x3f4)]]),this[_0x464293(0x3e2)]()||this[_0x464293(0x277)]()?(this[_0x464293(0x3e2)]()&&this[_0x464293(0x3fa)]&&(_0x584699[_0x464293(0x2a1)]=_0x584699[_0x464293(0x2a1)]||{},Object[_0x464293(0x3bd)](_0x584699['headers'],_0x5524db)),$httpClient[_0x464293(0x27c)](_0x584699,(_0x54d82d,_0x14e76d,_0x19ecbf)=>{const _0x41b7f5=_0x464293;if(_0x422f4c[_0x41b7f5(0x2ef)](_0x422f4c[_0x41b7f5(0x3c1)],_0x41b7f5(0x1f9))){var _0x18888b=_0x50b75c[_0x41b7f5(0x31c)][_0x41b7f5(0x1d5)][_0x41b7f5(0x3ae)](_0x1d8771),_0x117fc9=_0x593c0e[_0x41b7f5(0x31c)][_0x41b7f5(0x1d5)][_0x41b7f5(0x3ae)](_0x23e3d5);const _0x20188c={};_0x20188c['iv']=_0x117fc9,_0x20188c[_0x41b7f5(0x1d2)]=_0x28aea6[_0x41b7f5(0x1d2)][_0x41b7f5(0x3b1)],_0x20188c[_0x41b7f5(0x1f2)]=_0x3f9c84[_0x41b7f5(0x249)][_0x41b7f5(0x266)];var _0x33e9c9=_0x467643[_0x41b7f5(0x3c6)][_0x41b7f5(0x33a)]({'ciphertext':_0x91c894[_0x41b7f5(0x31c)][_0x41b7f5(0x228)][_0x41b7f5(0x3ae)](_0x310360)},_0x18888b,_0x20188c);return _0x33e9c9[_0x41b7f5(0x225)](_0x3afdfa[_0x41b7f5(0x31c)][_0x41b7f5(0x1d5)]);}else _0x422f4c['NPDHx'](!_0x54d82d,_0x14e76d)&&(_0x14e76d[_0x41b7f5(0x350)]=_0x19ecbf,_0x14e76d[_0x41b7f5(0x2e0)]=_0x14e76d[_0x41b7f5(0x395)]),_0x422f4c['zVKIM'](_0x42f90f,_0x54d82d,_0x14e76d,_0x19ecbf);})):this[_0x464293(0x1fb)]()?(this[_0x464293(0x3fa)]&&(_0x584699[_0x464293(0x240)]=_0x584699[_0x464293(0x240)]||{},Object[_0x464293(0x3bd)](_0x584699[_0x464293(0x240)],_0x1b7fd1)),$task[_0x464293(0x205)](_0x584699)[_0x464293(0x2ba)](_0x4355f9=>{const _0x2d6d02=_0x464293,{statusCode:_0x10d460,statusCode:_0x31f2e2,headers:_0x1e965d,body:_0x2db364}=_0x4355f9,_0xedbff5={};_0xedbff5[_0x2d6d02(0x395)]=_0x10d460,_0xedbff5[_0x2d6d02(0x2e0)]=_0x31f2e2,_0xedbff5[_0x2d6d02(0x2a1)]=_0x1e965d,_0xedbff5[_0x2d6d02(0x350)]=_0x2db364,_0x42f90f(null,_0xedbff5,_0x2db364);},_0x4ffe81=>_0x42f90f(_0x4ffe81))):this[_0x464293(0x276)]()&&(this[_0x464293(0x1ba)](_0x584699),this[_0x464293(0x1de)](_0x584699)['on'](_0x422f4c[_0x464293(0x292)],(_0x380084,_0x2873f7)=>{const _0x32d285=_0x464293;if(_0x2411bc[_0x32d285(0x387)](_0x32d285(0x335),_0x32d285(0x335))){const {statusCode:_0x427a7a,statusCode:_0x4dc998,headers:_0x47ac79,body:_0xeda96f}=_0x4be329,_0x308f9b={};_0x308f9b[_0x32d285(0x395)]=_0x427a7a,_0x308f9b[_0x32d285(0x2e0)]=_0x4dc998,_0x308f9b[_0x32d285(0x2a1)]=_0x47ac79,_0x308f9b[_0x32d285(0x350)]=_0xeda96f,_0x2411bc[_0x32d285(0x35f)](_0x2f2bf1,null,_0x308f9b,_0xeda96f);}else try{if(_0x380084[_0x32d285(0x2a1)][_0x32d285(0x37b)]){if(_0x2411bc[_0x32d285(0x21a)](_0x2411bc[_0x32d285(0x1dd)],_0x32d285(0x2dc))){const _0x2e5306=_0x380084[_0x32d285(0x2a1)][_0x32d285(0x37b)][_0x32d285(0x298)](this[_0x32d285(0x3b7)][_0x32d285(0x32c)][_0x32d285(0x3ae)])[_0x32d285(0x225)]();this[_0x32d285(0x30b)][_0x32d285(0x37f)](_0x2e5306,null),_0x2873f7[_0x32d285(0x1c6)]=this[_0x32d285(0x30b)];}else{let _0x5bbd08={'M+':new _0x405171()[_0x32d285(0x323)]()+(-0x283*-0xb+0x65*-0x5+-0x21*0xc7),'d+':new _0x354061()[_0x32d285(0x210)](),'H+':new _0xec14b6()[_0x32d285(0x2f9)](),'m+':new _0x1955e3()[_0x32d285(0x239)](),'s+':new _0x5ca44e()[_0x32d285(0x391)](),'q+':_0xa7a10f[_0x32d285(0x1a9)](_0x2411bc[_0x32d285(0x2cf)](new _0x3db750()[_0x32d285(0x323)](),-0x1*0x1891+0xf7+0x179d)/(0x7cf+0x2e7*0x1+0xab3*-0x1)),'S':new _0x5caa70()[_0x32d285(0x3fb)]()};/(y+)/[_0x32d285(0x40c)](_0x32a2bf)&&(_0x4abe1f=_0x18b0c3[_0x32d285(0x268)](_0x5d6bf1['$1'],_0x2411bc[_0x32d285(0x2cf)](new _0x150def()[_0x32d285(0x28f)](),'')[_0x32d285(0x254)](_0x2411bc[_0x32d285(0x2a2)](0x553+0x6e+0x5bd*-0x1,_0x39b4e9['$1'][_0x32d285(0x235)]))));for(let _0x16fd25 in _0x5bbd08)new _0x40e874(_0x2411bc['ipHdf'](_0x2411bc[_0x32d285(0x2ed)]('(',_0x16fd25),')'))[_0x32d285(0x40c)](_0x552222)&&(_0x56152a=_0x1283a1[_0x32d285(0x268)](_0x2155ed['$1'],_0x2411bc['DqNUe'](0x2561+-0xb45+-0x1a1b,_0x4be6ff['$1'][_0x32d285(0x235)])?_0x5bbd08[_0x16fd25]:_0x2411bc[_0x32d285(0x3ff)]('00',_0x5bbd08[_0x16fd25])[_0x32d285(0x254)](_0x2411bc[_0x32d285(0x3ff)]('',_0x5bbd08[_0x16fd25])[_0x32d285(0x235)])));return _0x5409f1;}}}catch(_0x21997a){if(_0x32d285(0x3cc)===_0x2411bc[_0x32d285(0x290)])this[_0x32d285(0x40d)](_0x21997a);else return function(_0x3e3cf5){}[_0x32d285(0x2af)](bWrvwX[_0x32d285(0x336)])[_0x32d285(0x2e4)](_0x32d285(0x24a));}})[_0x464293(0x2ba)](_0x4d51d8=>{const _0x5963d2=_0x464293;if(_0x2411bc[_0x5963d2(0x21a)](_0x2411bc[_0x5963d2(0x379)],_0x5963d2(0x3d2))){const {statusCode:_0x119013,statusCode:_0x59eb67,headers:_0x1ca098,body:_0x290129}=_0x4d51d8,_0x23f955={};_0x23f955[_0x5963d2(0x395)]=_0x119013,_0x23f955[_0x5963d2(0x2e0)]=_0x59eb67,_0x23f955[_0x5963d2(0x2a1)]=_0x1ca098,_0x23f955[_0x5963d2(0x350)]=_0x290129,_0x42f90f(null,_0x23f955,_0x290129);}else return _0x492078[_0x5963d2(0x3ae)](_0x369e4a);},_0x158cf4=>{const _0x48c1e6=_0x464293,_0xd198c={'PLMdv':function(_0x1d1169,_0x12a705){const _0x1c8408=_0x2ef6;return _0x2411bc[_0x1c8408(0x3f6)](_0x1d1169,_0x12a705);}};if(_0x2411bc[_0x48c1e6(0x2c6)](_0x2411bc[_0x48c1e6(0x41a)],_0x2411bc[_0x48c1e6(0x41a)])){const {message:_0x4bf001,response:_0x369f2e}=_0x158cf4;_0x42f90f(_0x4bf001,_0x369f2e,_0x369f2e&&_0x369f2e[_0x48c1e6(0x350)]);}else return _0xd198c[_0x48c1e6(0x389)](_0x2f40cd,_0x4702c6)?_0x4c490c:_0x15a393;})));}[_0x1cd528(0x2cc)](_0x388c1c,_0x12ffec=()=>{}){const _0x2c191f=_0x1cd528,_0x4c6c10={'OJdoH':function(_0x29a7d7,_0x9856f5,_0x108289,_0x5ce2d5){const _0x84c9ff=_0x2ef6;return _0x422f4c[_0x84c9ff(0x2e7)](_0x29a7d7,_0x9856f5,_0x108289,_0x5ce2d5);},'AQOll':function(_0x2ed859){const _0x25c06a=_0x2ef6;return _0x422f4c[_0x25c06a(0x3d3)](_0x2ed859);},'boURs':_0x422f4c[_0x2c191f(0x1fa)],'SMKec':function(_0x36550f,_0x833b74,_0x2821af,_0x5e04d2){const _0x310e82=_0x2c191f;return _0x422f4c[_0x310e82(0x2e7)](_0x36550f,_0x833b74,_0x2821af,_0x5e04d2);}},_0x3a7931={};_0x3a7931[_0x2c191f(0x416)]=!(0x4*0xd3+0xb8*-0x31+-0x1*-0x1fed);const _0x4063cc={};_0x4063cc[_0x2c191f(0x2a9)]=!(0x35*-0x55+-0x944+0xb5*0x26);if(_0x388c1c[_0x2c191f(0x350)]&&_0x388c1c[_0x2c191f(0x2a1)]&&!_0x388c1c[_0x2c191f(0x2a1)][_0x422f4c[_0x2c191f(0x22e)]]&&(_0x388c1c[_0x2c191f(0x2a1)][_0x422f4c[_0x2c191f(0x22e)]]=_0x422f4c[_0x2c191f(0x278)]),_0x388c1c[_0x2c191f(0x2a1)]&&delete _0x388c1c[_0x2c191f(0x2a1)][_0x422f4c[_0x2c191f(0x3f4)]],this[_0x2c191f(0x3e2)]()||this[_0x2c191f(0x277)]())this[_0x2c191f(0x3e2)]()&&this[_0x2c191f(0x3fa)]&&(_0x388c1c[_0x2c191f(0x2a1)]=_0x388c1c[_0x2c191f(0x2a1)]||{},Object[_0x2c191f(0x3bd)](_0x388c1c[_0x2c191f(0x2a1)],_0x3a7931)),$httpClient[_0x2c191f(0x2cc)](_0x388c1c,(_0x512899,_0xbeb599,_0x4eda65)=>{const _0x115fc7=_0x2c191f;!_0x512899&&_0xbeb599&&(_0xbeb599[_0x115fc7(0x350)]=_0x4eda65,_0xbeb599[_0x115fc7(0x2e0)]=_0xbeb599[_0x115fc7(0x395)]),_0x12ffec(_0x512899,_0xbeb599,_0x4eda65);});else{if(this[_0x2c191f(0x1fb)]())_0x388c1c[_0x2c191f(0x3ee)]=_0x422f4c[_0x2c191f(0x1c9)],this[_0x2c191f(0x3fa)]&&(_0x388c1c[_0x2c191f(0x240)]=_0x388c1c[_0x2c191f(0x240)]||{},Object[_0x2c191f(0x3bd)](_0x388c1c[_0x2c191f(0x240)],_0x4063cc)),$task[_0x2c191f(0x205)](_0x388c1c)[_0x2c191f(0x2ba)](_0x5c35c1=>{const _0x2b26f9=_0x2c191f,{statusCode:_0x32e4dd,statusCode:_0x5ad8ea,headers:_0x59fb72,body:_0x301f98}=_0x5c35c1,_0x39105b={};_0x39105b[_0x2b26f9(0x395)]=_0x32e4dd,_0x39105b[_0x2b26f9(0x2e0)]=_0x5ad8ea,_0x39105b[_0x2b26f9(0x2a1)]=_0x59fb72,_0x39105b[_0x2b26f9(0x350)]=_0x301f98,_0x12ffec(null,_0x39105b,_0x301f98);},_0x5bfa76=>_0x12ffec(_0x5bfa76));else{if(this[_0x2c191f(0x276)]()){if(_0x422f4c[_0x2c191f(0x217)]!==_0x2c191f(0x3b2)){this[_0x2c191f(0x1ba)](_0x388c1c);const {url:_0x3f908c,..._0x1d8f31}=_0x388c1c;this[_0x2c191f(0x1de)][_0x2c191f(0x2cc)](_0x3f908c,_0x1d8f31)[_0x2c191f(0x2ba)](_0x5de501=>{const _0x1ce74e=_0x2c191f,{statusCode:_0xe63aa9,statusCode:_0x40fb9b,headers:_0x21cc11,body:_0x5d4085}=_0x5de501,_0x5de524={};_0x5de524['status']=_0xe63aa9,_0x5de524[_0x1ce74e(0x2e0)]=_0x40fb9b,_0x5de524[_0x1ce74e(0x2a1)]=_0x21cc11,_0x5de524[_0x1ce74e(0x350)]=_0x5d4085,_0x4c6c10[_0x1ce74e(0x264)](_0x12ffec,null,_0x5de524,_0x5d4085);},_0x34f2d0=>{const _0x5ea45b=_0x2c191f;if(_0x4c6c10[_0x5ea45b(0x29d)]===_0x4c6c10[_0x5ea45b(0x29d)]){const {message:_0x752cf1,response:_0x289ac9}=_0x34f2d0;_0x4c6c10[_0x5ea45b(0x30e)](_0x12ffec,_0x752cf1,_0x289ac9,_0x289ac9&&_0x289ac9[_0x5ea45b(0x350)]);}else _0x4c6c10[_0x5ea45b(0x39e)](_0x7648fd);});}else{const [,_0x39f01f,_0x454c92]=/^@(.*?)\.(.*?)$/[_0x2c191f(0x288)](_0x348004),_0x2c862e=_0x39f01f?this[_0x2c191f(0x337)](_0x39f01f):'';if(_0x2c862e)try{const _0x451c18=_0x5efc85[_0x2c191f(0x3ae)](_0x2c862e);_0x3ae241=_0x451c18?this[_0x2c191f(0x3a4)](_0x451c18,_0x454c92,''):_0x1ea69f;}catch(_0x4f4231){_0x52f8b8='';}}}}}}[_0x1cd528(0x41b)](_0x366628){const _0x4d1e8e=_0x1cd528;let _0x90016a={'M+':_0x422f4c[_0x4d1e8e(0x36a)](new Date()['getMonth'](),0x153*0x7+-0xb5*-0xe+-0x132a),'d+':new Date()[_0x4d1e8e(0x210)](),'H+':new Date()[_0x4d1e8e(0x2f9)](),'m+':new Date()[_0x4d1e8e(0x239)](),'s+':new Date()[_0x4d1e8e(0x391)](),'q+':Math[_0x4d1e8e(0x1a9)](_0x422f4c[_0x4d1e8e(0x1f7)](new Date()[_0x4d1e8e(0x323)]()+(0x5*-0x2a1+0x16a*-0x8+-0x6*-0x414),0x67*-0x17+0x1f2+0x752)),'S':new Date()[_0x4d1e8e(0x3fb)]()};/(y+)/[_0x4d1e8e(0x40c)](_0x366628)&&(_0x366628=_0x366628[_0x4d1e8e(0x268)](RegExp['$1'],(new Date()[_0x4d1e8e(0x28f)]()+'')[_0x4d1e8e(0x254)](_0x422f4c[_0x4d1e8e(0x1bc)](-0xf2c+-0x13*0x49+-0x1*-0x149b,RegExp['$1'][_0x4d1e8e(0x235)]))));for(let _0x285bba in _0x90016a)new RegExp(_0x422f4c[_0x4d1e8e(0x230)]('(',_0x285bba)+')')[_0x4d1e8e(0x40c)](_0x366628)&&(_0x366628=_0x366628[_0x4d1e8e(0x268)](RegExp['$1'],0x215c+-0x89e+-0x18bd==RegExp['$1'][_0x4d1e8e(0x235)]?_0x90016a[_0x285bba]:_0x422f4c[_0x4d1e8e(0x230)]('00',_0x90016a[_0x285bba])[_0x4d1e8e(0x254)](_0x422f4c[_0x4d1e8e(0x230)]('',_0x90016a[_0x285bba])[_0x4d1e8e(0x235)])));return _0x366628;}[_0x1cd528(0x2b3)](_0x463f2e=_0x363070,_0x49c0ad='',_0x40629e='',_0x530a69){const _0x252438=_0x1cd528,_0x2ee7e0=_0x8170c=>{const _0x1b69e1=_0x2ef6;if(!_0x8170c)return _0x8170c;if(_0x422f4c[_0x1b69e1(0x34a)](_0x422f4c[_0x1b69e1(0x1be)],typeof _0x8170c))return this[_0x1b69e1(0x277)]()?_0x8170c:this['isQuanX']()?{'open-url':_0x8170c}:this[_0x1b69e1(0x3e2)]()?{'url':_0x8170c}:void(0x1a2b+-0x1384+-0x6a7*0x1);if(_0x422f4c[_0x1b69e1(0x34a)](_0x422f4c[_0x1b69e1(0x280)],typeof _0x8170c)){if(_0x422f4c[_0x1b69e1(0x201)](_0x422f4c[_0x1b69e1(0x397)],_0x422f4c[_0x1b69e1(0x397)])){if(this[_0x1b69e1(0x277)]()){let _0x4a177b=_0x8170c[_0x1b69e1(0x3de)]||_0x8170c[_0x1b69e1(0x1b6)]||_0x8170c[_0x422f4c[_0x1b69e1(0x30a)]],_0x119038=_0x8170c[_0x1b69e1(0x1f3)]||_0x8170c[_0x422f4c[_0x1b69e1(0x31f)]];const _0x380621={};return _0x380621[_0x1b69e1(0x3de)]=_0x4a177b,_0x380621[_0x1b69e1(0x1f3)]=_0x119038,_0x380621;}if(this[_0x1b69e1(0x1fb)]()){if(_0x422f4c[_0x1b69e1(0x2e1)](_0x422f4c[_0x1b69e1(0x26d)],_0x422f4c[_0x1b69e1(0x338)])){let _0x24f637=_0x8170c[_0x422f4c[_0x1b69e1(0x30a)]]||_0x8170c[_0x1b69e1(0x1b6)]||_0x8170c[_0x1b69e1(0x3de)],_0x486bb9=_0x8170c[_0x1b69e1(0x3a9)]||_0x8170c[_0x1b69e1(0x1f3)];const _0x687c55={};return _0x687c55[_0x1b69e1(0x244)]=_0x24f637,_0x687c55[_0x1b69e1(0x3a9)]=_0x486bb9,_0x687c55;}else return this[_0x1b69e1(0x374)](_0x11b882[_0x1b69e1(0x2a0)](_0x97980f),_0x37d68b);}if(this[_0x1b69e1(0x3e2)]()){let _0x22c8ef=_0x8170c[_0x1b69e1(0x1b6)]||_0x8170c[_0x1b69e1(0x3de)]||_0x8170c[_0x422f4c[_0x1b69e1(0x30a)]];const _0x4ec70a={};return _0x4ec70a[_0x1b69e1(0x1b6)]=_0x22c8ef,_0x4ec70a;}}else return this[_0x1b69e1(0x3e2)]()||this[_0x1b69e1(0x277)]()?_0x3a87ab[_0x1b69e1(0x369)](_0x2fc55b,_0x3ac030):this[_0x1b69e1(0x1fb)]()?_0xbe017e[_0x1b69e1(0x3e1)](_0x39dc51,_0x35a049):this[_0x1b69e1(0x276)]()?(this['data']=this['loaddata'](),this[_0x1b69e1(0x2c3)][_0x56f23c]=_0x2a8de5,this[_0x1b69e1(0x3c0)](),!(-0x2*0x3c+-0x8*0x31+-0x8*-0x40)):this[_0x1b69e1(0x2c3)]&&this[_0x1b69e1(0x2c3)][_0x4ac67f]||null;}};this[_0x252438(0x206)]||(this[_0x252438(0x3e2)]()||this[_0x252438(0x277)]()?$notification[_0x252438(0x2cc)](_0x463f2e,_0x49c0ad,_0x40629e,_0x2ee7e0(_0x530a69)):this[_0x252438(0x1fb)]()&&_0x422f4c[_0x252438(0x353)]($notify,_0x463f2e,_0x49c0ad,_0x40629e,_0x422f4c[_0x252438(0x2ce)](_0x2ee7e0,_0x530a69)));let _0x2ea334=['',_0x422f4c[_0x252438(0x216)]];_0x2ea334[_0x252438(0x347)](_0x463f2e),_0x49c0ad&&_0x2ea334[_0x252438(0x347)](_0x49c0ad),_0x40629e&&_0x2ea334[_0x252438(0x347)](_0x40629e),console[_0x252438(0x258)](_0x2ea334[_0x252438(0x358)]('\x0a')),this[_0x252438(0x410)]=this[_0x252438(0x410)][_0x252438(0x36c)](_0x2ea334);}[_0x1cd528(0x258)](..._0x49d55c){const _0x5ce773=_0x1cd528;_0x422f4c[_0x5ce773(0x3fe)](_0x49d55c[_0x5ce773(0x235)],-0x200b+-0x8b9+0x28c4)&&(this[_0x5ce773(0x410)]=[...this[_0x5ce773(0x410)],..._0x49d55c]),console[_0x5ce773(0x258)](_0x49d55c['join'](this[_0x5ce773(0x29a)]));}[_0x1cd528(0x40d)](_0x2d1af7,_0x2d7834){const _0x6bdbcb=_0x1cd528,_0x48a951=!this[_0x6bdbcb(0x3e2)]()&&!this[_0x6bdbcb(0x1fb)]()&&!this[_0x6bdbcb(0x277)]();_0x48a951?this[_0x6bdbcb(0x258)]('','❗️'+this[_0x6bdbcb(0x245)]+_0x6bdbcb(0x267),_0x2d1af7[_0x6bdbcb(0x233)]):this['log']('','❗️'+this[_0x6bdbcb(0x245)]+_0x6bdbcb(0x267),_0x2d1af7);}[_0x1cd528(0x3a3)](_0x13df5d){return new Promise(_0x2b0910=>setTimeout(_0x2b0910,_0x13df5d));}[_0x1cd528(0x1b7)](_0x3fa778={}){const _0x3196a2=_0x1cd528,_0x518300=new Date()[_0x3196a2(0x3d6)](),_0x35ce3b=_0x422f4c[_0x3196a2(0x1f7)](_0x422f4c[_0x3196a2(0x340)](_0x518300,this[_0x3196a2(0x32a)]),0x149*-0x1+-0x2e+0x55f);this[_0x3196a2(0x258)]('','🔔'+this[_0x3196a2(0x245)]+_0x3196a2(0x1e8)+_0x35ce3b+'\x20秒'),this[_0x3196a2(0x258)](),(this['isSurge']()||this[_0x3196a2(0x1fb)]()||this[_0x3196a2(0x277)]())&&_0x422f4c[_0x3196a2(0x2ce)]($done,_0x3fa778);}}(_0x363070,_0x2c29a7);}function _0x57665a(_0x1080e7){const _0x2a2889=_0x56a2b9,_0x197be6={};_0x197be6['DkBZC']=_0x2a2889(0x3a9),_0x197be6[_0x2a2889(0x363)]=function(_0xf14229,_0x4424f3){return _0xf14229===_0x4424f3;},_0x197be6[_0x2a2889(0x3dd)]=_0x2a2889(0x2fb),_0x197be6[_0x2a2889(0x242)]=_0x2a2889(0x283),_0x197be6[_0x2a2889(0x1e2)]=function(_0x2c2273,_0x362d35){return _0x2c2273===_0x362d35;},_0x197be6[_0x2a2889(0x368)]=_0x2a2889(0x3d5),_0x197be6[_0x2a2889(0x380)]=_0x2a2889(0x274),_0x197be6[_0x2a2889(0x37e)]=_0x2a2889(0x24a),_0x197be6[_0x2a2889(0x251)]=function(_0x51e449,_0xbf4fd0){return _0x51e449!==_0xbf4fd0;},_0x197be6[_0x2a2889(0x3f0)]=function(_0x191441,_0x302440){return _0x191441+_0x302440;},_0x197be6[_0x2a2889(0x1ec)]=function(_0x53be15,_0x120f43){return _0x53be15/_0x120f43;},_0x197be6[_0x2a2889(0x2d0)]=_0x2a2889(0x235),_0x197be6[_0x2a2889(0x215)]=function(_0xf955ec,_0x19514c){return _0xf955ec===_0x19514c;},_0x197be6[_0x2a2889(0x321)]=function(_0x5dc9d9,_0x20df53){return _0x5dc9d9+_0x20df53;},_0x197be6[_0x2a2889(0x294)]=_0x2a2889(0x315),_0x197be6[_0x2a2889(0x303)]=_0x2a2889(0x3be),_0x197be6[_0x2a2889(0x2f0)]=_0x2a2889(0x30c),_0x197be6[_0x2a2889(0x1f1)]=_0x2a2889(0x1c7),_0x197be6[_0x2a2889(0x2c5)]=function(_0x29fdde,_0x47a482){return _0x29fdde!==_0x47a482;},_0x197be6[_0x2a2889(0x317)]='xQelM',_0x197be6[_0x2a2889(0x1cc)]=_0x2a2889(0x411),_0x197be6[_0x2a2889(0x414)]=_0x2a2889(0x2f1);const _0x219cf5=_0x197be6;function _0x1d6784(_0x13c89c){const _0x3ea3c7=_0x2a2889;if(_0x219cf5[_0x3ea3c7(0x1e2)](typeof _0x13c89c,_0x219cf5[_0x3ea3c7(0x368)])){if(_0x219cf5[_0x3ea3c7(0x380)]!==_0x219cf5[_0x3ea3c7(0x380)]){let _0x50403f=_0x409bf1[_0x3ea3c7(0x244)]||_0x121129[_0x3ea3c7(0x1b6)]||_0x37feff[_0x3ea3c7(0x3de)],_0x3aa1f8=_0x3338d8[_0x219cf5[_0x3ea3c7(0x273)]]||_0x26fa98[_0x3ea3c7(0x1f3)];const _0x305f58={};return _0x305f58[_0x3ea3c7(0x244)]=_0x50403f,_0x305f58[_0x3ea3c7(0x3a9)]=_0x3aa1f8,_0x305f58;}else return function(_0x56222d){}[_0x3ea3c7(0x2af)](_0x3ea3c7(0x26f))[_0x3ea3c7(0x2e4)](_0x219cf5[_0x3ea3c7(0x37e)]);}else _0x219cf5[_0x3ea3c7(0x251)](_0x219cf5[_0x3ea3c7(0x3f0)]('',_0x219cf5[_0x3ea3c7(0x1ec)](_0x13c89c,_0x13c89c))[_0x219cf5[_0x3ea3c7(0x2d0)]],0x1*0x377+-0x1c5f*-0x1+-0x1fd5)||_0x219cf5[_0x3ea3c7(0x215)](_0x13c89c%(0x4*-0x6a4+-0x335*0x1+0x1dd9*0x1),-0x1a56+0x1439*-0x1+-0x3*-0xf85)?function(){const _0x4879b2=_0x3ea3c7;if(_0x219cf5[_0x4879b2(0x363)](_0x219cf5[_0x4879b2(0x3dd)],_0x4879b2(0x24f))){if(this[_0x4879b2(0x276)]()){this['fs']=this['fs']?this['fs']:_0xf21187('fs'),this[_0x4879b2(0x419)]=this[_0x4879b2(0x419)]?this[_0x4879b2(0x419)]:_0x2afdd6('path');const _0x58a468=this[_0x4879b2(0x419)][_0x4879b2(0x3bb)](this[_0x4879b2(0x2ab)]),_0x5d9abf=this[_0x4879b2(0x419)][_0x4879b2(0x3bb)](_0x2e1138[_0x4879b2(0x308)](),this[_0x4879b2(0x2ab)]),_0x543d5b=this['fs'][_0x4879b2(0x1ac)](_0x58a468),_0x1eda45=!_0x543d5b&&this['fs'][_0x4879b2(0x1ac)](_0x5d9abf),_0x57aab9=_0x3f95f5[_0x4879b2(0x2a0)](this[_0x4879b2(0x2c3)]);_0x543d5b?this['fs'][_0x4879b2(0x30f)](_0x58a468,_0x57aab9):_0x1eda45?this['fs'][_0x4879b2(0x30f)](_0x5d9abf,_0x57aab9):this['fs'][_0x4879b2(0x30f)](_0x58a468,_0x57aab9);}}else return!![];}[_0x3ea3c7(0x2af)](_0x219cf5[_0x3ea3c7(0x321)](_0x219cf5[_0x3ea3c7(0x294)],_0x3ea3c7(0x30c)))[_0x3ea3c7(0x31a)](_0x219cf5[_0x3ea3c7(0x303)]):_0x219cf5[_0x3ea3c7(0x251)](_0x3ea3c7(0x320),_0x3ea3c7(0x320))?(!_0x131fa4&&_0x126273&&(_0x3b428b[_0x3ea3c7(0x350)]=_0x33860a,_0x1ccad1[_0x3ea3c7(0x2e0)]=_0x1de625[_0x3ea3c7(0x395)]),_0x506fa2(_0x20240e,_0xe5dde4,_0x12f3bb)):function(){const _0x33a114=_0x3ea3c7,_0x3ed897={};_0x3ed897[_0x33a114(0x2fc)]=_0x33a114(0x244),_0x3ed897[_0x33a114(0x2a7)]=_0x219cf5[_0x33a114(0x273)];const _0x3d97af=_0x3ed897;if(_0x219cf5[_0x33a114(0x363)](_0x219cf5[_0x33a114(0x242)],_0x33a114(0x283)))return![];else{if(this[_0x33a114(0x277)]()){let _0x44ae80=_0x2d9a92[_0x33a114(0x3de)]||_0x3ca1fd[_0x33a114(0x1b6)]||_0xcf0361[_0x3d97af[_0x33a114(0x2fc)]],_0x55d0c8=_0x2378e4[_0x33a114(0x1f3)]||_0x3b1973[_0x3d97af[_0x33a114(0x2a7)]];const _0x17fe25={};return _0x17fe25[_0x33a114(0x3de)]=_0x44ae80,_0x17fe25[_0x33a114(0x1f3)]=_0x55d0c8,_0x17fe25;}if(this['isQuanX']()){let _0x1a355d=_0x52d0da[_0x3d97af[_0x33a114(0x2fc)]]||_0x24d1b7[_0x33a114(0x1b6)]||_0x2a27e4[_0x33a114(0x3de)],_0xe6003e=_0x3453e6[_0x3d97af[_0x33a114(0x2a7)]]||_0x4afd5b['mediaUrl'];const _0x268d79={};return _0x268d79[_0x33a114(0x244)]=_0x1a355d,_0x268d79[_0x33a114(0x3a9)]=_0xe6003e,_0x268d79;}if(this[_0x33a114(0x3e2)]()){let _0x3972bf=_0x834da1[_0x33a114(0x1b6)]||_0x456e05[_0x33a114(0x3de)]||_0x56ed3c[_0x3d97af[_0x33a114(0x2fc)]];const _0x3578c4={};return _0x3578c4[_0x33a114(0x1b6)]=_0x3972bf,_0x3578c4;}}}[_0x3ea3c7(0x2af)](_0x219cf5[_0x3ea3c7(0x321)](_0x3ea3c7(0x315),_0x219cf5[_0x3ea3c7(0x2f0)]))[_0x3ea3c7(0x2e4)](_0x219cf5['PldSD']);_0x1d6784(++_0x13c89c);}try{if(_0x1080e7)return _0x219cf5[_0x2a2889(0x2c5)](_0x219cf5[_0x2a2889(0x317)],_0x2a2889(0x32b))?_0x1d6784:{};else _0x219cf5[_0x2a2889(0x1cc)]!==_0x219cf5['EJjsc']?_0x1d6784(-0x2*0x81+0xf1*0x1f+-0x1c2d*0x1):this[_0x2a2889(0x275)]=_0xc4b21c;}catch(_0x57956e){}} \ No newline at end of file +function _0xd0bc(_0x29b84e,_0x2f4bc9){const _0xd0bc39=_0x2f4b();return _0xd0bc=function(_0x141285,_0x181f8c){_0x141285=_0x141285-(-0x36f*-0x3+-0x5*-0x295+0x2*-0xb47);let _0x1f9d21=_0xd0bc39[_0x141285];return _0x1f9d21;},_0xd0bc(_0x29b84e,_0x2f4bc9);}const _0x1fc01b=_0xd0bc;(function(_0x3304da,_0x2c1d5d){const _0x416eb4=_0xd0bc,_0x364d40=_0x3304da();while(!![]){try{const _0x14df43=parseInt(_0x416eb4(0xe1))/(-0x24d+0x1f33+0x1*-0x1ce5)*(parseInt(_0x416eb4(0x11c))/(0x10ab*-0x1+-0x2b*0xda+0x354b*0x1))+parseInt(_0x416eb4(0x122))/(-0x1*0xab0+0x9a9*0x3+-0x1248)*(-parseInt(_0x416eb4(0xe9))/(-0x9*0x86+0x2514+-0x205a))+parseInt(_0x416eb4(0xb0))/(0xa22+-0x190*-0x9+-0x80f*0x3)*(-parseInt(_0x416eb4(0xab))/(0xb4e*0x3+-0x21*-0xf1+-0x40f5))+-parseInt(_0x416eb4(0x114))/(-0x4ba*-0x2+-0x2*-0x10c9+-0x2aff)+parseInt(_0x416eb4(0x161))/(-0x1276+0xaf6+-0x2*-0x3c4)*(parseInt(_0x416eb4(0xa8))/(-0xbbd+0x716+0x2*0x258))+parseInt(_0x416eb4(0x18d))/(-0x1b59+0x43d*0x5+0x632)*(-parseInt(_0x416eb4(0xfe))/(0x17*0x10b+-0x3*0x5e2+-0x64c))+-parseInt(_0x416eb4(0x104))/(-0x18f8+-0xb4a*0x2+0x8*0x5f3)*(-parseInt(_0x416eb4(0x164))/(0xd10+0x226d+-0x2f70));if(_0x14df43===_0x2c1d5d)break;else _0x364d40['push'](_0x364d40['shift']());}catch(_0x2a13a2){_0x364d40['push'](_0x364d40['shift']());}}}(_0x2f4b,0x1218bb+-0x82d07+0x5*0x7fbd));const jsname=_0x1fc01b(0x19c),$=Env(jsname),logDebug=-0x1255*0x2+0x1d3*0x3+0x1f31;let rndtime='',httpResult;var CryptoJS=require(_0x1fc01b(0xcf));let userAccount=($[_0x1fc01b(0x150)]()?process[_0x1fc01b(0x106)][_0x1fc01b(0xe3)]:$[_0x1fc01b(0x112)](_0x1fc01b(0xe3)))||'',userAccountArr=[];setInterval(function(){_0xc6bda4();},0x137b+0x1329+-0x6*0x3d6);let userCookie=($[_0x1fc01b(0x150)]()?process[_0x1fc01b(0x106)][_0x1fc01b(0x103)]:$[_0x1fc01b(0x112)](_0x1fc01b(0x103)))||'',userCookieArr=[],needCancel=($[_0x1fc01b(0x150)]()?process['env'][_0x1fc01b(0x109)]:$[_0x1fc01b(0x112)](_0x1fc01b(0x109)))||0x1*-0x8f9+-0x1720+0x2019,codeName=_0x1fc01b(0x160),validCode=![],ckList=[],cancelList=[];!(async()=>{const _0x310f9c=_0x1fc01b;if(typeof $request!==_0x310f9c(0xbc))$[_0x310f9c(0x192)](jsname+_0x310f9c(0x14c));else{await isValidCode();if(validCode==![])return;console[_0x310f9c(0x172)](_0x310f9c(0x101)),console[_0x310f9c(0x172)](_0x310f9c(0x12c)),console[_0x310f9c(0x172)](_0x310f9c(0x17c)),console[_0x310f9c(0x172)](_0x310f9c(0x139));if(!await checkEnv())return;for(let _0x4108c2 of userAccountArr){let _0x3daadf=_0x4108c2[_0x310f9c(0x15d)]('#');if(_0x3daadf[_0x310f9c(0x152)]<0x615+0xa45+-0x82c*0x2)continue;let _0x12f462=_0x3daadf[-0x1cb+-0x17c5+0x332*0x8],_0x2fba37=_0x3daadf[-0x1*-0x1727+0xc19+-0x233f],_0x4e5004=CryptoJS[_0x310f9c(0x117)](_0x2fba37)[_0x310f9c(0xf0)](CryptoJS[_0x310f9c(0xf8)][_0x310f9c(0xc3)]),_0x1e33bc=CryptoJS[_0x310f9c(0xfa)](_0x4e5004+_0x310f9c(0xe4))[_0x310f9c(0xf0)](CryptoJS[_0x310f9c(0xf8)][_0x310f9c(0xc3)]),_0x1db54a=_0x310f9c(0xaa)+_0x12f462+_0x310f9c(0xac)+_0x1e33bc+_0x310f9c(0x198),_0x3b45a1=CryptoJS[_0x310f9c(0xfa)](_0x1db54a)[_0x310f9c(0xf0)](CryptoJS[_0x310f9c(0xf8)][_0x310f9c(0xc3)]);await Login(_0x12f462,_0x1e33bc,_0x3b45a1);}for(let _0x2eadc0 of userCookieArr){await getBalance(_0x2eadc0);}if(ckList[_0x310f9c(0x152)]>0x24bc+-0x1*0xfdd+-0x1*0x14df){console[_0x310f9c(0x172)](_0x310f9c(0x14e));let _0x4346e3=ckList[_0x310f9c(0x14d)]('@');console[_0x310f9c(0x172)](_0x4346e3);}}})()[_0x1fc01b(0x17a)](_0x5b2db8=>$[_0x1fc01b(0x16a)](_0x5b2db8))[_0x1fc01b(0x146)](()=>$[_0x1fc01b(0xb2)]());async function isValidCode(){const _0x3a4b33=_0x1fc01b;let _0x3e1e45=printCaller();const _0x50c9a5={};_0x50c9a5[_0x3a4b33(0x18a)]=_0x3a4b33(0x14a),_0x50c9a5[_0x3a4b33(0xec)]='';let _0xf3c2e3=_0x50c9a5;return new Promise(_0x5066cd=>{const _0x2f5583=_0x3a4b33;$[_0x2f5583(0x169)](_0xf3c2e3,async(_0x1d572f,_0x40297b,_0x3b2662)=>{const _0x372632=_0x2f5583;try{if(_0x1d572f)console[_0x372632(0x172)](_0x3e1e45+_0x372632(0xbd)),console[_0x372632(0x172)](JSON[_0x372632(0x11f)](_0x1d572f)),$[_0x372632(0x16a)](_0x1d572f);else try{let _0x5199f3=JSON[_0x372632(0x10b)](_0x3b2662);if(logDebug)console['log'](_0x5199f3);_0x5199f3[''+codeName]&&_0x5199f3[''+codeName]==-0x1*-0x1ed3+-0x140+-0x1d92?(validCode=!![],console[_0x372632(0x172)](_0x5199f3['msg'])):console[_0x372632(0x172)](_0x5199f3[_0x372632(0xea)]);}catch(_0x29f539){$[_0x372632(0x16a)](_0x29f539,_0x40297b);}finally{_0x5066cd();}}catch(_0xee1d3a){$[_0x372632(0x16a)](_0xee1d3a,_0x40297b);}finally{_0x5066cd();}});});}async function checkEnv(){const _0x1512d5=_0x1fc01b;if(userAccount)userAccountArr=userAccount[_0x1512d5(0x15d)]('@');else return console[_0x1512d5(0x172)](_0x1512d5(0x102)),![];if(userCookie)userCookieArr=userCookie[_0x1512d5(0x15d)]('@');else return console['log'](_0x1512d5(0x18e)),![];if(!userAccount&&!userCookie)return![];return console[_0x1512d5(0x172)](_0x1512d5(0xf7)+userAccountArr[_0x1512d5(0x152)]+_0x1512d5(0x124)+userCookieArr['length']+_0x1512d5(0xef)),!![];}async function Login(_0x3de053,_0x2e64f4,_0x53243f){const _0x234f94=_0x1fc01b;let _0xd578fe=printCaller();const _0x583cb6={};_0x583cb6[_0x234f94(0xc7)]=_0x234f94(0x186),_0x583cb6[_0x234f94(0x107)]=_0x234f94(0x171),_0x583cb6[_0x234f94(0xd9)]=_0x234f94(0xb5),_0x583cb6[_0x234f94(0x165)]=_0x234f94(0xf3),_0x583cb6[_0x234f94(0xdc)]=_0x234f94(0x135),_0x583cb6[_0x234f94(0x138)]=_0x53243f;const _0x9ade94={};_0x9ade94[_0x234f94(0x18a)]=_0x234f94(0x12a),_0x9ade94[_0x234f94(0xec)]=_0x583cb6,_0x9ade94[_0x234f94(0xd6)]=_0x234f94(0x11a)+_0x3de053+_0x234f94(0x148)+_0x2e64f4+_0x234f94(0x142)+_0x53243f+'&sm_device_id=20211112123533c490f279d26a934ca445950324c9601a01419a1241729573&storage=61.39&uid=61373930&version_code=63';let _0x2e2d74=_0x9ade94;await httpPost(_0x2e2d74,_0xd578fe);let _0xcc94=httpResult;if(!_0xcc94)return;if(_0xcc94[_0x234f94(0x113)]==-0x6a+-0x1*0x1889+0x18f3){let _0x58b54b=_0x234f94(0xcb)+_0xcc94[_0x234f94(0x140)][_0x234f94(0xae)]+_0x234f94(0x149)+_0xcc94[_0x234f94(0x140)][_0x234f94(0xf9)]+_0x234f94(0xd7)+_0xcc94[_0x234f94(0x140)][_0x234f94(0x125)];await getBalance(_0x58b54b,_0x3de053,_0xcc94[_0x234f94(0x140)][_0x234f94(0x188)]);}else console[_0x234f94(0x172)]('账号'+_0x3de053+_0x234f94(0x197)+_0xcc94[_0x234f94(0xdb)]);}async function getBalance(_0x12f94e,_0x268e12='',_0x1f32f9=''){const _0x4d9b1d=_0x1fc01b;let _0x53b7b8=printCaller(),_0x415b54=_0x12f94e[_0x4d9b1d(0x157)](/zqkey/g,_0x4d9b1d(0x199)),_0x4155c6=_0x4d9b1d(0x10f)+_0x415b54,_0x2589d0=populateGetUrl(_0x4155c6);await httpGet(_0x2589d0,_0x53b7b8);let _0x4fd916=httpResult;if(!_0x4fd916)return;let _0xfd59b8=0xf*0x216+0x1ec3+-0x3e0c;console[_0x4d9b1d(0x172)](_0x4d9b1d(0x144));if(_0x4fd916[_0x4d9b1d(0x196)]==0x2157+-0x3a8+-0x1daf){let _0x3398d2=_0x4fd916[_0x4d9b1d(0x129)][_0x4d9b1d(0x196)]==-0x396*0x2+-0x188a+0x2*0xfdb?'黑号':'正常';console[_0x4d9b1d(0x172)]('账号'+_0x268e12+':'+_0x1f32f9+_0x4d9b1d(0x170)+_0x3398d2),console[_0x4d9b1d(0x172)]('【金币总数】:'+_0x4fd916[_0x4d9b1d(0x129)][_0x4d9b1d(0x15b)]),console['log'](_0x4d9b1d(0x128)+_0x4fd916[_0x4d9b1d(0x129)][_0x4d9b1d(0x173)]),_0x4fd916[_0x4d9b1d(0x129)][_0x4d9b1d(0x196)]==-0xa77+-0x799+0x1210&&(needCancel==-0x1fab+0xc4c+0x1360?(console[_0x4d9b1d(0x172)](_0x4d9b1d(0xb9)),_0xfd59b8=0x1*-0x166d+-0x1b91*-0x1+-0x2f*0x1c,await CancelAccount(_0x12f94e,_0x268e12)):console[_0x4d9b1d(0x172)](_0x4d9b1d(0x147)));}else console[_0x4d9b1d(0x172)]('账号'+_0x268e12+':'+_0x1f32f9+_0x4d9b1d(0xe0)+_0x4fd916[_0x4d9b1d(0x192)]);_0xfd59b8==0x344+-0x1694+0x1351&&(ckList[_0x4d9b1d(0x15a)](_0x12f94e),console[_0x4d9b1d(0x172)](_0x12f94e));}async function CancelAccount(_0x1b7329,_0x458647=''){const _0x263d39=_0x1fc01b;let _0x3359c3=printCaller(),_0x2a2974=_0x1b7329[_0x263d39(0x157)](/zqkey/g,_0x263d39(0x199));const _0x3f06e3={};_0x3f06e3['url']=_0x263d39(0xd5)+_0x2a2974,_0x3f06e3[_0x263d39(0xec)]={},_0x3f06e3[_0x263d39(0xec)][_0x263d39(0xc7)]=_0x263d39(0x186),_0x3f06e3[_0x263d39(0xec)][_0x263d39(0x107)]=_0x263d39(0x171),_0x3f06e3[_0x263d39(0xec)][_0x263d39(0xd9)]=_0x263d39(0xb5),_0x3f06e3[_0x263d39(0xec)][_0x263d39(0x165)]=_0x263d39(0xd2),_0x3f06e3[_0x263d39(0xec)][_0x263d39(0xdc)]=_0x263d39(0x135),_0x3f06e3[_0x263d39(0xec)][_0x263d39(0x110)]=_0x263d39(0x13b)+_0x2a2974,_0x3f06e3[_0x263d39(0xec)][_0x263d39(0xbe)]=_0x263d39(0x119);let _0x4117b6=_0x3f06e3;await httpGet(_0x4117b6,_0x3359c3);let _0x117cc5=httpResult;if(!_0x117cc5)return;_0x117cc5[_0x263d39(0x196)]==0x13cd+0x889+-0x1c55?console[_0x263d39(0x172)](_0x263d39(0x134)+_0x458647+'成功'):console[_0x263d39(0x172)](_0x263d39(0x134)+_0x458647+_0x263d39(0x176)+_0x117cc5[_0x263d39(0x192)]);}function populatePostUrl(_0x26a621,_0x3e17d5){const _0x575fd6=_0x1fc01b;let _0x2f8122=Math['floor'](new Date()[_0x575fd6(0x10c)]()/(-0x2015+0xcb+0x2332));const _0x36e579={};_0x36e579[_0x575fd6(0x108)]=_0x2f8122,_0x36e579[_0x575fd6(0xc7)]=_0x575fd6(0x186),_0x36e579[_0x575fd6(0xb8)]='VOG-AL10',_0x36e579[_0x575fd6(0xbb)]=_0x575fd6(0xe8),_0x36e579[_0x575fd6(0x107)]=_0x575fd6(0x171);const _0x54dccb={};_0x54dccb[_0x575fd6(0x18a)]=_0x26a621,_0x54dccb[_0x575fd6(0xec)]=_0x36e579,_0x54dccb[_0x575fd6(0xd6)]=_0x3e17d5;let _0x5c02b0=_0x54dccb;return _0x5c02b0;}function populateGetUrl(_0x213222){const _0x52cfa8=_0x1fc01b;let _0x56c344=Math[_0x52cfa8(0x132)](new Date()[_0x52cfa8(0x10c)]()/(0xb5*0x23+0x59*0x67+-0x38a6));const _0x569e98={};_0x569e98[_0x52cfa8(0x108)]=_0x56c344,_0x569e98['Host']=_0x52cfa8(0x186),_0x569e98[_0x52cfa8(0xb8)]=_0x52cfa8(0x127),_0x569e98[_0x52cfa8(0xbb)]=_0x52cfa8(0xe8),_0x569e98[_0x52cfa8(0x107)]=_0x52cfa8(0x171);const _0x118dcf={};_0x118dcf[_0x52cfa8(0x18a)]=_0x213222,_0x118dcf[_0x52cfa8(0xec)]=_0x569e98;let _0xcec98d=_0x118dcf;return _0xcec98d;}async function httpPost(_0x2b9ee3,_0x558e64){return httpResult=null,new Promise(_0x2dd974=>{const _0x3a8ac8=_0xd0bc;$[_0x3a8ac8(0x118)](_0x2b9ee3,async(_0x32ed1b,_0x2ea82f,_0x5b5b53)=>{const _0x30027b=_0x3a8ac8;try{if(_0x32ed1b)console[_0x30027b(0x172)](_0x558e64+_0x30027b(0xbd)),console[_0x30027b(0x172)](JSON[_0x30027b(0x11f)](_0x32ed1b)),$[_0x30027b(0x16a)](_0x32ed1b);else{if(safeGet(_0x5b5b53)){httpResult=JSON[_0x30027b(0x10b)](_0x5b5b53);if(logDebug)console[_0x30027b(0x172)](httpResult);}}}catch(_0x41a04a){$[_0x30027b(0x16a)](_0x41a04a,_0x2ea82f);}finally{_0x2dd974();}});});}async function httpGet(_0x1286bd,_0x63ea){return httpResult=null,new Promise(_0x3fedaa=>{const _0x53b137=_0xd0bc;$[_0x53b137(0x169)](_0x1286bd,async(_0x2a093e,_0x1bcd0d,_0x176285)=>{const _0x3b918f=_0x53b137;try{if(_0x2a093e)console[_0x3b918f(0x172)](_0x63ea+_0x3b918f(0xf6)),console[_0x3b918f(0x172)](JSON[_0x3b918f(0x11f)](_0x2a093e)),$[_0x3b918f(0x16a)](_0x2a093e);else{if(safeGet(_0x176285,_0x63ea)){httpResult=JSON[_0x3b918f(0x10b)](_0x176285);if(logDebug)console[_0x3b918f(0x172)](httpResult);}}}catch(_0x235c53){$[_0x3b918f(0x16a)](_0x235c53,_0x1bcd0d);}finally{_0x3fedaa();}});});}function _0x2f4b(){const _0xe6da5=['MD5','(((.+)+)+)+$','valueForKey','action','11Mhkilh','getDate','getFullYear','本脚本会找出账号ck并检查账号状态是否黑号,默认不执行注销','未找到zqkdAccount','zqkdBlackCookie','6252cadcWB','isSurge','env','Connection','request_time','zqkdCancel','==============📣系统通知📣==============','parse','getTime','redirect','read','https://kandian.wkandian.com/wap/user/balance?','Referer','existsSync','getdata','error_code','9074695LXPJrG','Function\x20','ciphertext','SHA1','post','XMLHttpRequest','access=WIFI&app_name=zqkd_app&app_version=3.6.0&carrier=CMCC&channel=c1031&device_brand=HUAWEI&device_id=56800462&device_model=VOG-AL10&device_platform=android&device_type=android&dpi=240&inner_version=202108181534&language=zh-CN&memory=3&mi=0&mobile=','ckjar','2KkJPSw','box.dat','random','stringify','slice','mock_type','758256ZyCCqu','stateObject','个手机号密码和','zqkey_id','string','VOG-AL10','【历史收益】:','user','https://kandian.wkandian.com/v3/user/mobile/login.json','@chavy_boxjs_userCfgs.httpapi_timeout','把需要检查的账号按照\x20手机号#密码\x20的格式,填到zqkdAccount里,多账号用@隔开','concat','stack','/v1/scripting/evaluate','Content-Length','Utf8','floor','isArray','注销账号','application/x-www-form-urlencoded','function\x20*\x5c(\x20*\x5c)','map','Token','!!!谨慎操作:如果需要注销,请把环境变量zqkdCancel设为1!!!\x0a','reduce','https://kandian.wkandian.com/h5/staticPage/20210816logout/reason.html?access=WIfI&app_version=2.6.1&channel=80000000&device_platform=iphone&device_brand=iphone&device_type=1&sm_device_id=20211010165617354e5c206e3a80e35b12ff9f7b2d32dd01aea6d82201a6f1&device_id=55902582&os_version=15.0&device_model=iPhone%252012&','getval','test','set-cookie','http://','items','counter','&phone_sim=1&request_time=1640060741&resolution=720x1280&rom_version=VOG-AL10-user%207.1.2%20HUAWEIVOG-AL10%20701210917%20release-keys&s_ad=WFbVGOYyXwIo%3DG3RaF-mQ3_hnznzkfvm51kuVs0b3dMvGt&s_im=vYdVi_XPUOzA%3DmY3BxrJj0CkiC9Sa0W1DOA%3D%3DDR&sign=','POST','========================','isQuanX','finally','已黑号,如果需要注销此账号,请把环境变量zqkdCancel设为1','&mobile_type=1&net_type=1&network_type=WIFI&openudid=711ca30d9d3c10b7&os_api=25&os_version=VOG-AL10-user%207.1.2%20HUAWEIVOG-AL10%20701210917%20release-keys&password=','&zqkey=','https://leafxcy.coding.net/p/validcode/d/validCode/git/raw/master/code.json','media-url',':\x20此脚本不做重写,请检查重写设置','join','========================\x0a所有CK:','abs','isNode','timeout','length','decrypt','readFileSync','X-Surge-Skip-Scripting','DES','replace','getMonth','.$1','push','score','send','split','dataFile','getScript','zqkd_check','2280136lsSeyv','exec','openUrl','23543mKHncY','User-Agent','init','assign','lodash_set','get','logErr','write','charAt','\x5c+\x5c+\x20*(?:[a-zA-Z_$][0-9a-zA-Z_$]*)','cwd','cktough','\x20状态\x20--\x20','keep-alive','log','total_score','name','cookieJar','失败:','http','time','writeFileSync','catch','encrypt','例子:export\x20zqkdAccount=\x27110#123456@120#654321\x27','CBC','setValueForKey','null','@chavy_boxjs_userCfgs.httpapi','*/*','statusCode','CookieJar',':\x20未知错误','logSeparator','kandian.wkandian.com','match','nickname','Base64','url','GET','trim','232430ooYtfP','未找到zqkdBlackCookie','path','hints','isLoon','msg','logs','getMilliseconds','mode','status','登录失败:','phone_sim=1request_time=1640060741resolution=720x1280rom_version=VOG-AL10-user\x207.1.2\x20HUAWEIVOG-AL10\x20701210917\x20release-keyss_ad=WFbVGOYyXwIo=G3RaF-mQ3_hnznzkfvm51kuVs0b3dMvGts_im=vYdVi_XPUOzA=mY3BxrJj0CkiC9Sa0W1DOA==DRsm_device_id=20211112123533c490f279d26a934ca445950324c9601a01419a1241729573storage=61.39uid=61373930version_code=63jdvylqchJZrfw0o2DgAbsmCGUapF1YChc','cookie','debu','cron','中青看点检查状态',',\x20开始!','resolve','27cSBfHK','got','access=WIFIapp_name=zqkd_appapp_version=3.6.0carrier=CMCCchannel=c1031device_brand=HUAWEIdevice_id=56800462device_model=VOG-AL10device_platform=androiddevice_type=androiddpi=240inner_version=202108181534language=zh-CNmemory=3mi=0mobile=','36khKLgV','mobile_type=1net_type=1network_type=WIFIopenudid=711ca30d9d3c10b7os_api=25os_version=VOG-AL10-user\x207.1.2\x20HUAWEIVOG-AL10\x20701210917\x20release-keyspassword=','call','uid','apply','820625sevJBW','opts','done','setCookieSync','data','gzip','getMinutes','open-url','device-model','已黑号,准备注销此账号',':\x20服务器访问数据为空,请检查自身设备网络情况','device-platform','undefined',':\x20post请求失败','X-Requested-With','gger','qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM','Cookie','toObj','Hex','script_text','tough-cookie','runScript','Host','setdata','setval','object','uid=','isNeedRewrite','toStr','then','crypto-js','method','constructor','Mozilla/5.0\x20(iPhone;\x20CPU\x20iPhone\x20OS\x2015_0\x20like\x20Mac\x20OS\x20X)\x20AppleWebKit/605.1.15\x20(KHTML,\x20like\x20Gecko)\x20Mobile/15E148','lodash_get','setjson','https://kandian.wkandian.com/WebApi/User/accountCancel?access=WIfI&app_version=2.6.1&channel=80000000&device_platform=iphone&device_brand=iphone&device_type=1&sm_device_id=zzzz&device_id=yyyy&os_version=15.0&device_model=iPhone%252012&','body','&zqkey_id=','Pkcs7','Accept-Encoding',',\x20错误!','message','Content-Type','fetch','substr','wait','\x20查询失败:','1572217oNmuQO','search','zqkdAccount','ldfsyouth','getHours','startTime','isMute','android','4buvdlY','errorMsg','input','headers','initGotEnv','writedata','个账户CK','toString',',\x20结束!\x20🕛\x20','pad','okhttp/3.12.2','loaddata','mediaUrl',':\x20get请求失败','共找到','enc','zqkey'];_0x2f4b=function(){return _0xe6da5;};return _0x2f4b();}function safeGet(_0x45042b,_0x233af5){const _0x2ecf3f=_0x1fc01b;try{if(typeof JSON[_0x2ecf3f(0x10b)](_0x45042b)==_0x2ecf3f(0xca))return!![];else console[_0x2ecf3f(0x172)](_0x2ecf3f(0x115)+_0x233af5+_0x2ecf3f(0x184)),console[_0x2ecf3f(0x172)](_0x45042b);}catch(_0x5b9845){return console[_0x2ecf3f(0x172)](_0x5b9845),console[_0x2ecf3f(0x172)](_0x2ecf3f(0x115)+_0x233af5+_0x2ecf3f(0xba)),![];}}function printCaller(){const _0x42e7e8=_0x1fc01b;return new Error()[_0x42e7e8(0x12e)][_0x42e7e8(0x15d)]('\x0a')[-0x1f29+0xd47+0x394*0x5][_0x42e7e8(0x18c)]()[_0x42e7e8(0x15d)]('\x20')[0x244d+0x11ee+-0x363a];}function getMin(_0xaf8918,_0xc0ab18){return _0xaf8918<_0xc0ab18?_0xaf8918:_0xc0ab18;}function getMax(_0x1db059,_0x336b6f){return _0x1db059<_0x336b6f?_0x336b6f:_0x1db059;}function EncFunc(_0x1512d9){const _0x80c292=_0x1fc01b;var _0x53899f=CryptoJS[_0x80c292(0xf8)][_0x80c292(0x131)][_0x80c292(0x10b)](key),_0x5477ab=CryptoJS[_0x80c292(0xf8)][_0x80c292(0x131)][_0x80c292(0x10b)](key),_0x1e24e2=CryptoJS[_0x80c292(0xf8)][_0x80c292(0x131)][_0x80c292(0x10b)](_0x1512d9);return encrypted=CryptoJS[_0x80c292(0x156)][_0x80c292(0x17b)](_0x1e24e2,_0x53899f,{'iv':_0x5477ab,'mode':CryptoJS[_0x80c292(0x195)][_0x80c292(0x17d)],'padding':CryptoJS[_0x80c292(0xf2)][_0x80c292(0xd8)]}),encrypted[_0x80c292(0x116)][_0x80c292(0xf0)]();}function DecFunc(_0x5aa1a5){const _0x5565bf=_0x1fc01b;var _0x7b69d5=CryptoJS[_0x5565bf(0xf8)][_0x5565bf(0x131)][_0x5565bf(0x10b)](key),_0x2283e1=CryptoJS[_0x5565bf(0xf8)][_0x5565bf(0x131)][_0x5565bf(0x10b)](key),_0x52bf19=CryptoJS[_0x5565bf(0x156)][_0x5565bf(0x153)]({'ciphertext':CryptoJS[_0x5565bf(0xf8)][_0x5565bf(0x189)][_0x5565bf(0x10b)](_0x5aa1a5)},_0x7b69d5,{'iv':_0x2283e1,'mode':CryptoJS[_0x5565bf(0x195)][_0x5565bf(0x17d)],'padding':CryptoJS[_0x5565bf(0xf2)][_0x5565bf(0xd8)]});return _0x52bf19[_0x5565bf(0xf0)](CryptoJS[_0x5565bf(0xf8)][_0x5565bf(0x131)]);}function randomString(_0x11e1d4=0xb*0x6f+-0x1*-0x25fa+-0x2ab3){const _0x43199b=_0x1fc01b;let _0x55be42=_0x43199b(0xc0),_0x21c62c=_0x55be42[_0x43199b(0x152)],_0x4b430b='';for(i=-0x1d68+-0x1877+0x35df;i<_0x11e1d4;i++){_0x4b430b+=_0x55be42[_0x43199b(0x16c)](Math[_0x43199b(0x132)](Math[_0x43199b(0x11e)]()*_0x21c62c));}return _0x4b430b;}function Env(_0x4f681b,_0x1af31b){const _0x1290bf=_0x1fc01b,_0x2f1ec6=(function(){let _0x52df5c=!![];return function(_0x17a496,_0x4ede81){const _0x2d5ba0=_0x52df5c?function(){const _0x1f8dd3=_0xd0bc;if(_0x4ede81){const _0x5e0211=_0x4ede81[_0x1f8dd3(0xaf)](_0x17a496,arguments);return _0x4ede81=null,_0x5e0211;}}:function(){};return _0x52df5c=![],_0x2d5ba0;};}()),_0x2de175=_0x2f1ec6(this,function(){const _0x15dbc0=_0xd0bc;return _0x2de175[_0x15dbc0(0xf0)]()[_0x15dbc0(0xe2)](_0x15dbc0(0xfb))[_0x15dbc0(0xf0)]()[_0x15dbc0(0xd1)](_0x2de175)[_0x15dbc0(0xe2)](_0x15dbc0(0xfb));});_0x2de175();const _0x6d6ab=(function(){let _0x44f5b0=!![];return function(_0x24f98c,_0x4b2fe3){const _0x11e367=_0x44f5b0?function(){const _0x2f2be4=_0xd0bc;if(_0x4b2fe3){const _0x93a902=_0x4b2fe3[_0x2f2be4(0xaf)](_0x24f98c,arguments);return _0x4b2fe3=null,_0x93a902;}}:function(){};return _0x44f5b0=![],_0x11e367;};}());(function(){_0x6d6ab(this,function(){const _0x3feefa=_0xd0bc,_0x41b492=new RegExp(_0x3feefa(0x136)),_0x203758=new RegExp(_0x3feefa(0x16d),'i'),_0x5f15aa=_0xc6bda4(_0x3feefa(0x166));!_0x41b492[_0x3feefa(0x13d)](_0x5f15aa+'chain')||!_0x203758[_0x3feefa(0x13d)](_0x5f15aa+_0x3feefa(0xeb))?_0x5f15aa('0'):_0xc6bda4();})();}());class _0x386e4b{constructor(_0x4757a0){const _0x2abfe7=_0xd0bc;this[_0x2abfe7(0x106)]=_0x4757a0;}[_0x1290bf(0x15c)](_0x570e46,_0x498e8f=_0x1290bf(0x18b)){const _0x459507=_0x1290bf;_0x570e46='string'==typeof _0x570e46?{'url':_0x570e46}:_0x570e46;let _0x12af7a=this[_0x459507(0x169)];return _0x459507(0x143)===_0x498e8f&&(_0x12af7a=this[_0x459507(0x118)]),new Promise((_0x2c05c1,_0x1926a0)=>{const _0x33e055=_0x459507;_0x12af7a[_0x33e055(0xad)](this,_0x570e46,(_0x146e9a,_0x2e9ee0,_0x80f8c7)=>{_0x146e9a?_0x1926a0(_0x146e9a):_0x2c05c1(_0x2e9ee0);});});}[_0x1290bf(0x169)](_0x33e411){const _0x41fbef=_0x1290bf;return this[_0x41fbef(0x15c)][_0x41fbef(0xad)](this[_0x41fbef(0x106)],_0x33e411);}[_0x1290bf(0x118)](_0x14d26d){const _0x509cdb=_0x1290bf;return this[_0x509cdb(0x15c)][_0x509cdb(0xad)](this[_0x509cdb(0x106)],_0x14d26d,_0x509cdb(0x143));}}return new class{constructor(_0x5e9d51,_0x19cf7d){const _0x127a2e=_0x1290bf;this[_0x127a2e(0x174)]=_0x5e9d51,this[_0x127a2e(0x177)]=new _0x386e4b(this),this[_0x127a2e(0xb4)]=null,this[_0x127a2e(0x15e)]=_0x127a2e(0x11d),this[_0x127a2e(0x193)]=[],this[_0x127a2e(0xe7)]=!(-0x2658+0x167c+0xfdd),this[_0x127a2e(0xcc)]=!(0x1*-0x1f11+0x17dc+0x1*0x736),this[_0x127a2e(0x185)]='\x0a',this[_0x127a2e(0xe6)]=new Date()[_0x127a2e(0x10c)](),Object[_0x127a2e(0x167)](this,_0x19cf7d),this[_0x127a2e(0x172)]('','🔔'+this[_0x127a2e(0x174)]+_0x127a2e(0x19d));}[_0x1290bf(0x150)](){const _0x12ef65=_0x1290bf;return _0x12ef65(0xbc)!=typeof module&&!!module['exports'];}['isQuanX'](){const _0x276dc7=_0x1290bf;return _0x276dc7(0xbc)!=typeof $task;}[_0x1290bf(0x105)](){const _0x20c1fc=_0x1290bf;return'undefined'!=typeof $httpClient&&_0x20c1fc(0xbc)==typeof $loon;}[_0x1290bf(0x191)](){const _0x3bcfb3=_0x1290bf;return _0x3bcfb3(0xbc)!=typeof $loon;}[_0x1290bf(0xc2)](_0x18a86e,_0x26165c=null){const _0x58aedb=_0x1290bf;try{return JSON[_0x58aedb(0x10b)](_0x18a86e);}catch{return _0x26165c;}}[_0x1290bf(0xcd)](_0x3f0330,_0x214d96=null){const _0x332d10=_0x1290bf;try{return JSON[_0x332d10(0x11f)](_0x3f0330);}catch{return _0x214d96;}}['getjson'](_0x54303d,_0x3d8fcd){const _0x4235ff=_0x1290bf;let _0xb617b5=_0x3d8fcd;const _0x44735c=this[_0x4235ff(0x112)](_0x54303d);if(_0x44735c)try{_0xb617b5=JSON[_0x4235ff(0x10b)](this[_0x4235ff(0x112)](_0x54303d));}catch{}return _0xb617b5;}[_0x1290bf(0xd4)](_0x4f8419,_0x47a5d3){const _0x5bebd3=_0x1290bf;try{return this[_0x5bebd3(0xc8)](JSON[_0x5bebd3(0x11f)](_0x4f8419),_0x47a5d3);}catch{return!(-0xfd*0x6+-0xa81+-0x2*-0x838);}}[_0x1290bf(0x15f)](_0x316e2e){return new Promise(_0x3ebfd3=>{const _0x2d3e0b=_0xd0bc,_0xdf6736={};_0xdf6736[_0x2d3e0b(0x18a)]=_0x316e2e,this[_0x2d3e0b(0x169)](_0xdf6736,(_0x25cbcb,_0x215106,_0x2c335e)=>_0x3ebfd3(_0x2c335e));});}[_0x1290bf(0xc6)](_0x558049,_0x220bc1){const _0x13576c=_0x1290bf;return new Promise(_0x49cac4=>{const _0x16b99e=_0xd0bc;let _0x2929c7=this[_0x16b99e(0x112)](_0x16b99e(0x180));_0x2929c7=_0x2929c7?_0x2929c7[_0x16b99e(0x157)](/\n/g,'')[_0x16b99e(0x18c)]():_0x2929c7;let _0x43b38e=this[_0x16b99e(0x112)](_0x16b99e(0x12b));_0x43b38e=_0x43b38e?(-0x3*-0x955+-0xcbc+0xe*-0x117)*_0x43b38e:-0x759+-0x4*-0x425+-0x3*0x30d,_0x43b38e=_0x220bc1&&_0x220bc1[_0x16b99e(0x151)]?_0x220bc1[_0x16b99e(0x151)]:_0x43b38e;const _0x257cdf={};_0x257cdf[_0x16b99e(0xc4)]=_0x558049,_0x257cdf[_0x16b99e(0x121)]=_0x16b99e(0x19b),_0x257cdf[_0x16b99e(0x151)]=_0x43b38e;const [_0xd2ed68,_0x4c10b7]=_0x2929c7[_0x16b99e(0x15d)]('@'),_0x23c728={'url':_0x16b99e(0x13f)+_0x4c10b7+_0x16b99e(0x12f),'body':_0x257cdf,'headers':{'X-Key':_0xd2ed68,'Accept':_0x16b99e(0x181)}};this[_0x16b99e(0x118)](_0x23c728,(_0x2f8daa,_0x271f62,_0x2b627d)=>_0x49cac4(_0x2b627d));})[_0x13576c(0x17a)](_0x233f7e=>this[_0x13576c(0x16a)](_0x233f7e));}[_0x1290bf(0xf4)](){const _0x7f57b2=_0x1290bf;if(!this[_0x7f57b2(0x150)]())return{};{this['fs']=this['fs']?this['fs']:require('fs'),this[_0x7f57b2(0x18f)]=this[_0x7f57b2(0x18f)]?this[_0x7f57b2(0x18f)]:require('path');const _0x4f8e0d=this[_0x7f57b2(0x18f)][_0x7f57b2(0x19e)](this[_0x7f57b2(0x15e)]),_0x163938=this[_0x7f57b2(0x18f)][_0x7f57b2(0x19e)](process[_0x7f57b2(0x16e)](),this[_0x7f57b2(0x15e)]),_0x43488c=this['fs'][_0x7f57b2(0x111)](_0x4f8e0d),_0x4df5d9=!_0x43488c&&this['fs'][_0x7f57b2(0x111)](_0x163938);if(!_0x43488c&&!_0x4df5d9)return{};{const _0x3f8d64=_0x43488c?_0x4f8e0d:_0x163938;try{return JSON[_0x7f57b2(0x10b)](this['fs'][_0x7f57b2(0x154)](_0x3f8d64));}catch(_0x31f530){return{};}}}}[_0x1290bf(0xee)](){const _0x255cd6=_0x1290bf;if(this[_0x255cd6(0x150)]()){this['fs']=this['fs']?this['fs']:require('fs'),this[_0x255cd6(0x18f)]=this[_0x255cd6(0x18f)]?this[_0x255cd6(0x18f)]:require('path');const _0x480264=this[_0x255cd6(0x18f)][_0x255cd6(0x19e)](this[_0x255cd6(0x15e)]),_0x49f4bd=this[_0x255cd6(0x18f)][_0x255cd6(0x19e)](process[_0x255cd6(0x16e)](),this[_0x255cd6(0x15e)]),_0x370d65=this['fs'][_0x255cd6(0x111)](_0x480264),_0x4184d5=!_0x370d65&&this['fs'][_0x255cd6(0x111)](_0x49f4bd),_0x244990=JSON[_0x255cd6(0x11f)](this['data']);_0x370d65?this['fs'][_0x255cd6(0x179)](_0x480264,_0x244990):_0x4184d5?this['fs']['writeFileSync'](_0x49f4bd,_0x244990):this['fs'][_0x255cd6(0x179)](_0x480264,_0x244990);}}[_0x1290bf(0xd3)](_0x13320e,_0x37a16f,_0x45d9e7){const _0x2e33f5=_0x1290bf,_0xf9f696=_0x37a16f[_0x2e33f5(0x157)](/\[(\d+)\]/g,_0x2e33f5(0x159))[_0x2e33f5(0x15d)]('.');let _0x229250=_0x13320e;for(const _0x595cb1 of _0xf9f696)if(_0x229250=Object(_0x229250)[_0x595cb1],void(-0x1fe0+0x1e6b*-0x1+0x3e4b)===_0x229250)return _0x45d9e7;return _0x229250;}[_0x1290bf(0x168)](_0x3129cb,_0x4280ba,_0x495f2d){const _0x42b887=_0x1290bf;return Object(_0x3129cb)!==_0x3129cb?_0x3129cb:(Array[_0x42b887(0x133)](_0x4280ba)||(_0x4280ba=_0x4280ba[_0x42b887(0xf0)]()[_0x42b887(0x187)](/[^.[\]]+/g)||[]),_0x4280ba[_0x42b887(0x120)](0x192b*-0x1+-0x826+0x2151,-(0x10a*0x1+-0x733+0x62a))[_0x42b887(0x13a)]((_0x557ac5,_0xcfb0,_0x20b381)=>Object(_0x557ac5[_0xcfb0])===_0x557ac5[_0xcfb0]?_0x557ac5[_0xcfb0]:_0x557ac5[_0xcfb0]=Math[_0x42b887(0x14f)](_0x4280ba[_0x20b381+(0x21a+0x89*0x17+0x8*-0x1cd)])>>-0x55+-0x115a+0x11af*0x1==+_0x4280ba[_0x20b381+(-0x1693+0x1eca+-0x2*0x41b)]?[]:{},_0x3129cb)[_0x4280ba[_0x4280ba[_0x42b887(0x152)]-(-0x1*-0xae+-0x482+0x3d5)]]=_0x495f2d,_0x3129cb);}[_0x1290bf(0x112)](_0x591faf){const _0x355990=_0x1290bf;let _0x2d8cf0=this[_0x355990(0x13c)](_0x591faf);if(/^@/[_0x355990(0x13d)](_0x591faf)){const [,_0xb23ed9,_0x421132]=/^@(.*?)\.(.*?)$/['exec'](_0x591faf),_0x3dbeac=_0xb23ed9?this[_0x355990(0x13c)](_0xb23ed9):'';if(_0x3dbeac)try{const _0x13d3bd=JSON[_0x355990(0x10b)](_0x3dbeac);_0x2d8cf0=_0x13d3bd?this[_0x355990(0xd3)](_0x13d3bd,_0x421132,''):_0x2d8cf0;}catch(_0x549561){_0x2d8cf0='';}}return _0x2d8cf0;}[_0x1290bf(0xc8)](_0x352ff2,_0x131693){const _0x1e5514=_0x1290bf;let _0x11cc19=!(-0x659+-0x1b7*0xe+0x1e5c);if(/^@/[_0x1e5514(0x13d)](_0x131693)){const [,_0x34ebe5,_0x193655]=/^@(.*?)\.(.*?)$/[_0x1e5514(0x162)](_0x131693),_0x483ffe=this[_0x1e5514(0x13c)](_0x34ebe5),_0x2e920=_0x34ebe5?_0x1e5514(0x17f)===_0x483ffe?null:_0x483ffe||'{}':'{}';try{const _0x574e7d=JSON[_0x1e5514(0x10b)](_0x2e920);this[_0x1e5514(0x168)](_0x574e7d,_0x193655,_0x352ff2),_0x11cc19=this[_0x1e5514(0xc9)](JSON[_0x1e5514(0x11f)](_0x574e7d),_0x34ebe5);}catch(_0x5c972a){const _0x363b69={};this[_0x1e5514(0x168)](_0x363b69,_0x193655,_0x352ff2),_0x11cc19=this['setval'](JSON[_0x1e5514(0x11f)](_0x363b69),_0x34ebe5);}}else _0x11cc19=this[_0x1e5514(0xc9)](_0x352ff2,_0x131693);return _0x11cc19;}[_0x1290bf(0x13c)](_0x153f17){const _0x23be75=_0x1290bf;return this[_0x23be75(0x105)]()||this[_0x23be75(0x191)]()?$persistentStore[_0x23be75(0x10e)](_0x153f17):this[_0x23be75(0x145)]()?$prefs[_0x23be75(0xfc)](_0x153f17):this[_0x23be75(0x150)]()?(this[_0x23be75(0xb4)]=this[_0x23be75(0xf4)](),this[_0x23be75(0xb4)][_0x153f17]):this[_0x23be75(0xb4)]&&this[_0x23be75(0xb4)][_0x153f17]||null;}[_0x1290bf(0xc9)](_0xfed1e2,_0x1f7f2f){const _0x4d0215=_0x1290bf;return this[_0x4d0215(0x105)]()||this[_0x4d0215(0x191)]()?$persistentStore[_0x4d0215(0x16b)](_0xfed1e2,_0x1f7f2f):this[_0x4d0215(0x145)]()?$prefs[_0x4d0215(0x17e)](_0xfed1e2,_0x1f7f2f):this[_0x4d0215(0x150)]()?(this['data']=this[_0x4d0215(0xf4)](),this[_0x4d0215(0xb4)][_0x1f7f2f]=_0xfed1e2,this[_0x4d0215(0xee)](),!(0x13*-0xdf+-0xe5c*0x2+-0xf17*-0x3)):this[_0x4d0215(0xb4)]&&this[_0x4d0215(0xb4)][_0x1f7f2f]||null;}[_0x1290bf(0xed)](_0x5b75c5){const _0x2adb5d=_0x1290bf;this[_0x2adb5d(0xa9)]=this[_0x2adb5d(0xa9)]?this[_0x2adb5d(0xa9)]:require(_0x2adb5d(0xa9)),this[_0x2adb5d(0x16f)]=this[_0x2adb5d(0x16f)]?this[_0x2adb5d(0x16f)]:require(_0x2adb5d(0xc5)),this[_0x2adb5d(0x11b)]=this[_0x2adb5d(0x11b)]?this[_0x2adb5d(0x11b)]:new this[(_0x2adb5d(0x16f))][(_0x2adb5d(0x183))](),_0x5b75c5&&(_0x5b75c5[_0x2adb5d(0xec)]=_0x5b75c5[_0x2adb5d(0xec)]?_0x5b75c5[_0x2adb5d(0xec)]:{},void(-0x984+-0x3af+0xd33)===_0x5b75c5[_0x2adb5d(0xec)][_0x2adb5d(0xc1)]&&void(-0x127f*-0x1+0x1*-0x2185+0xf06)===_0x5b75c5[_0x2adb5d(0x175)]&&(_0x5b75c5[_0x2adb5d(0x175)]=this[_0x2adb5d(0x11b)]));}[_0x1290bf(0x169)](_0x5a17e0,_0x3077ea=()=>{}){const _0x22d481=_0x1290bf,_0x4ebbc0={};_0x4ebbc0[_0x22d481(0x155)]=!(0xf1b+0x1f*0x116+-0x30c4);const _0x4c5ba0={};_0x4c5ba0[_0x22d481(0x190)]=!(-0x2669+-0x2*0x2cd+0x2c04),(_0x5a17e0[_0x22d481(0xec)]&&(delete _0x5a17e0['headers'][_0x22d481(0xdc)],delete _0x5a17e0[_0x22d481(0xec)][_0x22d481(0x130)]),this[_0x22d481(0x105)]()||this[_0x22d481(0x191)]()?(this[_0x22d481(0x105)]()&&this[_0x22d481(0xcc)]&&(_0x5a17e0['headers']=_0x5a17e0[_0x22d481(0xec)]||{},Object[_0x22d481(0x167)](_0x5a17e0[_0x22d481(0xec)],_0x4ebbc0)),$httpClient[_0x22d481(0x169)](_0x5a17e0,(_0x2a678e,_0x353ecc,_0x5ae124)=>{const _0x276d88=_0x22d481;!_0x2a678e&&_0x353ecc&&(_0x353ecc[_0x276d88(0xd6)]=_0x5ae124,_0x353ecc[_0x276d88(0x182)]=_0x353ecc[_0x276d88(0x196)]),_0x3077ea(_0x2a678e,_0x353ecc,_0x5ae124);})):this[_0x22d481(0x145)]()?(this[_0x22d481(0xcc)]&&(_0x5a17e0[_0x22d481(0xb1)]=_0x5a17e0[_0x22d481(0xb1)]||{},Object[_0x22d481(0x167)](_0x5a17e0[_0x22d481(0xb1)],_0x4c5ba0)),$task[_0x22d481(0xdd)](_0x5a17e0)[_0x22d481(0xce)](_0x5b985f=>{const _0x1a4275=_0x22d481,{statusCode:_0x29506d,statusCode:_0x2318b6,headers:_0x562fbf,body:_0x3f6b63}=_0x5b985f,_0x2baba0={};_0x2baba0[_0x1a4275(0x196)]=_0x29506d,_0x2baba0[_0x1a4275(0x182)]=_0x2318b6,_0x2baba0[_0x1a4275(0xec)]=_0x562fbf,_0x2baba0[_0x1a4275(0xd6)]=_0x3f6b63,_0x3077ea(null,_0x2baba0,_0x3f6b63);},_0x1b30a4=>_0x3077ea(_0x1b30a4))):this[_0x22d481(0x150)]()&&(this[_0x22d481(0xed)](_0x5a17e0),this[_0x22d481(0xa9)](_0x5a17e0)['on'](_0x22d481(0x10d),(_0x58be4c,_0xb1f386)=>{const _0x2d8441=_0x22d481;try{if(_0x58be4c[_0x2d8441(0xec)][_0x2d8441(0x13e)]){const _0x2cf3f3=_0x58be4c[_0x2d8441(0xec)][_0x2d8441(0x13e)][_0x2d8441(0x137)](this[_0x2d8441(0x16f)][_0x2d8441(0xc1)][_0x2d8441(0x10b)])[_0x2d8441(0xf0)]();this[_0x2d8441(0x11b)][_0x2d8441(0xb3)](_0x2cf3f3,null),_0xb1f386[_0x2d8441(0x175)]=this[_0x2d8441(0x11b)];}}catch(_0x556278){this[_0x2d8441(0x16a)](_0x556278);}})[_0x22d481(0xce)](_0x10feee=>{const _0x4eb428=_0x22d481,{statusCode:_0x186e06,statusCode:_0x3207ba,headers:_0xcee56a,body:_0x36f8d9}=_0x10feee,_0x1bd4d4={};_0x1bd4d4[_0x4eb428(0x196)]=_0x186e06,_0x1bd4d4[_0x4eb428(0x182)]=_0x3207ba,_0x1bd4d4[_0x4eb428(0xec)]=_0xcee56a,_0x1bd4d4[_0x4eb428(0xd6)]=_0x36f8d9,_0x3077ea(null,_0x1bd4d4,_0x36f8d9);},_0x53ecfe=>{const _0x1b9655=_0x22d481,{message:_0x35283d,response:_0x489b1c}=_0x53ecfe;_0x3077ea(_0x35283d,_0x489b1c,_0x489b1c&&_0x489b1c[_0x1b9655(0xd6)]);})));}[_0x1290bf(0x118)](_0x4454a1,_0x2448b7=()=>{}){const _0x1a726a=_0x1290bf,_0x4bc268={};_0x4bc268[_0x1a726a(0x155)]=!(-0x1e92+0x1*0x1e2f+0x32*0x2);const _0x390a61={};_0x390a61[_0x1a726a(0x190)]=!(-0x68b+0x1*-0x1863+0x1eef);if(_0x4454a1[_0x1a726a(0xd6)]&&_0x4454a1[_0x1a726a(0xec)]&&!_0x4454a1[_0x1a726a(0xec)][_0x1a726a(0xdc)]&&(_0x4454a1[_0x1a726a(0xec)][_0x1a726a(0xdc)]=_0x1a726a(0x135)),_0x4454a1[_0x1a726a(0xec)]&&delete _0x4454a1[_0x1a726a(0xec)][_0x1a726a(0x130)],this[_0x1a726a(0x105)]()||this[_0x1a726a(0x191)]())this[_0x1a726a(0x105)]()&&this[_0x1a726a(0xcc)]&&(_0x4454a1[_0x1a726a(0xec)]=_0x4454a1[_0x1a726a(0xec)]||{},Object[_0x1a726a(0x167)](_0x4454a1[_0x1a726a(0xec)],_0x4bc268)),$httpClient[_0x1a726a(0x118)](_0x4454a1,(_0x59a31e,_0x440418,_0x4e7181)=>{const _0x359e0b=_0x1a726a;!_0x59a31e&&_0x440418&&(_0x440418[_0x359e0b(0xd6)]=_0x4e7181,_0x440418[_0x359e0b(0x182)]=_0x440418[_0x359e0b(0x196)]),_0x2448b7(_0x59a31e,_0x440418,_0x4e7181);});else{if(this[_0x1a726a(0x145)]())_0x4454a1[_0x1a726a(0xd0)]=_0x1a726a(0x143),this[_0x1a726a(0xcc)]&&(_0x4454a1[_0x1a726a(0xb1)]=_0x4454a1[_0x1a726a(0xb1)]||{},Object[_0x1a726a(0x167)](_0x4454a1[_0x1a726a(0xb1)],_0x390a61)),$task[_0x1a726a(0xdd)](_0x4454a1)[_0x1a726a(0xce)](_0x39e76a=>{const _0x15542c=_0x1a726a,{statusCode:_0xb76a95,statusCode:_0x1ed400,headers:_0x45ebbb,body:_0x3f6284}=_0x39e76a,_0xdbe630={};_0xdbe630[_0x15542c(0x196)]=_0xb76a95,_0xdbe630[_0x15542c(0x182)]=_0x1ed400,_0xdbe630[_0x15542c(0xec)]=_0x45ebbb,_0xdbe630[_0x15542c(0xd6)]=_0x3f6284,_0x2448b7(null,_0xdbe630,_0x3f6284);},_0x44291c=>_0x2448b7(_0x44291c));else{if(this[_0x1a726a(0x150)]()){this[_0x1a726a(0xed)](_0x4454a1);const {url:_0x442800,..._0x5bd9f9}=_0x4454a1;this[_0x1a726a(0xa9)][_0x1a726a(0x118)](_0x442800,_0x5bd9f9)[_0x1a726a(0xce)](_0x125403=>{const _0x3d6b9e=_0x1a726a,{statusCode:_0x188607,statusCode:_0x14a8a5,headers:_0x11930e,body:_0x43dc61}=_0x125403,_0x1ee4fe={};_0x1ee4fe[_0x3d6b9e(0x196)]=_0x188607,_0x1ee4fe[_0x3d6b9e(0x182)]=_0x14a8a5,_0x1ee4fe[_0x3d6b9e(0xec)]=_0x11930e,_0x1ee4fe[_0x3d6b9e(0xd6)]=_0x43dc61,_0x2448b7(null,_0x1ee4fe,_0x43dc61);},_0x5aab4f=>{const _0x2a991e=_0x1a726a,{message:_0x3c37c2,response:_0x33fca0}=_0x5aab4f;_0x2448b7(_0x3c37c2,_0x33fca0,_0x33fca0&&_0x33fca0[_0x2a991e(0xd6)]);});}}}}[_0x1290bf(0x178)](_0x1864f6){const _0x1214cb=_0x1290bf;let _0x57e908={'M+':new Date()[_0x1214cb(0x158)]()+(-0x1b4f+-0xd00+0x2850),'d+':new Date()[_0x1214cb(0xff)](),'H+':new Date()[_0x1214cb(0xe5)](),'m+':new Date()[_0x1214cb(0xb6)](),'s+':new Date()['getSeconds'](),'q+':Math[_0x1214cb(0x132)]((new Date()[_0x1214cb(0x158)]()+(-0x12b5+0xb73*-0x3+0xa9d*0x5))/(0x7d5*-0x2+-0x518+0x14c5)),'S':new Date()[_0x1214cb(0x194)]()};/(y+)/[_0x1214cb(0x13d)](_0x1864f6)&&(_0x1864f6=_0x1864f6[_0x1214cb(0x157)](RegExp['$1'],(new Date()[_0x1214cb(0x100)]()+'')[_0x1214cb(0xde)](0x1*0x1a73+0x2*0x1215+0x281*-0x19-RegExp['$1'][_0x1214cb(0x152)])));for(let _0x442416 in _0x57e908)new RegExp('('+_0x442416+')')[_0x1214cb(0x13d)](_0x1864f6)&&(_0x1864f6=_0x1864f6[_0x1214cb(0x157)](RegExp['$1'],-0x223c+-0x2439+0x4676==RegExp['$1'][_0x1214cb(0x152)]?_0x57e908[_0x442416]:('00'+_0x57e908[_0x442416])[_0x1214cb(0xde)]((''+_0x57e908[_0x442416])[_0x1214cb(0x152)])));return _0x1864f6;}[_0x1290bf(0x192)](_0x1580c0=_0x4f681b,_0x5df552='',_0x3695cc='',_0x39390a){const _0x49edb2=_0x1290bf,_0x1c2179=_0x168f76=>{const _0x43bca7=_0xd0bc;if(!_0x168f76)return _0x168f76;if(_0x43bca7(0x126)==typeof _0x168f76)return this[_0x43bca7(0x191)]()?_0x168f76:this[_0x43bca7(0x145)]()?{'open-url':_0x168f76}:this[_0x43bca7(0x105)]()?{'url':_0x168f76}:void(0x330+0x1ad9+-0x1e09);if(_0x43bca7(0xca)==typeof _0x168f76){if(this[_0x43bca7(0x191)]()){let _0x25eb42=_0x168f76[_0x43bca7(0x163)]||_0x168f76[_0x43bca7(0x18a)]||_0x168f76[_0x43bca7(0xb7)],_0x157399=_0x168f76[_0x43bca7(0xf5)]||_0x168f76[_0x43bca7(0x14b)];const _0x252fe4={};return _0x252fe4[_0x43bca7(0x163)]=_0x25eb42,_0x252fe4[_0x43bca7(0xf5)]=_0x157399,_0x252fe4;}if(this[_0x43bca7(0x145)]()){let _0x3e291b=_0x168f76[_0x43bca7(0xb7)]||_0x168f76[_0x43bca7(0x18a)]||_0x168f76[_0x43bca7(0x163)],_0x28ded7=_0x168f76[_0x43bca7(0x14b)]||_0x168f76[_0x43bca7(0xf5)];const _0x44dd1b={};return _0x44dd1b[_0x43bca7(0xb7)]=_0x3e291b,_0x44dd1b[_0x43bca7(0x14b)]=_0x28ded7,_0x44dd1b;}if(this[_0x43bca7(0x105)]()){let _0x576bb7=_0x168f76[_0x43bca7(0x18a)]||_0x168f76[_0x43bca7(0x163)]||_0x168f76[_0x43bca7(0xb7)];const _0x3fcb16={};return _0x3fcb16[_0x43bca7(0x18a)]=_0x576bb7,_0x3fcb16;}}};this[_0x49edb2(0xe7)]||(this[_0x49edb2(0x105)]()||this[_0x49edb2(0x191)]()?$notification[_0x49edb2(0x118)](_0x1580c0,_0x5df552,_0x3695cc,_0x1c2179(_0x39390a)):this[_0x49edb2(0x145)]()&&$notify(_0x1580c0,_0x5df552,_0x3695cc,_0x1c2179(_0x39390a)));let _0x541aa4=['',_0x49edb2(0x10a)];_0x541aa4[_0x49edb2(0x15a)](_0x1580c0),_0x5df552&&_0x541aa4[_0x49edb2(0x15a)](_0x5df552),_0x3695cc&&_0x541aa4['push'](_0x3695cc),console[_0x49edb2(0x172)](_0x541aa4[_0x49edb2(0x14d)]('\x0a')),this[_0x49edb2(0x193)]=this[_0x49edb2(0x193)][_0x49edb2(0x12d)](_0x541aa4);}[_0x1290bf(0x172)](..._0x59e855){const _0x508b4c=_0x1290bf;_0x59e855[_0x508b4c(0x152)]>-0x191e+0x1f19+-0x5fb&&(this[_0x508b4c(0x193)]=[...this[_0x508b4c(0x193)],..._0x59e855]),console[_0x508b4c(0x172)](_0x59e855[_0x508b4c(0x14d)](this[_0x508b4c(0x185)]));}[_0x1290bf(0x16a)](_0x39a3dd,_0x18f429){const _0x5ea048=_0x1290bf,_0x33ec5e=!this[_0x5ea048(0x105)]()&&!this[_0x5ea048(0x145)]()&&!this[_0x5ea048(0x191)]();_0x33ec5e?this[_0x5ea048(0x172)]('','❗️'+this[_0x5ea048(0x174)]+_0x5ea048(0xda),_0x39a3dd[_0x5ea048(0x12e)]):this[_0x5ea048(0x172)]('','❗️'+this['name']+_0x5ea048(0xda),_0x39a3dd);}[_0x1290bf(0xdf)](_0x5b72e0){return new Promise(_0x10f08f=>setTimeout(_0x10f08f,_0x5b72e0));}[_0x1290bf(0xb2)](_0xc1ff89={}){const _0x5a7ee0=_0x1290bf,_0x5b4c35=new Date()['getTime'](),_0x523a22=(_0x5b4c35-this[_0x5a7ee0(0xe6)])/(-0x1e9*-0x1+0x1528+-0x1329);this[_0x5a7ee0(0x172)]('','🔔'+this[_0x5a7ee0(0x174)]+_0x5a7ee0(0xf1)+_0x523a22+'\x20秒'),this[_0x5a7ee0(0x172)](),(this[_0x5a7ee0(0x105)]()||this[_0x5a7ee0(0x145)]()||this[_0x5a7ee0(0x191)]())&&$done(_0xc1ff89);}}(_0x4f681b,_0x1af31b);}function _0xc6bda4(_0x177a75){function _0x3291ba(_0x54d258){const _0x7e1478=_0xd0bc;if(typeof _0x54d258===_0x7e1478(0x126))return function(_0xa879dc){}[_0x7e1478(0xd1)]('while\x20(true)\x20{}')[_0x7e1478(0xaf)](_0x7e1478(0x141));else(''+_0x54d258/_0x54d258)[_0x7e1478(0x152)]!==0x480+-0x4*0x781+0x1985||_0x54d258%(0x1*0x9ff+0x1*-0xc0b+0x4*0x88)===0x3e*-0x28+-0x1025*-0x1+-0x675?function(){return!![];}[_0x7e1478(0xd1)](_0x7e1478(0x19a)+_0x7e1478(0xbf))[_0x7e1478(0xad)](_0x7e1478(0xfd)):function(){return![];}[_0x7e1478(0xd1)](_0x7e1478(0x19a)+_0x7e1478(0xbf))[_0x7e1478(0xaf)](_0x7e1478(0x123));_0x3291ba(++_0x54d258);}try{if(_0x177a75)return _0x3291ba;else _0x3291ba(0xcfe+0x1*-0x91d+-0x3e1);}catch(_0x1d8b1b){}} \ No newline at end of file From f3eae2b042fd680f3f481ec63a5cfeb556e53542 Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Tue, 21 Dec 2021 14:53:02 +0800 Subject: [PATCH 74/75] Update zqkd_check.js --- zqkd/zqkd_check.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/zqkd/zqkd_check.js b/zqkd/zqkd_check.js index e047d4c..aab0a8f 100644 --- a/zqkd/zqkd_check.js +++ b/zqkd/zqkd_check.js @@ -3,7 +3,9 @@ 本脚本会找出账号ck并检查账号状态是否黑号,默认不执行注销 把需要检查的账号按照 手机号#密码 的格式,填到zqkdAccount里,多账号用@隔开 +或者把账号CK填进zqkdBlackCookie里,多账号用@隔开 例子:export zqkdAccount='110#123456@120#654321' +export zqkdBlackCookie='uid=xxxx&zqkey=yyyyy&zqkey_id=zzzzzz' !!!谨慎操作:如果需要注销,请把环境变量zqkdCancel设为1!!! */ From a8c61672c2d32211f8508598236f54bf8e30cf7e Mon Sep 17 00:00:00 2001 From: Leaf <444653703@qq.com> Date: Tue, 21 Dec 2021 15:08:06 +0800 Subject: [PATCH 75/75] Update zqkd_check.js --- zqkd/zqkd_check.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zqkd/zqkd_check.js b/zqkd/zqkd_check.js index aab0a8f..ed952b0 100644 --- a/zqkd/zqkd_check.js +++ b/zqkd/zqkd_check.js @@ -9,4 +9,4 @@ export zqkdBlackCookie='uid=xxxx&zqkey=yyyyy&zqkey_id=zzzzzz' !!!谨慎操作:如果需要注销,请把环境变量zqkdCancel设为1!!! */ -function _0xd0bc(_0x29b84e,_0x2f4bc9){const _0xd0bc39=_0x2f4b();return _0xd0bc=function(_0x141285,_0x181f8c){_0x141285=_0x141285-(-0x36f*-0x3+-0x5*-0x295+0x2*-0xb47);let _0x1f9d21=_0xd0bc39[_0x141285];return _0x1f9d21;},_0xd0bc(_0x29b84e,_0x2f4bc9);}const _0x1fc01b=_0xd0bc;(function(_0x3304da,_0x2c1d5d){const _0x416eb4=_0xd0bc,_0x364d40=_0x3304da();while(!![]){try{const _0x14df43=parseInt(_0x416eb4(0xe1))/(-0x24d+0x1f33+0x1*-0x1ce5)*(parseInt(_0x416eb4(0x11c))/(0x10ab*-0x1+-0x2b*0xda+0x354b*0x1))+parseInt(_0x416eb4(0x122))/(-0x1*0xab0+0x9a9*0x3+-0x1248)*(-parseInt(_0x416eb4(0xe9))/(-0x9*0x86+0x2514+-0x205a))+parseInt(_0x416eb4(0xb0))/(0xa22+-0x190*-0x9+-0x80f*0x3)*(-parseInt(_0x416eb4(0xab))/(0xb4e*0x3+-0x21*-0xf1+-0x40f5))+-parseInt(_0x416eb4(0x114))/(-0x4ba*-0x2+-0x2*-0x10c9+-0x2aff)+parseInt(_0x416eb4(0x161))/(-0x1276+0xaf6+-0x2*-0x3c4)*(parseInt(_0x416eb4(0xa8))/(-0xbbd+0x716+0x2*0x258))+parseInt(_0x416eb4(0x18d))/(-0x1b59+0x43d*0x5+0x632)*(-parseInt(_0x416eb4(0xfe))/(0x17*0x10b+-0x3*0x5e2+-0x64c))+-parseInt(_0x416eb4(0x104))/(-0x18f8+-0xb4a*0x2+0x8*0x5f3)*(-parseInt(_0x416eb4(0x164))/(0xd10+0x226d+-0x2f70));if(_0x14df43===_0x2c1d5d)break;else _0x364d40['push'](_0x364d40['shift']());}catch(_0x2a13a2){_0x364d40['push'](_0x364d40['shift']());}}}(_0x2f4b,0x1218bb+-0x82d07+0x5*0x7fbd));const jsname=_0x1fc01b(0x19c),$=Env(jsname),logDebug=-0x1255*0x2+0x1d3*0x3+0x1f31;let rndtime='',httpResult;var CryptoJS=require(_0x1fc01b(0xcf));let userAccount=($[_0x1fc01b(0x150)]()?process[_0x1fc01b(0x106)][_0x1fc01b(0xe3)]:$[_0x1fc01b(0x112)](_0x1fc01b(0xe3)))||'',userAccountArr=[];setInterval(function(){_0xc6bda4();},0x137b+0x1329+-0x6*0x3d6);let userCookie=($[_0x1fc01b(0x150)]()?process[_0x1fc01b(0x106)][_0x1fc01b(0x103)]:$[_0x1fc01b(0x112)](_0x1fc01b(0x103)))||'',userCookieArr=[],needCancel=($[_0x1fc01b(0x150)]()?process['env'][_0x1fc01b(0x109)]:$[_0x1fc01b(0x112)](_0x1fc01b(0x109)))||0x1*-0x8f9+-0x1720+0x2019,codeName=_0x1fc01b(0x160),validCode=![],ckList=[],cancelList=[];!(async()=>{const _0x310f9c=_0x1fc01b;if(typeof $request!==_0x310f9c(0xbc))$[_0x310f9c(0x192)](jsname+_0x310f9c(0x14c));else{await isValidCode();if(validCode==![])return;console[_0x310f9c(0x172)](_0x310f9c(0x101)),console[_0x310f9c(0x172)](_0x310f9c(0x12c)),console[_0x310f9c(0x172)](_0x310f9c(0x17c)),console[_0x310f9c(0x172)](_0x310f9c(0x139));if(!await checkEnv())return;for(let _0x4108c2 of userAccountArr){let _0x3daadf=_0x4108c2[_0x310f9c(0x15d)]('#');if(_0x3daadf[_0x310f9c(0x152)]<0x615+0xa45+-0x82c*0x2)continue;let _0x12f462=_0x3daadf[-0x1cb+-0x17c5+0x332*0x8],_0x2fba37=_0x3daadf[-0x1*-0x1727+0xc19+-0x233f],_0x4e5004=CryptoJS[_0x310f9c(0x117)](_0x2fba37)[_0x310f9c(0xf0)](CryptoJS[_0x310f9c(0xf8)][_0x310f9c(0xc3)]),_0x1e33bc=CryptoJS[_0x310f9c(0xfa)](_0x4e5004+_0x310f9c(0xe4))[_0x310f9c(0xf0)](CryptoJS[_0x310f9c(0xf8)][_0x310f9c(0xc3)]),_0x1db54a=_0x310f9c(0xaa)+_0x12f462+_0x310f9c(0xac)+_0x1e33bc+_0x310f9c(0x198),_0x3b45a1=CryptoJS[_0x310f9c(0xfa)](_0x1db54a)[_0x310f9c(0xf0)](CryptoJS[_0x310f9c(0xf8)][_0x310f9c(0xc3)]);await Login(_0x12f462,_0x1e33bc,_0x3b45a1);}for(let _0x2eadc0 of userCookieArr){await getBalance(_0x2eadc0);}if(ckList[_0x310f9c(0x152)]>0x24bc+-0x1*0xfdd+-0x1*0x14df){console[_0x310f9c(0x172)](_0x310f9c(0x14e));let _0x4346e3=ckList[_0x310f9c(0x14d)]('@');console[_0x310f9c(0x172)](_0x4346e3);}}})()[_0x1fc01b(0x17a)](_0x5b2db8=>$[_0x1fc01b(0x16a)](_0x5b2db8))[_0x1fc01b(0x146)](()=>$[_0x1fc01b(0xb2)]());async function isValidCode(){const _0x3a4b33=_0x1fc01b;let _0x3e1e45=printCaller();const _0x50c9a5={};_0x50c9a5[_0x3a4b33(0x18a)]=_0x3a4b33(0x14a),_0x50c9a5[_0x3a4b33(0xec)]='';let _0xf3c2e3=_0x50c9a5;return new Promise(_0x5066cd=>{const _0x2f5583=_0x3a4b33;$[_0x2f5583(0x169)](_0xf3c2e3,async(_0x1d572f,_0x40297b,_0x3b2662)=>{const _0x372632=_0x2f5583;try{if(_0x1d572f)console[_0x372632(0x172)](_0x3e1e45+_0x372632(0xbd)),console[_0x372632(0x172)](JSON[_0x372632(0x11f)](_0x1d572f)),$[_0x372632(0x16a)](_0x1d572f);else try{let _0x5199f3=JSON[_0x372632(0x10b)](_0x3b2662);if(logDebug)console['log'](_0x5199f3);_0x5199f3[''+codeName]&&_0x5199f3[''+codeName]==-0x1*-0x1ed3+-0x140+-0x1d92?(validCode=!![],console[_0x372632(0x172)](_0x5199f3['msg'])):console[_0x372632(0x172)](_0x5199f3[_0x372632(0xea)]);}catch(_0x29f539){$[_0x372632(0x16a)](_0x29f539,_0x40297b);}finally{_0x5066cd();}}catch(_0xee1d3a){$[_0x372632(0x16a)](_0xee1d3a,_0x40297b);}finally{_0x5066cd();}});});}async function checkEnv(){const _0x1512d5=_0x1fc01b;if(userAccount)userAccountArr=userAccount[_0x1512d5(0x15d)]('@');else return console[_0x1512d5(0x172)](_0x1512d5(0x102)),![];if(userCookie)userCookieArr=userCookie[_0x1512d5(0x15d)]('@');else return console['log'](_0x1512d5(0x18e)),![];if(!userAccount&&!userCookie)return![];return console[_0x1512d5(0x172)](_0x1512d5(0xf7)+userAccountArr[_0x1512d5(0x152)]+_0x1512d5(0x124)+userCookieArr['length']+_0x1512d5(0xef)),!![];}async function Login(_0x3de053,_0x2e64f4,_0x53243f){const _0x234f94=_0x1fc01b;let _0xd578fe=printCaller();const _0x583cb6={};_0x583cb6[_0x234f94(0xc7)]=_0x234f94(0x186),_0x583cb6[_0x234f94(0x107)]=_0x234f94(0x171),_0x583cb6[_0x234f94(0xd9)]=_0x234f94(0xb5),_0x583cb6[_0x234f94(0x165)]=_0x234f94(0xf3),_0x583cb6[_0x234f94(0xdc)]=_0x234f94(0x135),_0x583cb6[_0x234f94(0x138)]=_0x53243f;const _0x9ade94={};_0x9ade94[_0x234f94(0x18a)]=_0x234f94(0x12a),_0x9ade94[_0x234f94(0xec)]=_0x583cb6,_0x9ade94[_0x234f94(0xd6)]=_0x234f94(0x11a)+_0x3de053+_0x234f94(0x148)+_0x2e64f4+_0x234f94(0x142)+_0x53243f+'&sm_device_id=20211112123533c490f279d26a934ca445950324c9601a01419a1241729573&storage=61.39&uid=61373930&version_code=63';let _0x2e2d74=_0x9ade94;await httpPost(_0x2e2d74,_0xd578fe);let _0xcc94=httpResult;if(!_0xcc94)return;if(_0xcc94[_0x234f94(0x113)]==-0x6a+-0x1*0x1889+0x18f3){let _0x58b54b=_0x234f94(0xcb)+_0xcc94[_0x234f94(0x140)][_0x234f94(0xae)]+_0x234f94(0x149)+_0xcc94[_0x234f94(0x140)][_0x234f94(0xf9)]+_0x234f94(0xd7)+_0xcc94[_0x234f94(0x140)][_0x234f94(0x125)];await getBalance(_0x58b54b,_0x3de053,_0xcc94[_0x234f94(0x140)][_0x234f94(0x188)]);}else console[_0x234f94(0x172)]('账号'+_0x3de053+_0x234f94(0x197)+_0xcc94[_0x234f94(0xdb)]);}async function getBalance(_0x12f94e,_0x268e12='',_0x1f32f9=''){const _0x4d9b1d=_0x1fc01b;let _0x53b7b8=printCaller(),_0x415b54=_0x12f94e[_0x4d9b1d(0x157)](/zqkey/g,_0x4d9b1d(0x199)),_0x4155c6=_0x4d9b1d(0x10f)+_0x415b54,_0x2589d0=populateGetUrl(_0x4155c6);await httpGet(_0x2589d0,_0x53b7b8);let _0x4fd916=httpResult;if(!_0x4fd916)return;let _0xfd59b8=0xf*0x216+0x1ec3+-0x3e0c;console[_0x4d9b1d(0x172)](_0x4d9b1d(0x144));if(_0x4fd916[_0x4d9b1d(0x196)]==0x2157+-0x3a8+-0x1daf){let _0x3398d2=_0x4fd916[_0x4d9b1d(0x129)][_0x4d9b1d(0x196)]==-0x396*0x2+-0x188a+0x2*0xfdb?'黑号':'正常';console[_0x4d9b1d(0x172)]('账号'+_0x268e12+':'+_0x1f32f9+_0x4d9b1d(0x170)+_0x3398d2),console[_0x4d9b1d(0x172)]('【金币总数】:'+_0x4fd916[_0x4d9b1d(0x129)][_0x4d9b1d(0x15b)]),console['log'](_0x4d9b1d(0x128)+_0x4fd916[_0x4d9b1d(0x129)][_0x4d9b1d(0x173)]),_0x4fd916[_0x4d9b1d(0x129)][_0x4d9b1d(0x196)]==-0xa77+-0x799+0x1210&&(needCancel==-0x1fab+0xc4c+0x1360?(console[_0x4d9b1d(0x172)](_0x4d9b1d(0xb9)),_0xfd59b8=0x1*-0x166d+-0x1b91*-0x1+-0x2f*0x1c,await CancelAccount(_0x12f94e,_0x268e12)):console[_0x4d9b1d(0x172)](_0x4d9b1d(0x147)));}else console[_0x4d9b1d(0x172)]('账号'+_0x268e12+':'+_0x1f32f9+_0x4d9b1d(0xe0)+_0x4fd916[_0x4d9b1d(0x192)]);_0xfd59b8==0x344+-0x1694+0x1351&&(ckList[_0x4d9b1d(0x15a)](_0x12f94e),console[_0x4d9b1d(0x172)](_0x12f94e));}async function CancelAccount(_0x1b7329,_0x458647=''){const _0x263d39=_0x1fc01b;let _0x3359c3=printCaller(),_0x2a2974=_0x1b7329[_0x263d39(0x157)](/zqkey/g,_0x263d39(0x199));const _0x3f06e3={};_0x3f06e3['url']=_0x263d39(0xd5)+_0x2a2974,_0x3f06e3[_0x263d39(0xec)]={},_0x3f06e3[_0x263d39(0xec)][_0x263d39(0xc7)]=_0x263d39(0x186),_0x3f06e3[_0x263d39(0xec)][_0x263d39(0x107)]=_0x263d39(0x171),_0x3f06e3[_0x263d39(0xec)][_0x263d39(0xd9)]=_0x263d39(0xb5),_0x3f06e3[_0x263d39(0xec)][_0x263d39(0x165)]=_0x263d39(0xd2),_0x3f06e3[_0x263d39(0xec)][_0x263d39(0xdc)]=_0x263d39(0x135),_0x3f06e3[_0x263d39(0xec)][_0x263d39(0x110)]=_0x263d39(0x13b)+_0x2a2974,_0x3f06e3[_0x263d39(0xec)][_0x263d39(0xbe)]=_0x263d39(0x119);let _0x4117b6=_0x3f06e3;await httpGet(_0x4117b6,_0x3359c3);let _0x117cc5=httpResult;if(!_0x117cc5)return;_0x117cc5[_0x263d39(0x196)]==0x13cd+0x889+-0x1c55?console[_0x263d39(0x172)](_0x263d39(0x134)+_0x458647+'成功'):console[_0x263d39(0x172)](_0x263d39(0x134)+_0x458647+_0x263d39(0x176)+_0x117cc5[_0x263d39(0x192)]);}function populatePostUrl(_0x26a621,_0x3e17d5){const _0x575fd6=_0x1fc01b;let _0x2f8122=Math['floor'](new Date()[_0x575fd6(0x10c)]()/(-0x2015+0xcb+0x2332));const _0x36e579={};_0x36e579[_0x575fd6(0x108)]=_0x2f8122,_0x36e579[_0x575fd6(0xc7)]=_0x575fd6(0x186),_0x36e579[_0x575fd6(0xb8)]='VOG-AL10',_0x36e579[_0x575fd6(0xbb)]=_0x575fd6(0xe8),_0x36e579[_0x575fd6(0x107)]=_0x575fd6(0x171);const _0x54dccb={};_0x54dccb[_0x575fd6(0x18a)]=_0x26a621,_0x54dccb[_0x575fd6(0xec)]=_0x36e579,_0x54dccb[_0x575fd6(0xd6)]=_0x3e17d5;let _0x5c02b0=_0x54dccb;return _0x5c02b0;}function populateGetUrl(_0x213222){const _0x52cfa8=_0x1fc01b;let _0x56c344=Math[_0x52cfa8(0x132)](new Date()[_0x52cfa8(0x10c)]()/(0xb5*0x23+0x59*0x67+-0x38a6));const _0x569e98={};_0x569e98[_0x52cfa8(0x108)]=_0x56c344,_0x569e98['Host']=_0x52cfa8(0x186),_0x569e98[_0x52cfa8(0xb8)]=_0x52cfa8(0x127),_0x569e98[_0x52cfa8(0xbb)]=_0x52cfa8(0xe8),_0x569e98[_0x52cfa8(0x107)]=_0x52cfa8(0x171);const _0x118dcf={};_0x118dcf[_0x52cfa8(0x18a)]=_0x213222,_0x118dcf[_0x52cfa8(0xec)]=_0x569e98;let _0xcec98d=_0x118dcf;return _0xcec98d;}async function httpPost(_0x2b9ee3,_0x558e64){return httpResult=null,new Promise(_0x2dd974=>{const _0x3a8ac8=_0xd0bc;$[_0x3a8ac8(0x118)](_0x2b9ee3,async(_0x32ed1b,_0x2ea82f,_0x5b5b53)=>{const _0x30027b=_0x3a8ac8;try{if(_0x32ed1b)console[_0x30027b(0x172)](_0x558e64+_0x30027b(0xbd)),console[_0x30027b(0x172)](JSON[_0x30027b(0x11f)](_0x32ed1b)),$[_0x30027b(0x16a)](_0x32ed1b);else{if(safeGet(_0x5b5b53)){httpResult=JSON[_0x30027b(0x10b)](_0x5b5b53);if(logDebug)console[_0x30027b(0x172)](httpResult);}}}catch(_0x41a04a){$[_0x30027b(0x16a)](_0x41a04a,_0x2ea82f);}finally{_0x2dd974();}});});}async function httpGet(_0x1286bd,_0x63ea){return httpResult=null,new Promise(_0x3fedaa=>{const _0x53b137=_0xd0bc;$[_0x53b137(0x169)](_0x1286bd,async(_0x2a093e,_0x1bcd0d,_0x176285)=>{const _0x3b918f=_0x53b137;try{if(_0x2a093e)console[_0x3b918f(0x172)](_0x63ea+_0x3b918f(0xf6)),console[_0x3b918f(0x172)](JSON[_0x3b918f(0x11f)](_0x2a093e)),$[_0x3b918f(0x16a)](_0x2a093e);else{if(safeGet(_0x176285,_0x63ea)){httpResult=JSON[_0x3b918f(0x10b)](_0x176285);if(logDebug)console[_0x3b918f(0x172)](httpResult);}}}catch(_0x235c53){$[_0x3b918f(0x16a)](_0x235c53,_0x1bcd0d);}finally{_0x3fedaa();}});});}function _0x2f4b(){const _0xe6da5=['MD5','(((.+)+)+)+$','valueForKey','action','11Mhkilh','getDate','getFullYear','本脚本会找出账号ck并检查账号状态是否黑号,默认不执行注销','未找到zqkdAccount','zqkdBlackCookie','6252cadcWB','isSurge','env','Connection','request_time','zqkdCancel','==============📣系统通知📣==============','parse','getTime','redirect','read','https://kandian.wkandian.com/wap/user/balance?','Referer','existsSync','getdata','error_code','9074695LXPJrG','Function\x20','ciphertext','SHA1','post','XMLHttpRequest','access=WIFI&app_name=zqkd_app&app_version=3.6.0&carrier=CMCC&channel=c1031&device_brand=HUAWEI&device_id=56800462&device_model=VOG-AL10&device_platform=android&device_type=android&dpi=240&inner_version=202108181534&language=zh-CN&memory=3&mi=0&mobile=','ckjar','2KkJPSw','box.dat','random','stringify','slice','mock_type','758256ZyCCqu','stateObject','个手机号密码和','zqkey_id','string','VOG-AL10','【历史收益】:','user','https://kandian.wkandian.com/v3/user/mobile/login.json','@chavy_boxjs_userCfgs.httpapi_timeout','把需要检查的账号按照\x20手机号#密码\x20的格式,填到zqkdAccount里,多账号用@隔开','concat','stack','/v1/scripting/evaluate','Content-Length','Utf8','floor','isArray','注销账号','application/x-www-form-urlencoded','function\x20*\x5c(\x20*\x5c)','map','Token','!!!谨慎操作:如果需要注销,请把环境变量zqkdCancel设为1!!!\x0a','reduce','https://kandian.wkandian.com/h5/staticPage/20210816logout/reason.html?access=WIfI&app_version=2.6.1&channel=80000000&device_platform=iphone&device_brand=iphone&device_type=1&sm_device_id=20211010165617354e5c206e3a80e35b12ff9f7b2d32dd01aea6d82201a6f1&device_id=55902582&os_version=15.0&device_model=iPhone%252012&','getval','test','set-cookie','http://','items','counter','&phone_sim=1&request_time=1640060741&resolution=720x1280&rom_version=VOG-AL10-user%207.1.2%20HUAWEIVOG-AL10%20701210917%20release-keys&s_ad=WFbVGOYyXwIo%3DG3RaF-mQ3_hnznzkfvm51kuVs0b3dMvGt&s_im=vYdVi_XPUOzA%3DmY3BxrJj0CkiC9Sa0W1DOA%3D%3DDR&sign=','POST','========================','isQuanX','finally','已黑号,如果需要注销此账号,请把环境变量zqkdCancel设为1','&mobile_type=1&net_type=1&network_type=WIFI&openudid=711ca30d9d3c10b7&os_api=25&os_version=VOG-AL10-user%207.1.2%20HUAWEIVOG-AL10%20701210917%20release-keys&password=','&zqkey=','https://leafxcy.coding.net/p/validcode/d/validCode/git/raw/master/code.json','media-url',':\x20此脚本不做重写,请检查重写设置','join','========================\x0a所有CK:','abs','isNode','timeout','length','decrypt','readFileSync','X-Surge-Skip-Scripting','DES','replace','getMonth','.$1','push','score','send','split','dataFile','getScript','zqkd_check','2280136lsSeyv','exec','openUrl','23543mKHncY','User-Agent','init','assign','lodash_set','get','logErr','write','charAt','\x5c+\x5c+\x20*(?:[a-zA-Z_$][0-9a-zA-Z_$]*)','cwd','cktough','\x20状态\x20--\x20','keep-alive','log','total_score','name','cookieJar','失败:','http','time','writeFileSync','catch','encrypt','例子:export\x20zqkdAccount=\x27110#123456@120#654321\x27','CBC','setValueForKey','null','@chavy_boxjs_userCfgs.httpapi','*/*','statusCode','CookieJar',':\x20未知错误','logSeparator','kandian.wkandian.com','match','nickname','Base64','url','GET','trim','232430ooYtfP','未找到zqkdBlackCookie','path','hints','isLoon','msg','logs','getMilliseconds','mode','status','登录失败:','phone_sim=1request_time=1640060741resolution=720x1280rom_version=VOG-AL10-user\x207.1.2\x20HUAWEIVOG-AL10\x20701210917\x20release-keyss_ad=WFbVGOYyXwIo=G3RaF-mQ3_hnznzkfvm51kuVs0b3dMvGts_im=vYdVi_XPUOzA=mY3BxrJj0CkiC9Sa0W1DOA==DRsm_device_id=20211112123533c490f279d26a934ca445950324c9601a01419a1241729573storage=61.39uid=61373930version_code=63jdvylqchJZrfw0o2DgAbsmCGUapF1YChc','cookie','debu','cron','中青看点检查状态',',\x20开始!','resolve','27cSBfHK','got','access=WIFIapp_name=zqkd_appapp_version=3.6.0carrier=CMCCchannel=c1031device_brand=HUAWEIdevice_id=56800462device_model=VOG-AL10device_platform=androiddevice_type=androiddpi=240inner_version=202108181534language=zh-CNmemory=3mi=0mobile=','36khKLgV','mobile_type=1net_type=1network_type=WIFIopenudid=711ca30d9d3c10b7os_api=25os_version=VOG-AL10-user\x207.1.2\x20HUAWEIVOG-AL10\x20701210917\x20release-keyspassword=','call','uid','apply','820625sevJBW','opts','done','setCookieSync','data','gzip','getMinutes','open-url','device-model','已黑号,准备注销此账号',':\x20服务器访问数据为空,请检查自身设备网络情况','device-platform','undefined',':\x20post请求失败','X-Requested-With','gger','qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM','Cookie','toObj','Hex','script_text','tough-cookie','runScript','Host','setdata','setval','object','uid=','isNeedRewrite','toStr','then','crypto-js','method','constructor','Mozilla/5.0\x20(iPhone;\x20CPU\x20iPhone\x20OS\x2015_0\x20like\x20Mac\x20OS\x20X)\x20AppleWebKit/605.1.15\x20(KHTML,\x20like\x20Gecko)\x20Mobile/15E148','lodash_get','setjson','https://kandian.wkandian.com/WebApi/User/accountCancel?access=WIfI&app_version=2.6.1&channel=80000000&device_platform=iphone&device_brand=iphone&device_type=1&sm_device_id=zzzz&device_id=yyyy&os_version=15.0&device_model=iPhone%252012&','body','&zqkey_id=','Pkcs7','Accept-Encoding',',\x20错误!','message','Content-Type','fetch','substr','wait','\x20查询失败:','1572217oNmuQO','search','zqkdAccount','ldfsyouth','getHours','startTime','isMute','android','4buvdlY','errorMsg','input','headers','initGotEnv','writedata','个账户CK','toString',',\x20结束!\x20🕛\x20','pad','okhttp/3.12.2','loaddata','mediaUrl',':\x20get请求失败','共找到','enc','zqkey'];_0x2f4b=function(){return _0xe6da5;};return _0x2f4b();}function safeGet(_0x45042b,_0x233af5){const _0x2ecf3f=_0x1fc01b;try{if(typeof JSON[_0x2ecf3f(0x10b)](_0x45042b)==_0x2ecf3f(0xca))return!![];else console[_0x2ecf3f(0x172)](_0x2ecf3f(0x115)+_0x233af5+_0x2ecf3f(0x184)),console[_0x2ecf3f(0x172)](_0x45042b);}catch(_0x5b9845){return console[_0x2ecf3f(0x172)](_0x5b9845),console[_0x2ecf3f(0x172)](_0x2ecf3f(0x115)+_0x233af5+_0x2ecf3f(0xba)),![];}}function printCaller(){const _0x42e7e8=_0x1fc01b;return new Error()[_0x42e7e8(0x12e)][_0x42e7e8(0x15d)]('\x0a')[-0x1f29+0xd47+0x394*0x5][_0x42e7e8(0x18c)]()[_0x42e7e8(0x15d)]('\x20')[0x244d+0x11ee+-0x363a];}function getMin(_0xaf8918,_0xc0ab18){return _0xaf8918<_0xc0ab18?_0xaf8918:_0xc0ab18;}function getMax(_0x1db059,_0x336b6f){return _0x1db059<_0x336b6f?_0x336b6f:_0x1db059;}function EncFunc(_0x1512d9){const _0x80c292=_0x1fc01b;var _0x53899f=CryptoJS[_0x80c292(0xf8)][_0x80c292(0x131)][_0x80c292(0x10b)](key),_0x5477ab=CryptoJS[_0x80c292(0xf8)][_0x80c292(0x131)][_0x80c292(0x10b)](key),_0x1e24e2=CryptoJS[_0x80c292(0xf8)][_0x80c292(0x131)][_0x80c292(0x10b)](_0x1512d9);return encrypted=CryptoJS[_0x80c292(0x156)][_0x80c292(0x17b)](_0x1e24e2,_0x53899f,{'iv':_0x5477ab,'mode':CryptoJS[_0x80c292(0x195)][_0x80c292(0x17d)],'padding':CryptoJS[_0x80c292(0xf2)][_0x80c292(0xd8)]}),encrypted[_0x80c292(0x116)][_0x80c292(0xf0)]();}function DecFunc(_0x5aa1a5){const _0x5565bf=_0x1fc01b;var _0x7b69d5=CryptoJS[_0x5565bf(0xf8)][_0x5565bf(0x131)][_0x5565bf(0x10b)](key),_0x2283e1=CryptoJS[_0x5565bf(0xf8)][_0x5565bf(0x131)][_0x5565bf(0x10b)](key),_0x52bf19=CryptoJS[_0x5565bf(0x156)][_0x5565bf(0x153)]({'ciphertext':CryptoJS[_0x5565bf(0xf8)][_0x5565bf(0x189)][_0x5565bf(0x10b)](_0x5aa1a5)},_0x7b69d5,{'iv':_0x2283e1,'mode':CryptoJS[_0x5565bf(0x195)][_0x5565bf(0x17d)],'padding':CryptoJS[_0x5565bf(0xf2)][_0x5565bf(0xd8)]});return _0x52bf19[_0x5565bf(0xf0)](CryptoJS[_0x5565bf(0xf8)][_0x5565bf(0x131)]);}function randomString(_0x11e1d4=0xb*0x6f+-0x1*-0x25fa+-0x2ab3){const _0x43199b=_0x1fc01b;let _0x55be42=_0x43199b(0xc0),_0x21c62c=_0x55be42[_0x43199b(0x152)],_0x4b430b='';for(i=-0x1d68+-0x1877+0x35df;i<_0x11e1d4;i++){_0x4b430b+=_0x55be42[_0x43199b(0x16c)](Math[_0x43199b(0x132)](Math[_0x43199b(0x11e)]()*_0x21c62c));}return _0x4b430b;}function Env(_0x4f681b,_0x1af31b){const _0x1290bf=_0x1fc01b,_0x2f1ec6=(function(){let _0x52df5c=!![];return function(_0x17a496,_0x4ede81){const _0x2d5ba0=_0x52df5c?function(){const _0x1f8dd3=_0xd0bc;if(_0x4ede81){const _0x5e0211=_0x4ede81[_0x1f8dd3(0xaf)](_0x17a496,arguments);return _0x4ede81=null,_0x5e0211;}}:function(){};return _0x52df5c=![],_0x2d5ba0;};}()),_0x2de175=_0x2f1ec6(this,function(){const _0x15dbc0=_0xd0bc;return _0x2de175[_0x15dbc0(0xf0)]()[_0x15dbc0(0xe2)](_0x15dbc0(0xfb))[_0x15dbc0(0xf0)]()[_0x15dbc0(0xd1)](_0x2de175)[_0x15dbc0(0xe2)](_0x15dbc0(0xfb));});_0x2de175();const _0x6d6ab=(function(){let _0x44f5b0=!![];return function(_0x24f98c,_0x4b2fe3){const _0x11e367=_0x44f5b0?function(){const _0x2f2be4=_0xd0bc;if(_0x4b2fe3){const _0x93a902=_0x4b2fe3[_0x2f2be4(0xaf)](_0x24f98c,arguments);return _0x4b2fe3=null,_0x93a902;}}:function(){};return _0x44f5b0=![],_0x11e367;};}());(function(){_0x6d6ab(this,function(){const _0x3feefa=_0xd0bc,_0x41b492=new RegExp(_0x3feefa(0x136)),_0x203758=new RegExp(_0x3feefa(0x16d),'i'),_0x5f15aa=_0xc6bda4(_0x3feefa(0x166));!_0x41b492[_0x3feefa(0x13d)](_0x5f15aa+'chain')||!_0x203758[_0x3feefa(0x13d)](_0x5f15aa+_0x3feefa(0xeb))?_0x5f15aa('0'):_0xc6bda4();})();}());class _0x386e4b{constructor(_0x4757a0){const _0x2abfe7=_0xd0bc;this[_0x2abfe7(0x106)]=_0x4757a0;}[_0x1290bf(0x15c)](_0x570e46,_0x498e8f=_0x1290bf(0x18b)){const _0x459507=_0x1290bf;_0x570e46='string'==typeof _0x570e46?{'url':_0x570e46}:_0x570e46;let _0x12af7a=this[_0x459507(0x169)];return _0x459507(0x143)===_0x498e8f&&(_0x12af7a=this[_0x459507(0x118)]),new Promise((_0x2c05c1,_0x1926a0)=>{const _0x33e055=_0x459507;_0x12af7a[_0x33e055(0xad)](this,_0x570e46,(_0x146e9a,_0x2e9ee0,_0x80f8c7)=>{_0x146e9a?_0x1926a0(_0x146e9a):_0x2c05c1(_0x2e9ee0);});});}[_0x1290bf(0x169)](_0x33e411){const _0x41fbef=_0x1290bf;return this[_0x41fbef(0x15c)][_0x41fbef(0xad)](this[_0x41fbef(0x106)],_0x33e411);}[_0x1290bf(0x118)](_0x14d26d){const _0x509cdb=_0x1290bf;return this[_0x509cdb(0x15c)][_0x509cdb(0xad)](this[_0x509cdb(0x106)],_0x14d26d,_0x509cdb(0x143));}}return new class{constructor(_0x5e9d51,_0x19cf7d){const _0x127a2e=_0x1290bf;this[_0x127a2e(0x174)]=_0x5e9d51,this[_0x127a2e(0x177)]=new _0x386e4b(this),this[_0x127a2e(0xb4)]=null,this[_0x127a2e(0x15e)]=_0x127a2e(0x11d),this[_0x127a2e(0x193)]=[],this[_0x127a2e(0xe7)]=!(-0x2658+0x167c+0xfdd),this[_0x127a2e(0xcc)]=!(0x1*-0x1f11+0x17dc+0x1*0x736),this[_0x127a2e(0x185)]='\x0a',this[_0x127a2e(0xe6)]=new Date()[_0x127a2e(0x10c)](),Object[_0x127a2e(0x167)](this,_0x19cf7d),this[_0x127a2e(0x172)]('','🔔'+this[_0x127a2e(0x174)]+_0x127a2e(0x19d));}[_0x1290bf(0x150)](){const _0x12ef65=_0x1290bf;return _0x12ef65(0xbc)!=typeof module&&!!module['exports'];}['isQuanX'](){const _0x276dc7=_0x1290bf;return _0x276dc7(0xbc)!=typeof $task;}[_0x1290bf(0x105)](){const _0x20c1fc=_0x1290bf;return'undefined'!=typeof $httpClient&&_0x20c1fc(0xbc)==typeof $loon;}[_0x1290bf(0x191)](){const _0x3bcfb3=_0x1290bf;return _0x3bcfb3(0xbc)!=typeof $loon;}[_0x1290bf(0xc2)](_0x18a86e,_0x26165c=null){const _0x58aedb=_0x1290bf;try{return JSON[_0x58aedb(0x10b)](_0x18a86e);}catch{return _0x26165c;}}[_0x1290bf(0xcd)](_0x3f0330,_0x214d96=null){const _0x332d10=_0x1290bf;try{return JSON[_0x332d10(0x11f)](_0x3f0330);}catch{return _0x214d96;}}['getjson'](_0x54303d,_0x3d8fcd){const _0x4235ff=_0x1290bf;let _0xb617b5=_0x3d8fcd;const _0x44735c=this[_0x4235ff(0x112)](_0x54303d);if(_0x44735c)try{_0xb617b5=JSON[_0x4235ff(0x10b)](this[_0x4235ff(0x112)](_0x54303d));}catch{}return _0xb617b5;}[_0x1290bf(0xd4)](_0x4f8419,_0x47a5d3){const _0x5bebd3=_0x1290bf;try{return this[_0x5bebd3(0xc8)](JSON[_0x5bebd3(0x11f)](_0x4f8419),_0x47a5d3);}catch{return!(-0xfd*0x6+-0xa81+-0x2*-0x838);}}[_0x1290bf(0x15f)](_0x316e2e){return new Promise(_0x3ebfd3=>{const _0x2d3e0b=_0xd0bc,_0xdf6736={};_0xdf6736[_0x2d3e0b(0x18a)]=_0x316e2e,this[_0x2d3e0b(0x169)](_0xdf6736,(_0x25cbcb,_0x215106,_0x2c335e)=>_0x3ebfd3(_0x2c335e));});}[_0x1290bf(0xc6)](_0x558049,_0x220bc1){const _0x13576c=_0x1290bf;return new Promise(_0x49cac4=>{const _0x16b99e=_0xd0bc;let _0x2929c7=this[_0x16b99e(0x112)](_0x16b99e(0x180));_0x2929c7=_0x2929c7?_0x2929c7[_0x16b99e(0x157)](/\n/g,'')[_0x16b99e(0x18c)]():_0x2929c7;let _0x43b38e=this[_0x16b99e(0x112)](_0x16b99e(0x12b));_0x43b38e=_0x43b38e?(-0x3*-0x955+-0xcbc+0xe*-0x117)*_0x43b38e:-0x759+-0x4*-0x425+-0x3*0x30d,_0x43b38e=_0x220bc1&&_0x220bc1[_0x16b99e(0x151)]?_0x220bc1[_0x16b99e(0x151)]:_0x43b38e;const _0x257cdf={};_0x257cdf[_0x16b99e(0xc4)]=_0x558049,_0x257cdf[_0x16b99e(0x121)]=_0x16b99e(0x19b),_0x257cdf[_0x16b99e(0x151)]=_0x43b38e;const [_0xd2ed68,_0x4c10b7]=_0x2929c7[_0x16b99e(0x15d)]('@'),_0x23c728={'url':_0x16b99e(0x13f)+_0x4c10b7+_0x16b99e(0x12f),'body':_0x257cdf,'headers':{'X-Key':_0xd2ed68,'Accept':_0x16b99e(0x181)}};this[_0x16b99e(0x118)](_0x23c728,(_0x2f8daa,_0x271f62,_0x2b627d)=>_0x49cac4(_0x2b627d));})[_0x13576c(0x17a)](_0x233f7e=>this[_0x13576c(0x16a)](_0x233f7e));}[_0x1290bf(0xf4)](){const _0x7f57b2=_0x1290bf;if(!this[_0x7f57b2(0x150)]())return{};{this['fs']=this['fs']?this['fs']:require('fs'),this[_0x7f57b2(0x18f)]=this[_0x7f57b2(0x18f)]?this[_0x7f57b2(0x18f)]:require('path');const _0x4f8e0d=this[_0x7f57b2(0x18f)][_0x7f57b2(0x19e)](this[_0x7f57b2(0x15e)]),_0x163938=this[_0x7f57b2(0x18f)][_0x7f57b2(0x19e)](process[_0x7f57b2(0x16e)](),this[_0x7f57b2(0x15e)]),_0x43488c=this['fs'][_0x7f57b2(0x111)](_0x4f8e0d),_0x4df5d9=!_0x43488c&&this['fs'][_0x7f57b2(0x111)](_0x163938);if(!_0x43488c&&!_0x4df5d9)return{};{const _0x3f8d64=_0x43488c?_0x4f8e0d:_0x163938;try{return JSON[_0x7f57b2(0x10b)](this['fs'][_0x7f57b2(0x154)](_0x3f8d64));}catch(_0x31f530){return{};}}}}[_0x1290bf(0xee)](){const _0x255cd6=_0x1290bf;if(this[_0x255cd6(0x150)]()){this['fs']=this['fs']?this['fs']:require('fs'),this[_0x255cd6(0x18f)]=this[_0x255cd6(0x18f)]?this[_0x255cd6(0x18f)]:require('path');const _0x480264=this[_0x255cd6(0x18f)][_0x255cd6(0x19e)](this[_0x255cd6(0x15e)]),_0x49f4bd=this[_0x255cd6(0x18f)][_0x255cd6(0x19e)](process[_0x255cd6(0x16e)](),this[_0x255cd6(0x15e)]),_0x370d65=this['fs'][_0x255cd6(0x111)](_0x480264),_0x4184d5=!_0x370d65&&this['fs'][_0x255cd6(0x111)](_0x49f4bd),_0x244990=JSON[_0x255cd6(0x11f)](this['data']);_0x370d65?this['fs'][_0x255cd6(0x179)](_0x480264,_0x244990):_0x4184d5?this['fs']['writeFileSync'](_0x49f4bd,_0x244990):this['fs'][_0x255cd6(0x179)](_0x480264,_0x244990);}}[_0x1290bf(0xd3)](_0x13320e,_0x37a16f,_0x45d9e7){const _0x2e33f5=_0x1290bf,_0xf9f696=_0x37a16f[_0x2e33f5(0x157)](/\[(\d+)\]/g,_0x2e33f5(0x159))[_0x2e33f5(0x15d)]('.');let _0x229250=_0x13320e;for(const _0x595cb1 of _0xf9f696)if(_0x229250=Object(_0x229250)[_0x595cb1],void(-0x1fe0+0x1e6b*-0x1+0x3e4b)===_0x229250)return _0x45d9e7;return _0x229250;}[_0x1290bf(0x168)](_0x3129cb,_0x4280ba,_0x495f2d){const _0x42b887=_0x1290bf;return Object(_0x3129cb)!==_0x3129cb?_0x3129cb:(Array[_0x42b887(0x133)](_0x4280ba)||(_0x4280ba=_0x4280ba[_0x42b887(0xf0)]()[_0x42b887(0x187)](/[^.[\]]+/g)||[]),_0x4280ba[_0x42b887(0x120)](0x192b*-0x1+-0x826+0x2151,-(0x10a*0x1+-0x733+0x62a))[_0x42b887(0x13a)]((_0x557ac5,_0xcfb0,_0x20b381)=>Object(_0x557ac5[_0xcfb0])===_0x557ac5[_0xcfb0]?_0x557ac5[_0xcfb0]:_0x557ac5[_0xcfb0]=Math[_0x42b887(0x14f)](_0x4280ba[_0x20b381+(0x21a+0x89*0x17+0x8*-0x1cd)])>>-0x55+-0x115a+0x11af*0x1==+_0x4280ba[_0x20b381+(-0x1693+0x1eca+-0x2*0x41b)]?[]:{},_0x3129cb)[_0x4280ba[_0x4280ba[_0x42b887(0x152)]-(-0x1*-0xae+-0x482+0x3d5)]]=_0x495f2d,_0x3129cb);}[_0x1290bf(0x112)](_0x591faf){const _0x355990=_0x1290bf;let _0x2d8cf0=this[_0x355990(0x13c)](_0x591faf);if(/^@/[_0x355990(0x13d)](_0x591faf)){const [,_0xb23ed9,_0x421132]=/^@(.*?)\.(.*?)$/['exec'](_0x591faf),_0x3dbeac=_0xb23ed9?this[_0x355990(0x13c)](_0xb23ed9):'';if(_0x3dbeac)try{const _0x13d3bd=JSON[_0x355990(0x10b)](_0x3dbeac);_0x2d8cf0=_0x13d3bd?this[_0x355990(0xd3)](_0x13d3bd,_0x421132,''):_0x2d8cf0;}catch(_0x549561){_0x2d8cf0='';}}return _0x2d8cf0;}[_0x1290bf(0xc8)](_0x352ff2,_0x131693){const _0x1e5514=_0x1290bf;let _0x11cc19=!(-0x659+-0x1b7*0xe+0x1e5c);if(/^@/[_0x1e5514(0x13d)](_0x131693)){const [,_0x34ebe5,_0x193655]=/^@(.*?)\.(.*?)$/[_0x1e5514(0x162)](_0x131693),_0x483ffe=this[_0x1e5514(0x13c)](_0x34ebe5),_0x2e920=_0x34ebe5?_0x1e5514(0x17f)===_0x483ffe?null:_0x483ffe||'{}':'{}';try{const _0x574e7d=JSON[_0x1e5514(0x10b)](_0x2e920);this[_0x1e5514(0x168)](_0x574e7d,_0x193655,_0x352ff2),_0x11cc19=this[_0x1e5514(0xc9)](JSON[_0x1e5514(0x11f)](_0x574e7d),_0x34ebe5);}catch(_0x5c972a){const _0x363b69={};this[_0x1e5514(0x168)](_0x363b69,_0x193655,_0x352ff2),_0x11cc19=this['setval'](JSON[_0x1e5514(0x11f)](_0x363b69),_0x34ebe5);}}else _0x11cc19=this[_0x1e5514(0xc9)](_0x352ff2,_0x131693);return _0x11cc19;}[_0x1290bf(0x13c)](_0x153f17){const _0x23be75=_0x1290bf;return this[_0x23be75(0x105)]()||this[_0x23be75(0x191)]()?$persistentStore[_0x23be75(0x10e)](_0x153f17):this[_0x23be75(0x145)]()?$prefs[_0x23be75(0xfc)](_0x153f17):this[_0x23be75(0x150)]()?(this[_0x23be75(0xb4)]=this[_0x23be75(0xf4)](),this[_0x23be75(0xb4)][_0x153f17]):this[_0x23be75(0xb4)]&&this[_0x23be75(0xb4)][_0x153f17]||null;}[_0x1290bf(0xc9)](_0xfed1e2,_0x1f7f2f){const _0x4d0215=_0x1290bf;return this[_0x4d0215(0x105)]()||this[_0x4d0215(0x191)]()?$persistentStore[_0x4d0215(0x16b)](_0xfed1e2,_0x1f7f2f):this[_0x4d0215(0x145)]()?$prefs[_0x4d0215(0x17e)](_0xfed1e2,_0x1f7f2f):this[_0x4d0215(0x150)]()?(this['data']=this[_0x4d0215(0xf4)](),this[_0x4d0215(0xb4)][_0x1f7f2f]=_0xfed1e2,this[_0x4d0215(0xee)](),!(0x13*-0xdf+-0xe5c*0x2+-0xf17*-0x3)):this[_0x4d0215(0xb4)]&&this[_0x4d0215(0xb4)][_0x1f7f2f]||null;}[_0x1290bf(0xed)](_0x5b75c5){const _0x2adb5d=_0x1290bf;this[_0x2adb5d(0xa9)]=this[_0x2adb5d(0xa9)]?this[_0x2adb5d(0xa9)]:require(_0x2adb5d(0xa9)),this[_0x2adb5d(0x16f)]=this[_0x2adb5d(0x16f)]?this[_0x2adb5d(0x16f)]:require(_0x2adb5d(0xc5)),this[_0x2adb5d(0x11b)]=this[_0x2adb5d(0x11b)]?this[_0x2adb5d(0x11b)]:new this[(_0x2adb5d(0x16f))][(_0x2adb5d(0x183))](),_0x5b75c5&&(_0x5b75c5[_0x2adb5d(0xec)]=_0x5b75c5[_0x2adb5d(0xec)]?_0x5b75c5[_0x2adb5d(0xec)]:{},void(-0x984+-0x3af+0xd33)===_0x5b75c5[_0x2adb5d(0xec)][_0x2adb5d(0xc1)]&&void(-0x127f*-0x1+0x1*-0x2185+0xf06)===_0x5b75c5[_0x2adb5d(0x175)]&&(_0x5b75c5[_0x2adb5d(0x175)]=this[_0x2adb5d(0x11b)]));}[_0x1290bf(0x169)](_0x5a17e0,_0x3077ea=()=>{}){const _0x22d481=_0x1290bf,_0x4ebbc0={};_0x4ebbc0[_0x22d481(0x155)]=!(0xf1b+0x1f*0x116+-0x30c4);const _0x4c5ba0={};_0x4c5ba0[_0x22d481(0x190)]=!(-0x2669+-0x2*0x2cd+0x2c04),(_0x5a17e0[_0x22d481(0xec)]&&(delete _0x5a17e0['headers'][_0x22d481(0xdc)],delete _0x5a17e0[_0x22d481(0xec)][_0x22d481(0x130)]),this[_0x22d481(0x105)]()||this[_0x22d481(0x191)]()?(this[_0x22d481(0x105)]()&&this[_0x22d481(0xcc)]&&(_0x5a17e0['headers']=_0x5a17e0[_0x22d481(0xec)]||{},Object[_0x22d481(0x167)](_0x5a17e0[_0x22d481(0xec)],_0x4ebbc0)),$httpClient[_0x22d481(0x169)](_0x5a17e0,(_0x2a678e,_0x353ecc,_0x5ae124)=>{const _0x276d88=_0x22d481;!_0x2a678e&&_0x353ecc&&(_0x353ecc[_0x276d88(0xd6)]=_0x5ae124,_0x353ecc[_0x276d88(0x182)]=_0x353ecc[_0x276d88(0x196)]),_0x3077ea(_0x2a678e,_0x353ecc,_0x5ae124);})):this[_0x22d481(0x145)]()?(this[_0x22d481(0xcc)]&&(_0x5a17e0[_0x22d481(0xb1)]=_0x5a17e0[_0x22d481(0xb1)]||{},Object[_0x22d481(0x167)](_0x5a17e0[_0x22d481(0xb1)],_0x4c5ba0)),$task[_0x22d481(0xdd)](_0x5a17e0)[_0x22d481(0xce)](_0x5b985f=>{const _0x1a4275=_0x22d481,{statusCode:_0x29506d,statusCode:_0x2318b6,headers:_0x562fbf,body:_0x3f6b63}=_0x5b985f,_0x2baba0={};_0x2baba0[_0x1a4275(0x196)]=_0x29506d,_0x2baba0[_0x1a4275(0x182)]=_0x2318b6,_0x2baba0[_0x1a4275(0xec)]=_0x562fbf,_0x2baba0[_0x1a4275(0xd6)]=_0x3f6b63,_0x3077ea(null,_0x2baba0,_0x3f6b63);},_0x1b30a4=>_0x3077ea(_0x1b30a4))):this[_0x22d481(0x150)]()&&(this[_0x22d481(0xed)](_0x5a17e0),this[_0x22d481(0xa9)](_0x5a17e0)['on'](_0x22d481(0x10d),(_0x58be4c,_0xb1f386)=>{const _0x2d8441=_0x22d481;try{if(_0x58be4c[_0x2d8441(0xec)][_0x2d8441(0x13e)]){const _0x2cf3f3=_0x58be4c[_0x2d8441(0xec)][_0x2d8441(0x13e)][_0x2d8441(0x137)](this[_0x2d8441(0x16f)][_0x2d8441(0xc1)][_0x2d8441(0x10b)])[_0x2d8441(0xf0)]();this[_0x2d8441(0x11b)][_0x2d8441(0xb3)](_0x2cf3f3,null),_0xb1f386[_0x2d8441(0x175)]=this[_0x2d8441(0x11b)];}}catch(_0x556278){this[_0x2d8441(0x16a)](_0x556278);}})[_0x22d481(0xce)](_0x10feee=>{const _0x4eb428=_0x22d481,{statusCode:_0x186e06,statusCode:_0x3207ba,headers:_0xcee56a,body:_0x36f8d9}=_0x10feee,_0x1bd4d4={};_0x1bd4d4[_0x4eb428(0x196)]=_0x186e06,_0x1bd4d4[_0x4eb428(0x182)]=_0x3207ba,_0x1bd4d4[_0x4eb428(0xec)]=_0xcee56a,_0x1bd4d4[_0x4eb428(0xd6)]=_0x36f8d9,_0x3077ea(null,_0x1bd4d4,_0x36f8d9);},_0x53ecfe=>{const _0x1b9655=_0x22d481,{message:_0x35283d,response:_0x489b1c}=_0x53ecfe;_0x3077ea(_0x35283d,_0x489b1c,_0x489b1c&&_0x489b1c[_0x1b9655(0xd6)]);})));}[_0x1290bf(0x118)](_0x4454a1,_0x2448b7=()=>{}){const _0x1a726a=_0x1290bf,_0x4bc268={};_0x4bc268[_0x1a726a(0x155)]=!(-0x1e92+0x1*0x1e2f+0x32*0x2);const _0x390a61={};_0x390a61[_0x1a726a(0x190)]=!(-0x68b+0x1*-0x1863+0x1eef);if(_0x4454a1[_0x1a726a(0xd6)]&&_0x4454a1[_0x1a726a(0xec)]&&!_0x4454a1[_0x1a726a(0xec)][_0x1a726a(0xdc)]&&(_0x4454a1[_0x1a726a(0xec)][_0x1a726a(0xdc)]=_0x1a726a(0x135)),_0x4454a1[_0x1a726a(0xec)]&&delete _0x4454a1[_0x1a726a(0xec)][_0x1a726a(0x130)],this[_0x1a726a(0x105)]()||this[_0x1a726a(0x191)]())this[_0x1a726a(0x105)]()&&this[_0x1a726a(0xcc)]&&(_0x4454a1[_0x1a726a(0xec)]=_0x4454a1[_0x1a726a(0xec)]||{},Object[_0x1a726a(0x167)](_0x4454a1[_0x1a726a(0xec)],_0x4bc268)),$httpClient[_0x1a726a(0x118)](_0x4454a1,(_0x59a31e,_0x440418,_0x4e7181)=>{const _0x359e0b=_0x1a726a;!_0x59a31e&&_0x440418&&(_0x440418[_0x359e0b(0xd6)]=_0x4e7181,_0x440418[_0x359e0b(0x182)]=_0x440418[_0x359e0b(0x196)]),_0x2448b7(_0x59a31e,_0x440418,_0x4e7181);});else{if(this[_0x1a726a(0x145)]())_0x4454a1[_0x1a726a(0xd0)]=_0x1a726a(0x143),this[_0x1a726a(0xcc)]&&(_0x4454a1[_0x1a726a(0xb1)]=_0x4454a1[_0x1a726a(0xb1)]||{},Object[_0x1a726a(0x167)](_0x4454a1[_0x1a726a(0xb1)],_0x390a61)),$task[_0x1a726a(0xdd)](_0x4454a1)[_0x1a726a(0xce)](_0x39e76a=>{const _0x15542c=_0x1a726a,{statusCode:_0xb76a95,statusCode:_0x1ed400,headers:_0x45ebbb,body:_0x3f6284}=_0x39e76a,_0xdbe630={};_0xdbe630[_0x15542c(0x196)]=_0xb76a95,_0xdbe630[_0x15542c(0x182)]=_0x1ed400,_0xdbe630[_0x15542c(0xec)]=_0x45ebbb,_0xdbe630[_0x15542c(0xd6)]=_0x3f6284,_0x2448b7(null,_0xdbe630,_0x3f6284);},_0x44291c=>_0x2448b7(_0x44291c));else{if(this[_0x1a726a(0x150)]()){this[_0x1a726a(0xed)](_0x4454a1);const {url:_0x442800,..._0x5bd9f9}=_0x4454a1;this[_0x1a726a(0xa9)][_0x1a726a(0x118)](_0x442800,_0x5bd9f9)[_0x1a726a(0xce)](_0x125403=>{const _0x3d6b9e=_0x1a726a,{statusCode:_0x188607,statusCode:_0x14a8a5,headers:_0x11930e,body:_0x43dc61}=_0x125403,_0x1ee4fe={};_0x1ee4fe[_0x3d6b9e(0x196)]=_0x188607,_0x1ee4fe[_0x3d6b9e(0x182)]=_0x14a8a5,_0x1ee4fe[_0x3d6b9e(0xec)]=_0x11930e,_0x1ee4fe[_0x3d6b9e(0xd6)]=_0x43dc61,_0x2448b7(null,_0x1ee4fe,_0x43dc61);},_0x5aab4f=>{const _0x2a991e=_0x1a726a,{message:_0x3c37c2,response:_0x33fca0}=_0x5aab4f;_0x2448b7(_0x3c37c2,_0x33fca0,_0x33fca0&&_0x33fca0[_0x2a991e(0xd6)]);});}}}}[_0x1290bf(0x178)](_0x1864f6){const _0x1214cb=_0x1290bf;let _0x57e908={'M+':new Date()[_0x1214cb(0x158)]()+(-0x1b4f+-0xd00+0x2850),'d+':new Date()[_0x1214cb(0xff)](),'H+':new Date()[_0x1214cb(0xe5)](),'m+':new Date()[_0x1214cb(0xb6)](),'s+':new Date()['getSeconds'](),'q+':Math[_0x1214cb(0x132)]((new Date()[_0x1214cb(0x158)]()+(-0x12b5+0xb73*-0x3+0xa9d*0x5))/(0x7d5*-0x2+-0x518+0x14c5)),'S':new Date()[_0x1214cb(0x194)]()};/(y+)/[_0x1214cb(0x13d)](_0x1864f6)&&(_0x1864f6=_0x1864f6[_0x1214cb(0x157)](RegExp['$1'],(new Date()[_0x1214cb(0x100)]()+'')[_0x1214cb(0xde)](0x1*0x1a73+0x2*0x1215+0x281*-0x19-RegExp['$1'][_0x1214cb(0x152)])));for(let _0x442416 in _0x57e908)new RegExp('('+_0x442416+')')[_0x1214cb(0x13d)](_0x1864f6)&&(_0x1864f6=_0x1864f6[_0x1214cb(0x157)](RegExp['$1'],-0x223c+-0x2439+0x4676==RegExp['$1'][_0x1214cb(0x152)]?_0x57e908[_0x442416]:('00'+_0x57e908[_0x442416])[_0x1214cb(0xde)]((''+_0x57e908[_0x442416])[_0x1214cb(0x152)])));return _0x1864f6;}[_0x1290bf(0x192)](_0x1580c0=_0x4f681b,_0x5df552='',_0x3695cc='',_0x39390a){const _0x49edb2=_0x1290bf,_0x1c2179=_0x168f76=>{const _0x43bca7=_0xd0bc;if(!_0x168f76)return _0x168f76;if(_0x43bca7(0x126)==typeof _0x168f76)return this[_0x43bca7(0x191)]()?_0x168f76:this[_0x43bca7(0x145)]()?{'open-url':_0x168f76}:this[_0x43bca7(0x105)]()?{'url':_0x168f76}:void(0x330+0x1ad9+-0x1e09);if(_0x43bca7(0xca)==typeof _0x168f76){if(this[_0x43bca7(0x191)]()){let _0x25eb42=_0x168f76[_0x43bca7(0x163)]||_0x168f76[_0x43bca7(0x18a)]||_0x168f76[_0x43bca7(0xb7)],_0x157399=_0x168f76[_0x43bca7(0xf5)]||_0x168f76[_0x43bca7(0x14b)];const _0x252fe4={};return _0x252fe4[_0x43bca7(0x163)]=_0x25eb42,_0x252fe4[_0x43bca7(0xf5)]=_0x157399,_0x252fe4;}if(this[_0x43bca7(0x145)]()){let _0x3e291b=_0x168f76[_0x43bca7(0xb7)]||_0x168f76[_0x43bca7(0x18a)]||_0x168f76[_0x43bca7(0x163)],_0x28ded7=_0x168f76[_0x43bca7(0x14b)]||_0x168f76[_0x43bca7(0xf5)];const _0x44dd1b={};return _0x44dd1b[_0x43bca7(0xb7)]=_0x3e291b,_0x44dd1b[_0x43bca7(0x14b)]=_0x28ded7,_0x44dd1b;}if(this[_0x43bca7(0x105)]()){let _0x576bb7=_0x168f76[_0x43bca7(0x18a)]||_0x168f76[_0x43bca7(0x163)]||_0x168f76[_0x43bca7(0xb7)];const _0x3fcb16={};return _0x3fcb16[_0x43bca7(0x18a)]=_0x576bb7,_0x3fcb16;}}};this[_0x49edb2(0xe7)]||(this[_0x49edb2(0x105)]()||this[_0x49edb2(0x191)]()?$notification[_0x49edb2(0x118)](_0x1580c0,_0x5df552,_0x3695cc,_0x1c2179(_0x39390a)):this[_0x49edb2(0x145)]()&&$notify(_0x1580c0,_0x5df552,_0x3695cc,_0x1c2179(_0x39390a)));let _0x541aa4=['',_0x49edb2(0x10a)];_0x541aa4[_0x49edb2(0x15a)](_0x1580c0),_0x5df552&&_0x541aa4[_0x49edb2(0x15a)](_0x5df552),_0x3695cc&&_0x541aa4['push'](_0x3695cc),console[_0x49edb2(0x172)](_0x541aa4[_0x49edb2(0x14d)]('\x0a')),this[_0x49edb2(0x193)]=this[_0x49edb2(0x193)][_0x49edb2(0x12d)](_0x541aa4);}[_0x1290bf(0x172)](..._0x59e855){const _0x508b4c=_0x1290bf;_0x59e855[_0x508b4c(0x152)]>-0x191e+0x1f19+-0x5fb&&(this[_0x508b4c(0x193)]=[...this[_0x508b4c(0x193)],..._0x59e855]),console[_0x508b4c(0x172)](_0x59e855[_0x508b4c(0x14d)](this[_0x508b4c(0x185)]));}[_0x1290bf(0x16a)](_0x39a3dd,_0x18f429){const _0x5ea048=_0x1290bf,_0x33ec5e=!this[_0x5ea048(0x105)]()&&!this[_0x5ea048(0x145)]()&&!this[_0x5ea048(0x191)]();_0x33ec5e?this[_0x5ea048(0x172)]('','❗️'+this[_0x5ea048(0x174)]+_0x5ea048(0xda),_0x39a3dd[_0x5ea048(0x12e)]):this[_0x5ea048(0x172)]('','❗️'+this['name']+_0x5ea048(0xda),_0x39a3dd);}[_0x1290bf(0xdf)](_0x5b72e0){return new Promise(_0x10f08f=>setTimeout(_0x10f08f,_0x5b72e0));}[_0x1290bf(0xb2)](_0xc1ff89={}){const _0x5a7ee0=_0x1290bf,_0x5b4c35=new Date()['getTime'](),_0x523a22=(_0x5b4c35-this[_0x5a7ee0(0xe6)])/(-0x1e9*-0x1+0x1528+-0x1329);this[_0x5a7ee0(0x172)]('','🔔'+this[_0x5a7ee0(0x174)]+_0x5a7ee0(0xf1)+_0x523a22+'\x20秒'),this[_0x5a7ee0(0x172)](),(this[_0x5a7ee0(0x105)]()||this[_0x5a7ee0(0x145)]()||this[_0x5a7ee0(0x191)]())&&$done(_0xc1ff89);}}(_0x4f681b,_0x1af31b);}function _0xc6bda4(_0x177a75){function _0x3291ba(_0x54d258){const _0x7e1478=_0xd0bc;if(typeof _0x54d258===_0x7e1478(0x126))return function(_0xa879dc){}[_0x7e1478(0xd1)]('while\x20(true)\x20{}')[_0x7e1478(0xaf)](_0x7e1478(0x141));else(''+_0x54d258/_0x54d258)[_0x7e1478(0x152)]!==0x480+-0x4*0x781+0x1985||_0x54d258%(0x1*0x9ff+0x1*-0xc0b+0x4*0x88)===0x3e*-0x28+-0x1025*-0x1+-0x675?function(){return!![];}[_0x7e1478(0xd1)](_0x7e1478(0x19a)+_0x7e1478(0xbf))[_0x7e1478(0xad)](_0x7e1478(0xfd)):function(){return![];}[_0x7e1478(0xd1)](_0x7e1478(0x19a)+_0x7e1478(0xbf))[_0x7e1478(0xaf)](_0x7e1478(0x123));_0x3291ba(++_0x54d258);}try{if(_0x177a75)return _0x3291ba;else _0x3291ba(0xcfe+0x1*-0x91d+-0x3e1);}catch(_0x1d8b1b){}} \ No newline at end of file +const _0x3c3db2=_0x2bd7;(function(_0x160349,_0x1a6441){const _0x49a870=_0x2bd7,_0x465d90=_0x160349();while(!![]){try{const _0x5e2f02=parseInt(_0x49a870(0x252))/(-0x1799+0x1304+0x496)*(-parseInt(_0x49a870(0x301))/(-0x16*-0x136+-0x2b*-0x11+-0x1*0x1d7d))+parseInt(_0x49a870(0x2d8))/(-0x2617+0xc5b*0x3+0x109)+-parseInt(_0x49a870(0x1ec))/(-0x2*0x1269+-0x2046+0x451c)+-parseInt(_0x49a870(0x3cd))/(0x1*-0xe51+-0x981*-0x3+-0x13*0xbf)*(parseInt(_0x49a870(0x1c4))/(-0x1*0x231b+0x1627+0x97*0x16))+parseInt(_0x49a870(0x3d2))/(0x1*0x2d1+0x17*-0xe6+0x1a0*0xb)*(-parseInt(_0x49a870(0x211))/(-0x14ff+0x2194+-0xc8d))+parseInt(_0x49a870(0x3fa))/(-0x1f29*0x1+0x96*0x1f+0xd08)*(parseInt(_0x49a870(0x3da))/(0x425*-0x5+-0x41*0x40+0x2503))+parseInt(_0x49a870(0x37f))/(0xb23*0x2+0x1d*-0x157+0x10a0)*(parseInt(_0x49a870(0x2b5))/(0x2+-0x42d+0x437));if(_0x5e2f02===_0x1a6441)break;else _0x465d90['push'](_0x465d90['shift']());}catch(_0x376da0){_0x465d90['push'](_0x465d90['shift']());}}}(_0x45e4,-0x98a3a+0x74ad2+0x72bcd));const jsname=_0x3c3db2(0x387),$=Env(jsname),logDebug=0x9c0+0xb37*-0x1+0x177;let rndtime='',httpResult;var CryptoJS=require('crypto-js');let userAccount=($[_0x3c3db2(0x25c)]()?process[_0x3c3db2(0x419)][_0x3c3db2(0x3f3)]:$[_0x3c3db2(0x1bc)](_0x3c3db2(0x3f3)))||'',userAccountArr=[],userCookie=($[_0x3c3db2(0x25c)]()?process[_0x3c3db2(0x419)][_0x3c3db2(0x265)]:$[_0x3c3db2(0x1bc)]('zqkdBlackCookie'))||'',userCookieArr=[],needCancel=($['isNode']()?process[_0x3c3db2(0x419)][_0x3c3db2(0x2b9)]:$[_0x3c3db2(0x1bc)](_0x3c3db2(0x2b9)))||-0x76*-0x32+0x12*0x8d+-0x20f6;setInterval(function(){const _0x2b8763=_0x3c3db2,_0x19b30f={'bDVyu':function(_0x3257b6){return _0x3257b6();}};_0x19b30f[_0x2b8763(0x2bc)](_0xd5a0b3);},0xa8*0x1b+0x96d+-0x1*0xb85);function _0x2bd7(_0xabd143,_0x3396d5){const _0x270afa=_0x45e4();return _0x2bd7=function(_0x45e4f8,_0x2bd7ae){_0x45e4f8=_0x45e4f8-(0x2e1+0x1ecf+-0x3*0xaad);let _0x443d8a=_0x270afa[_0x45e4f8];return _0x443d8a;},_0x2bd7(_0xabd143,_0x3396d5);}let codeName=_0x3c3db2(0x3f6),validCode=![],ckList=[],cancelList=[];!(async()=>{const _0x26d37f=_0x3c3db2,_0x10a9f4={'VaqOw':function(_0x59ab83,_0x300c63){return _0x59ab83!==_0x300c63;},'sXtfe':function(_0x466d01,_0x3193fa){return _0x466d01+_0x3193fa;},'YadJk':_0x26d37f(0x2cf),'Yssar':function(_0x5949d8){return _0x5949d8();},'iFFGl':function(_0x4b1ee7,_0x810c1b){return _0x4b1ee7==_0x810c1b;},'ycdwY':_0x26d37f(0x39c),'LTgIE':_0x26d37f(0x3a0),'LbTRl':_0x26d37f(0x280),'FdBjA':_0x26d37f(0x3d0),'qDsWH':function(_0x28f306){return _0x28f306();},'tftTS':function(_0x4f5596,_0x5ac7ef){return _0x4f5596<_0x5ac7ef;},'lTceN':function(_0xc02004,_0x53d62d){return _0xc02004+_0x53d62d;},'vMttg':function(_0x5e1ac2,_0x224e74,_0x9a1525,_0x4db3e5){return _0x5e1ac2(_0x224e74,_0x9a1525,_0x4db3e5);},'hIfDV':function(_0x59934b,_0x2cfd2e){return _0x59934b>_0x2cfd2e;},'ukQDF':_0x26d37f(0x31d)};if(_0x10a9f4[_0x26d37f(0x247)](typeof $request,_0x26d37f(0x2af)))$[_0x26d37f(0x355)](_0x10a9f4[_0x26d37f(0x1d0)](jsname,_0x10a9f4[_0x26d37f(0x1f2)]));else{await _0x10a9f4[_0x26d37f(0x1c2)](isValidCode);if(_0x10a9f4[_0x26d37f(0x34b)](validCode,![]))return;console[_0x26d37f(0x2a1)](_0x10a9f4[_0x26d37f(0x3c4)]),console['log'](_0x10a9f4[_0x26d37f(0x37c)]),console[_0x26d37f(0x2a1)](_0x10a9f4[_0x26d37f(0x2c4)]),console[_0x26d37f(0x2a1)](_0x10a9f4[_0x26d37f(0x329)]);if(!await _0x10a9f4[_0x26d37f(0x1ca)](checkEnv))return;for(let _0x3d7254 of userAccountArr){let _0x5abf70=_0x3d7254[_0x26d37f(0x373)]('#');if(_0x10a9f4[_0x26d37f(0x392)](_0x5abf70[_0x26d37f(0x352)],-0x926+-0xd*-0x137+0x6a3*-0x1))continue;let _0x180ede=_0x5abf70[-0x1*0x10d5+-0x4*-0x137+-0x265*-0x5],_0x2d9b77=_0x5abf70[-0x707+0x1390+-0xc88],_0x2e3b21=CryptoJS[_0x26d37f(0x2a2)](_0x2d9b77)[_0x26d37f(0x23b)](CryptoJS[_0x26d37f(0x3aa)][_0x26d37f(0x39a)]),_0x198cdc=CryptoJS[_0x26d37f(0x34e)](_0x10a9f4[_0x26d37f(0x283)](_0x2e3b21,_0x26d37f(0x36a)))[_0x26d37f(0x23b)](CryptoJS[_0x26d37f(0x3aa)][_0x26d37f(0x39a)]),_0x5c7e0a=_0x26d37f(0x337)+_0x180ede+_0x26d37f(0x3b7)+_0x198cdc+_0x26d37f(0x3db),_0x420c35=CryptoJS[_0x26d37f(0x34e)](_0x5c7e0a)['toString'](CryptoJS[_0x26d37f(0x3aa)][_0x26d37f(0x39a)]);await _0x10a9f4[_0x26d37f(0x207)](Login,_0x180ede,_0x198cdc,_0x420c35);}for(let _0x34882b of userCookieArr){await getBalance(_0x34882b);}if(_0x10a9f4[_0x26d37f(0x1ab)](ckList[_0x26d37f(0x352)],0x25ff+0x10*-0x1af+-0xb0f)){console[_0x26d37f(0x2a1)](_0x10a9f4[_0x26d37f(0x309)]);let _0x5555e4=ckList[_0x26d37f(0x3e4)]('@');console[_0x26d37f(0x2a1)](_0x5555e4);}}})()[_0x3c3db2(0x375)](_0x379859=>$[_0x3c3db2(0x264)](_0x379859))[_0x3c3db2(0x1cb)](()=>$[_0x3c3db2(0x24a)]());async function isValidCode(){const _0x3d6260=_0x3c3db2,_0x41ca8c={'xOXFd':function(_0xd383c6){return _0xd383c6();},'qDJBm':function(_0x3c86f9,_0x36a948){return _0x3c86f9===_0x36a948;},'wNOCZ':_0x3d6260(0x376),'BWwyr':function(_0x31d2ad,_0x56b390){return _0x31d2ad==_0x56b390;},'QiSFl':function(_0x38e108,_0x3af61e){return _0x38e108===_0x3af61e;},'noBnw':_0x3d6260(0x246),'JnXOb':function(_0x49282c,_0x19b52b){return _0x49282c!==_0x19b52b;},'gFlnk':_0x3d6260(0x422),'MUKil':function(_0x5e0cfe,_0x39b3e7){return _0x5e0cfe===_0x39b3e7;},'RKZHF':_0x3d6260(0x324),'SKQNU':function(_0x480cc2){return _0x480cc2();},'lCAsH':_0x3d6260(0x3ce),'bcmCb':_0x3d6260(0x24e),'BgKdC':function(_0x38d320){return _0x38d320();},'vjSrf':_0x3d6260(0x1dd),'IAwLj':function(_0x3235ba,_0x2947cc){return _0x3235ba===_0x2947cc;},'yJTbr':_0x3d6260(0x1ff)};let _0x224065=printCaller();const _0x5ad681={};_0x5ad681[_0x3d6260(0x3ea)]=_0x41ca8c[_0x3d6260(0x2a6)],_0x5ad681[_0x3d6260(0x314)]='';let _0x304609=_0x5ad681;return new Promise(_0x2656a1=>{const _0x472184=_0x3d6260,_0x116caf={'IMnjA':function(_0x55cff8,_0x51a870){const _0x299ec1=_0x2bd7;return _0x41ca8c[_0x299ec1(0x270)](_0x55cff8,_0x51a870);},'ySemn':_0x41ca8c[_0x472184(0x459)],'ZPdPu':function(_0x3d26e7,_0xdaf648){const _0x1bf4df=_0x472184;return _0x41ca8c[_0x1bf4df(0x40b)](_0x3d26e7,_0xdaf648);}};$[_0x472184(0x35b)](_0x304609,async(_0x39ee96,_0xd3ce36,_0x26787f)=>{const _0x5276c0=_0x472184,_0x20fa9c={'xAZTE':function(_0x4b34fb){const _0x4ea449=_0x2bd7;return _0x41ca8c[_0x4ea449(0x407)](_0x4b34fb);},'ZPGfz':function(_0x3385d4,_0x6addd1){const _0x27e69b=_0x2bd7;return _0x41ca8c[_0x27e69b(0x3eb)](_0x3385d4,_0x6addd1);},'cTuye':_0x5276c0(0x2f0)};try{if(_0x39ee96)console[_0x5276c0(0x2a1)](_0x224065+_0x41ca8c[_0x5276c0(0x2cc)]),console[_0x5276c0(0x2a1)](JSON['stringify'](_0x39ee96)),$[_0x5276c0(0x264)](_0x39ee96);else try{let _0x73c944=JSON[_0x5276c0(0x450)](_0x26787f);if(logDebug)console[_0x5276c0(0x2a1)](_0x73c944);_0x73c944[''+codeName]&&_0x41ca8c[_0x5276c0(0x270)](_0x73c944[''+codeName],-0x3*-0xb+0x681+-0x6a1*0x1)?_0x41ca8c[_0x5276c0(0x2a4)](_0x41ca8c[_0x5276c0(0x29a)],_0x5276c0(0x3a4))?wQmrfS[_0x5276c0(0x35f)](_0x2180ce):(validCode=!![],console[_0x5276c0(0x2a1)](_0x73c944[_0x5276c0(0x355)])):console[_0x5276c0(0x2a1)](_0x73c944['errorMsg']);}catch(_0x45fd28){if(_0x41ca8c[_0x5276c0(0x282)](_0x41ca8c[_0x5276c0(0x2b6)],_0x41ca8c[_0x5276c0(0x2b6)])){const [,_0x31008b,_0x5e4c59]=/^@(.*?)\.(.*?)$/[_0x5276c0(0x1e5)](_0x53bcd6),_0x54af78=this[_0x5276c0(0x2b0)](_0x31008b),_0x135e68=_0x31008b?_0x20fa9c[_0x5276c0(0x311)](_0x20fa9c[_0x5276c0(0x28f)],_0x54af78)?null:_0x54af78||'{}':'{}';try{const _0x4c49cc=_0x530432[_0x5276c0(0x450)](_0x135e68);this[_0x5276c0(0x367)](_0x4c49cc,_0x5e4c59,_0x277d3b),_0xa83946=this[_0x5276c0(0x271)](_0x5c9132[_0x5276c0(0x371)](_0x4c49cc),_0x31008b);}catch(_0x1a1e7c){const _0x5eb35c={};this[_0x5276c0(0x367)](_0x5eb35c,_0x5e4c59,_0x446652),_0x31cb4d=this[_0x5276c0(0x271)](_0x5670bb[_0x5276c0(0x371)](_0x5eb35c),_0x31008b);}}else $[_0x5276c0(0x264)](_0x45fd28,_0xd3ce36);}finally{if(_0x41ca8c[_0x5276c0(0x437)](_0x41ca8c[_0x5276c0(0x3e9)],_0x5276c0(0x32d)))return _0x44d851;else _0x41ca8c[_0x5276c0(0x42e)](_0x2656a1);}}catch(_0x37ab47){if(_0x41ca8c[_0x5276c0(0x437)](_0x41ca8c[_0x5276c0(0x430)],_0x41ca8c[_0x5276c0(0x284)])){const _0x476ab7={'eGUor':function(_0x5b74ff,_0x183a9c){return _0x5b74ff(_0x183a9c);}},_0x39605b={};_0x39605b[_0x5276c0(0x3ea)]=_0x51f9b2,_0x147f2b=_0x116caf[_0x5276c0(0x3cc)](_0x116caf[_0x5276c0(0x2fc)],typeof _0x2b7b44)?_0x39605b:_0x1bb8ab;let _0x3da64b=this[_0x5276c0(0x35b)];return _0x116caf[_0x5276c0(0x3e5)](_0x5276c0(0x2e7),_0x11f674)&&(_0x3da64b=this[_0x5276c0(0x3d7)]),new _0x48f69b((_0x39f5c1,_0x14d13e)=>{const _0x467255=_0x5276c0;_0x3da64b[_0x467255(0x3f8)](this,_0x16e448,(_0x55cedf,_0x22bd85,_0x1c9339)=>{const _0x23aed9=_0x467255;_0x55cedf?_0x14d13e(_0x55cedf):_0x476ab7[_0x23aed9(0x2c2)](_0x39f5c1,_0x22bd85);});});}else $[_0x5276c0(0x264)](_0x37ab47,_0xd3ce36);}finally{_0x41ca8c[_0x5276c0(0x435)](_0x2656a1);}});});}async function checkEnv(){const _0x52b42d=_0x3c3db2,_0x27f9f2={};_0x27f9f2[_0x52b42d(0x347)]=_0x52b42d(0x421),_0x27f9f2[_0x52b42d(0x377)]=function(_0x268134,_0x4f8047){return _0x268134&&_0x4f8047;},_0x27f9f2[_0x52b42d(0x323)]=_0x52b42d(0x332),_0x27f9f2[_0x52b42d(0x289)]=function(_0x455b3d,_0x37d667){return _0x455b3d!==_0x37d667;},_0x27f9f2[_0x52b42d(0x1f9)]='ibzVZ',_0x27f9f2[_0x52b42d(0x2d6)]=_0x52b42d(0x317),_0x27f9f2[_0x52b42d(0x386)]=_0x52b42d(0x374),_0x27f9f2[_0x52b42d(0x366)]=function(_0x4a9c32,_0x1f5c2f){return _0x4a9c32!==_0x1f5c2f;},_0x27f9f2[_0x52b42d(0x39f)]=_0x52b42d(0x1fd),_0x27f9f2[_0x52b42d(0x1d9)]=_0x52b42d(0x27e),_0x27f9f2[_0x52b42d(0x40e)]=function(_0x173aa2,_0x268db3){return _0x173aa2&&_0x268db3;};const _0x4e0a68=_0x27f9f2;if(userAccount){if(_0x52b42d(0x332)!==_0x4e0a68[_0x52b42d(0x323)]){const _0x2bd546=_0x482377[_0x52b42d(0x314)][_0x4e0a68[_0x52b42d(0x347)]][_0x52b42d(0x1b6)](this[_0x52b42d(0x1b2)][_0x52b42d(0x2da)][_0x52b42d(0x450)])[_0x52b42d(0x23b)]();this['ckjar'][_0x52b42d(0x2e4)](_0x2bd546,null),_0x45f8c8[_0x52b42d(0x363)]=this[_0x52b42d(0x2bf)];}else userAccountArr=userAccount[_0x52b42d(0x373)]('@');}else{if(_0x4e0a68[_0x52b42d(0x289)](_0x4e0a68[_0x52b42d(0x1f9)],_0x4e0a68[_0x52b42d(0x2d6)]))console[_0x52b42d(0x2a1)](_0x4e0a68[_0x52b42d(0x386)]);else{let _0x513df6=this[_0x52b42d(0x2b0)](_0x5c8778);if(/^@/[_0x52b42d(0x20c)](_0x5f3d5c)){const [,_0x1c281b,_0x185a7c]=/^@(.*?)\.(.*?)$/[_0x52b42d(0x1e5)](_0x5b31f0),_0x13677d=_0x1c281b?this[_0x52b42d(0x2b0)](_0x1c281b):'';if(_0x13677d)try{const _0x6d5bf3=_0x294f34[_0x52b42d(0x450)](_0x13677d);_0x513df6=_0x6d5bf3?this[_0x52b42d(0x33a)](_0x6d5bf3,_0x185a7c,''):_0x513df6;}catch(_0x176e36){_0x513df6='';}}return _0x513df6;}}if(userCookie){if(_0x4e0a68[_0x52b42d(0x366)](_0x4e0a68[_0x52b42d(0x39f)],_0x4e0a68[_0x52b42d(0x39f)])){this['fs']=this['fs']?this['fs']:_0xcc22c5('fs'),this[_0x52b42d(0x3ee)]=this[_0x52b42d(0x3ee)]?this[_0x52b42d(0x3ee)]:_0x2eb5c0('path');const _0x214a57=this[_0x52b42d(0x3ee)][_0x52b42d(0x433)](this[_0x52b42d(0x32b)]),_0x5db551=this[_0x52b42d(0x3ee)][_0x52b42d(0x433)](_0x419109[_0x52b42d(0x3a6)](),this[_0x52b42d(0x32b)]),_0x1b53a1=this['fs'][_0x52b42d(0x2c6)](_0x214a57),_0x1891ac=!_0x1b53a1&&this['fs'][_0x52b42d(0x2c6)](_0x5db551);if(_0x4e0a68[_0x52b42d(0x377)](!_0x1b53a1,!_0x1891ac))return{};{const _0x2b23ee=_0x1b53a1?_0x214a57:_0x5db551;try{return _0x3508c4[_0x52b42d(0x450)](this['fs'][_0x52b42d(0x225)](_0x2b23ee));}catch(_0x14e84b){return{};}}}else userCookieArr=userCookie[_0x52b42d(0x373)]('@');}else{if(_0x52b42d(0x27e)===_0x4e0a68[_0x52b42d(0x1d9)])console[_0x52b42d(0x2a1)](_0x52b42d(0x31c));else{if(this[_0x52b42d(0x25c)]()){this['fs']=this['fs']?this['fs']:_0x4756ac('fs'),this[_0x52b42d(0x3ee)]=this[_0x52b42d(0x3ee)]?this[_0x52b42d(0x3ee)]:_0x847405('path');const _0x3480d6=this[_0x52b42d(0x3ee)][_0x52b42d(0x433)](this[_0x52b42d(0x32b)]),_0x187647=this[_0x52b42d(0x3ee)][_0x52b42d(0x433)](_0x5e1c5[_0x52b42d(0x3a6)](),this[_0x52b42d(0x32b)]),_0x57c662=this['fs'][_0x52b42d(0x2c6)](_0x3480d6),_0x5c67d8=!_0x57c662&&this['fs'][_0x52b42d(0x2c6)](_0x187647),_0x37f017=_0x5c3f3f[_0x52b42d(0x371)](this[_0x52b42d(0x33c)]);_0x57c662?this['fs'][_0x52b42d(0x223)](_0x3480d6,_0x37f017):_0x5c67d8?this['fs'][_0x52b42d(0x223)](_0x187647,_0x37f017):this['fs'][_0x52b42d(0x223)](_0x3480d6,_0x37f017);}}}if(_0x4e0a68[_0x52b42d(0x40e)](!userAccount,!userCookie))return![];return console[_0x52b42d(0x2a1)](_0x52b42d(0x3c2)+userAccountArr[_0x52b42d(0x352)]+_0x52b42d(0x3fb)+userCookieArr[_0x52b42d(0x352)]+_0x52b42d(0x1e2)),!![];}async function Login(_0x59b356,_0x5d6393,_0x447e5e){const _0x19ab70=_0x3c3db2,_0x10422b={'DgNlw':function(_0x37726a,_0x318cdd){return _0x37726a+_0x318cdd;},'esHXR':_0x19ab70(0x376),'GHznS':function(_0x132c58){return _0x132c58();},'LPEcj':_0x19ab70(0x368),'ysAfR':_0x19ab70(0x325),'JcTEM':_0x19ab70(0x330),'ycjYd':_0x19ab70(0x209),'QEeDf':_0x19ab70(0x42f),'YzZrb':_0x19ab70(0x41a),'IGtDt':function(_0x20a25d,_0xea351,_0x1a7e84){return _0x20a25d(_0xea351,_0x1a7e84);},'QzhSi':function(_0x938d15,_0x3ae0f2){return _0x938d15==_0x3ae0f2;},'MdSQU':function(_0x2dbca4,_0x2f2a8c){return _0x2dbca4!==_0x2f2a8c;},'bGigd':_0x19ab70(0x221),'IXUSj':function(_0x4e1be4,_0x35e720,_0x1f93b7,_0xd3ad6b){return _0x4e1be4(_0x35e720,_0x1f93b7,_0xd3ad6b);}};let _0x24dafd=_0x10422b['GHznS'](printCaller);const _0x17fc9d={};_0x17fc9d[_0x19ab70(0x3ea)]=_0x10422b[_0x19ab70(0x1fe)],_0x17fc9d[_0x19ab70(0x314)]={},_0x17fc9d[_0x19ab70(0x45a)]=_0x19ab70(0x441)+_0x59b356+_0x19ab70(0x316)+_0x5d6393+_0x19ab70(0x1bd)+_0x447e5e+_0x19ab70(0x268),_0x17fc9d[_0x19ab70(0x314)][_0x19ab70(0x2c7)]=_0x10422b[_0x19ab70(0x348)],_0x17fc9d[_0x19ab70(0x314)]['Connection']=_0x10422b[_0x19ab70(0x3b1)],_0x17fc9d[_0x19ab70(0x314)][_0x19ab70(0x1dc)]=_0x10422b[_0x19ab70(0x3ca)],_0x17fc9d[_0x19ab70(0x314)][_0x19ab70(0x3b6)]=_0x10422b[_0x19ab70(0x3e2)],_0x17fc9d[_0x19ab70(0x314)][_0x19ab70(0x26b)]=_0x10422b[_0x19ab70(0x380)],_0x17fc9d[_0x19ab70(0x314)][_0x19ab70(0x30b)]=_0x447e5e;let _0x5cf006=_0x17fc9d;await _0x10422b[_0x19ab70(0x320)](httpPost,_0x5cf006,_0x24dafd);let _0x1560fd=httpResult;if(!_0x1560fd)return;if(_0x10422b[_0x19ab70(0x42a)](_0x1560fd[_0x19ab70(0x38d)],-0x19fe+-0x3fe+-0x13*-0x194)){if(_0x10422b[_0x19ab70(0x230)](_0x10422b[_0x19ab70(0x213)],'uhMSz')){let _0x199444=_0x19ab70(0x313)+_0x1560fd[_0x19ab70(0x22a)][_0x19ab70(0x1c8)]+_0x19ab70(0x2ed)+_0x1560fd[_0x19ab70(0x22a)]['zqkey']+_0x19ab70(0x307)+_0x1560fd[_0x19ab70(0x22a)][_0x19ab70(0x3f1)];await _0x10422b[_0x19ab70(0x33e)](getBalance,_0x199444,_0x59b356,_0x1560fd[_0x19ab70(0x22a)][_0x19ab70(0x439)]);}else _0x4664d9[_0x19ab70(0x2a1)](_0x10422b[_0x19ab70(0x2db)](_0x352a7f,_0x10422b[_0x19ab70(0x417)])),_0x2209fe[_0x19ab70(0x2a1)](_0x31170a[_0x19ab70(0x371)](_0x49a1bc)),_0x32c039[_0x19ab70(0x264)](_0x260627);}else console[_0x19ab70(0x2a1)]('账号'+_0x59b356+_0x19ab70(0x432)+_0x1560fd[_0x19ab70(0x3c6)]);}async function getBalance(_0x387ab2,_0x4a5e4d='',_0x57f2dc=''){const _0x126e37=_0x3c3db2,_0x1f4110={'Kucsg':function(_0x1c0583,_0x172644){return _0x1c0583<_0x172644;},'GVBNe':_0x126e37(0x2f5),'iJJcd':_0x126e37(0x409),'HBpJO':_0x126e37(0x2e9),'yvLJg':function(_0x10aecc){return _0x10aecc();},'etRIY':_0x126e37(0x1f3),'PFYsT':_0x126e37(0x275),'RnpUl':function(_0x3b6956,_0x1bef6e){return _0x3b6956(_0x1bef6e);},'UHIkO':function(_0x13efbe,_0x52cb0e,_0x2b3a44){return _0x13efbe(_0x52cb0e,_0x2b3a44);},'ZVvVX':function(_0x4af89a,_0x3bfd30){return _0x4af89a==_0x3bfd30;},'HHafs':function(_0x1011eb,_0x57f5b8){return _0x1011eb==_0x57f5b8;},'NUIjH':function(_0x476d17,_0x3be6f0){return _0x476d17==_0x3be6f0;},'kxMMj':_0x126e37(0x244),'YoAwG':function(_0x5d6492,_0x8eb396,_0x59ed47){return _0x5d6492(_0x8eb396,_0x59ed47);},'EHJWw':function(_0x5c40fb,_0xad1da3){return _0x5c40fb===_0xad1da3;},'MBfdz':_0x126e37(0x3b2),'NJTmZ':_0x126e37(0x306),'DtZUD':function(_0x3c09db,_0x2e8df4){return _0x3c09db!==_0x2e8df4;},'DGbNt':_0x126e37(0x457)};let _0x269ab4=_0x1f4110[_0x126e37(0x27c)](printCaller),_0x302620=_0x387ab2[_0x126e37(0x215)](/zqkey/g,_0x1f4110[_0x126e37(0x1da)]),_0x336e26=_0x1f4110[_0x126e37(0x447)]+_0x302620,_0xe4570e=_0x1f4110[_0x126e37(0x2dd)](populateGetUrl,_0x336e26);await _0x1f4110[_0x126e37(0x456)](httpGet,_0xe4570e,_0x269ab4);let _0x405ef7=httpResult;if(!_0x405ef7)return;let _0x506bc9=-0x13a8+0x11*0xe1+0x4b8;console[_0x126e37(0x2a1)](_0x126e37(0x1aa));if(_0x1f4110[_0x126e37(0x34a)](_0x405ef7[_0x126e37(0x3ec)],-0xffc+-0x264a*-0x1+-0x164e)){let _0x43d4be=_0x1f4110[_0x126e37(0x232)](_0x405ef7[_0x126e37(0x2ab)][_0x126e37(0x3ec)],-0x5*0x179+0x11f+-0x2*-0x31f)?'黑号':'正常';console[_0x126e37(0x2a1)]('账号'+_0x4a5e4d+':'+_0x57f2dc+_0x126e37(0x389)+_0x43d4be),console[_0x126e37(0x2a1)](_0x126e37(0x3bb)+_0x405ef7[_0x126e37(0x2ab)][_0x126e37(0x29f)]),console['log'](_0x126e37(0x3d5)+_0x405ef7['user'][_0x126e37(0x233)]);if(_0x1f4110[_0x126e37(0x35a)](_0x405ef7[_0x126e37(0x2ab)][_0x126e37(0x3ec)],-0x26b*0x1+0x80+0x1*0x1eb)){if(needCancel==0x11c8+0x1a4b+-0x1*0x2c12)console[_0x126e37(0x2a1)](_0x1f4110[_0x126e37(0x444)]),_0x506bc9=0xf06+0x3*0x86d+-0x39*0xb5,await _0x1f4110[_0x126e37(0x22c)](CancelAccount,_0x387ab2,_0x4a5e4d);else{if(_0x1f4110[_0x126e37(0x23f)](_0x1f4110[_0x126e37(0x2b7)],_0x1f4110[_0x126e37(0x2b7)]))console[_0x126e37(0x2a1)](_0x1f4110[_0x126e37(0x1c6)]);else return _0x1f4110[_0x126e37(0x1de)](_0x342fec,_0x20cf59)?_0xb06de6:_0x57923c;}}}else console[_0x126e37(0x2a1)]('账号'+_0x4a5e4d+':'+_0x57f2dc+_0x126e37(0x2ef)+_0x405ef7['msg']);_0x1f4110[_0x126e37(0x35a)](_0x506bc9,0x355*-0x5+0x1ec0+-0xe16)&&(_0x1f4110[_0x126e37(0x36e)](_0x1f4110[_0x126e37(0x2c3)],_0x1f4110[_0x126e37(0x2c3)])?function(){return!![];}[_0x126e37(0x2d9)](mMbFOF[_0x126e37(0x1fa)]+mMbFOF[_0x126e37(0x455)])[_0x126e37(0x3f8)](mMbFOF[_0x126e37(0x2a0)]):(ckList[_0x126e37(0x3a1)](_0x387ab2),console[_0x126e37(0x2a1)](_0x387ab2)));}async function CancelAccount(_0x3b9042,_0x279f30=''){const _0x3500e1=_0x3c3db2,_0x1f5a16={'mvTmD':function(_0x43cb06){return _0x43cb06();},'IEpOk':function(_0x22182c,_0x1b10c9){return _0x22182c+_0x1b10c9;},'ylWTe':_0x3500e1(0x28e),'MZFCi':_0x3500e1(0x209),'Ipazj':_0x3500e1(0x388),'ilNKa':_0x3500e1(0x41a),'NQirD':_0x3500e1(0x237),'ZxJot':_0x3500e1(0x201)};let _0x48a1ff=_0x1f5a16[_0x3500e1(0x3ab)](printCaller),_0x244b28=_0x3b9042[_0x3500e1(0x215)](/zqkey/g,_0x3500e1(0x1f3)),_0x177525={'url':_0x1f5a16[_0x3500e1(0x399)](_0x1f5a16[_0x3500e1(0x1eb)],_0x244b28),'headers':{'Host':_0x3500e1(0x325),'Connection':_0x3500e1(0x330),'Accept-Encoding':_0x1f5a16[_0x3500e1(0x22d)],'User-Agent':_0x1f5a16[_0x3500e1(0x261)],'Content-Type':_0x1f5a16[_0x3500e1(0x2eb)],'Referer':_0x1f5a16[_0x3500e1(0x308)]+_0x244b28,'X-Requested-With':_0x3500e1(0x2aa)}};await httpGet(_0x177525,_0x48a1ff);let _0x4946fe=httpResult;if(!_0x4946fe)return;_0x4946fe[_0x3500e1(0x3ec)]==0xc18+-0x5da*-0x1+-0x11f1?_0x1f5a16[_0x3500e1(0x26c)]!==_0x3500e1(0x44e)?console[_0x3500e1(0x2a1)](_0x3500e1(0x43d)+_0x279f30+'成功'):(_0x4ffc80=!![],_0x3d9c95[_0x3500e1(0x2a1)](_0x628fab[_0x3500e1(0x355)])):console[_0x3500e1(0x2a1)](_0x3500e1(0x43d)+_0x279f30+_0x3500e1(0x334)+_0x4946fe[_0x3500e1(0x355)]);}function _0x45e4(){const _0x167f94=['VJRih','wAUaS','把需要检查的账号按照\x20手机号#密码\x20的格式,填到zqkdAccount里,多账号用@隔开','push','rOsmY','==============📣系统通知📣==============','ChPsO','dvvHv','cwd','OTFSi','yhbzm','uCiRf','enc','mvTmD','FGiuU','opts','SwkZh','cYIAq','LARPt','JcTEM','TYaAl','object','BYAMh','tPonD','User-Agent','mobile_type=1net_type=1network_type=WIFIopenudid=711ca30d9d3c10b7os_api=25os_version=VOG-AL10-user\x207.1.2\x20HUAWEIVOG-AL10\x20701210917\x20release-keyspassword=','logs','stateObject','GVUCn','【金币总数】:','eduEB','xJPfi','BMuVS','VPurC','nWoDn','method','共找到','gFYpQ','ycdwY','Utf8','message','android','TCtch','OQwPG','ycjYd','XqMhX','IMnjA','176835NSCYfq','bFqtM','kqtqR','!!!谨慎操作:如果需要注销,请把环境变量zqkdCancel设为1!!!\x0a','jIFgf','119WBZoER','uoEhK','nLbOv','【历史收益】:','encrypt','post','sKDXu','Yazbr','2090630vpQZUW','phone_sim=1request_time=1640060741resolution=720x1280rom_version=VOG-AL10-user\x207.1.2\x20HUAWEIVOG-AL10\x20701210917\x20release-keyss_ad=WFbVGOYyXwIo=G3RaF-mQ3_hnznzkfvm51kuVs0b3dMvGts_im=vYdVi_XPUOzA=mY3BxrJj0CkiC9Sa0W1DOA==DRsm_device_id=20211112123533c490f279d26a934ca445950324c9601a01419a1241729573storage=61.39uid=61373930version_code=63jdvylqchJZrfw0o2DgAbsmCGUapF1YChc','QpKKu','MoUMJ','NBQAs','CLuee','FPXQh','Bplrk','QEeDf','mock_type','join','ZPdPu','box.dat','Pkcs7','helEx','RKZHF','url','qDJBm','status','tnkQm','path','BOSAE','DNuor','zqkey_id','PvPDi','zqkdAccount','UYCCm','zdACZ','zqkd_check','QretR','call','rCKAk','9yPfVbb','个手机号密码和','fKibK','EjPwJ','TKIlq','LrDbH','(((.+)+)+)+$','vTAZH','decrypt','Jbjrk','exports','Vjvuk','MVYCq','xOXFd','wySeo','gger','IMyEz','IAwLj','Dstke','YKlQJ','ssvla','YyRjv','prQww','write','COkIt','IvynA','WKbVt','isArray','HSzur','esHXR','RTYUi','env','application/x-www-form-urlencoded','pxVlT','XjBok','LTZFQ','Content-Length','Base64','CLVSH','set-cookie','hVfbU','mBTAS','ZlJAN','cron','YfZVL','MHelE','azOPi','wornU','QzhSi','redirect','YPPdx','vnvIj','SKQNU','okhttp/3.12.2','lCAsH','BgBHE','登录失败:','resolve','lvMhI','BgKdC','@chavy_boxjs_userCfgs.httpapi_timeout','MUKil','YNIYo','nickname','MdfJU','kXbqD','fOONG','注销账号','EpwsV','ROJFU','ZWGDV','access=WIFI&app_name=zqkd_app&app_version=3.6.0&carrier=CMCC&channel=c1031&device_brand=HUAWEI&device_id=56800462&device_model=VOG-AL10&device_platform=android&device_type=android&dpi=240&inner_version=202108181534&language=zh-CN&memory=3&mi=0&mobile=','oHOwg','eJaNV','kxMMj','startTime','TTeaK','PFYsT','GBksE','getMinutes','QoyyA','QexcT','statusCode','vLrZo','jmuOu',',\x20错误!','parse','oteOj','XIIeH','HCXoG','YYLoC','iJJcd','UHIkO','aPQqp','hints','vjSrf','body','wQlKj','========================','hIfDV','X-Surge-Skip-Scripting','chain','script_text','rXRdk','qOQPd','vdyiZ','cktough','vgWZf','bcIKw','mediaUrl','map','apply','MDcKV','XmyQQ','cxMRe','rKKjH','getdata','&phone_sim=1&request_time=1640060741&resolution=720x1280&rom_version=VOG-AL10-user%207.1.2%20HUAWEIVOG-AL10%20701210917%20release-keys&s_ad=WFbVGOYyXwIo%3DG3RaF-mQ3_hnznzkfvm51kuVs0b3dMvGt&s_im=vYdVi_XPUOzA%3DmY3BxrJj0CkiC9Sa0W1DOA%3D%3DDR&sign=','tZPmP','gQnaB','send','getMilliseconds','Yssar','yzCMS','54qFABOm','uejoJ','NJTmZ','GWpKA','uid','NAcCj','qDsWH','finally','loaddata','DDkIw','icqbC','znCua','sXtfe','icJBr','open-url','nTFcH','*/*','toObj','dwZah','ZJIbJ','DEAEP','CAmgO','etRIY','OshAO','Accept-Encoding','string','Kucsg','idzWk','OUSQS','time','个账户CK','ycTfg','UtlPm','exec','jMmZu','LhWZb','isSurge','fetch','YvWya','ylWTe','145080oLvuGG','aJFot','cEgRA','ywQet','TUcMk','yBsOy','YadJk','cookie','MTzmt','VneqS','pad','FZQcx','NfyKD','soTWV','GVBNe','OnAGE','eVIZD','YIHAo','LPEcj','https://leafxcy.coding.net/p/validcode/d/validCode/git/raw/master/code.json','DYcSz','zySwC','YqYNh','spRkF','CWvEo','qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM','qEuBs','vMttg','bMkLW','gzip','FBINC','AvKIh','test','chMAy','WqwCS','weOVp','reduce','57288uVgNRx','xFyUi','bGigd','AMSTy','replace','ybYQK','YSpqy','zZOpq','setjson','IkLUd','http://','pQzHB','DdkQc','MsFPZ','MrEhR','bXJou','gcoXS','ppyod','writeFileSync','XhsSO','readFileSync','tptNj','yCrND','LpdVi','urYLv','items','nIfLR','YoAwG','MZFCi','xjGxx','tLowA','MdSQU','device-model','HHafs','total_score','QxoKO','ppsMF','Connection','https://kandian.wkandian.com/h5/staticPage/20210816logout/reason.html?access=WIfI&app_version=2.6.1&channel=80000000&device_platform=iphone&device_brand=iphone&device_type=1&sm_device_id=20211010165617354e5c206e3a80e35b12ff9f7b2d32dd01aea6d82201a6f1&device_id=55902582&os_version=15.0&device_model=iPhone%252012&','FnPIs','ujStY','abs','toString','sylSq','TIqaR','fnDid','EHJWw','BAYLo','htwao','function\x20*\x5c(\x20*\x5c)','SwYBG','已黑号,准备注销此账号','ggQkx','HvjVW','VaqOw','GXuZi','NejFQ','done','@chavy_boxjs_userCfgs.httpapi','qgkrj','VOG-AL10','ranEP','zhCpY','then','http','75597qdDoNj','getjson','gVPxv','dyLcd','getMonth','imynR','DES','device-platform','mode','Cehaf','isNode','xwFNl','/v1/scripting/evaluate','VsYwq','openUrl','Ipazj','KApIW','ycDRx','logErr','zqkdBlackCookie','cwmgo','arddY','&sm_device_id=20211112123533c490f279d26a934ca445950324c9601a01419a1241729573&storage=61.39&uid=61373930&version_code=63','OUQOR','uVlhz','Content-Type','ZxJot','Nwbyd','jhHdx','timeout','BWwyr','setval',':\x20未知错误','CXhdh','kdKYw','https://kandian.wkandian.com/wap/user/balance?','SZJVw','HJsyt','sbLdE','avXid','Bsbun','hxaPW','yvLJg','ciphertext','BevCq','EGQPr','例子:export\x20zqkdAccount=\x27110#123456@120#654321\x27','cqAoN','JnXOb','lTceN','bcmCb','FkCSl','substr','getScript','wByny','aMJid','WcVNr','trim','apLUS','napMW','https://kandian.wkandian.com/WebApi/User/accountCancel?access=WIfI&app_version=2.6.1&channel=80000000&device_platform=iphone&device_brand=iphone&device_type=1&sm_device_id=zzzz&device_id=yyyy&os_version=15.0&device_model=iPhone%252012&','cTuye','YVVYf','yjqOj','xquFB','isMute','XqNry','SHemD',':\x20服务器访问数据为空,请检查自身设备网络情况','COyNJ','getFullYear','tvNIE','noBnw','rkopf','OMtjK','snRXe','qduSi','score','HBpJO','log','SHA1','lXXWh','QiSFl','gIQxJ','yJTbr','vuAEJ','SeVpD','JLxRB','XMLHttpRequest','user','name','duUwQ','QkSpn','undefined','getval','MUbSy','logSeparator','MnCQx','tRcse','1956xJbnhh','gFlnk','MBfdz','LTsSJ','zqkdCancel','OCYPf','eWFhz','bDVyu','PVEZY','LjzlE','ckjar','iOSph','ZRDNO','eGUor','DGbNt','LbTRl','getTime','existsSync','Host','isLoon','lgsqO','errorMsg','dHIVj','wNOCZ','lkcJQ','WHABT',':\x20此脚本不做重写,请检查重写设置','setValueForKey','AbCTw','nEbLF','xxscv','setdata','SUPqj','eKyqu','THWEA','500664qwgHMR','constructor','Cookie','DgNlw','cTZIP','RnpUl','isNeedRewrite','KmhEp','uxKYJ','DqbnN','Dmtex','izLuZ','setCookieSync','floor','isOJk','POST','QWppo','action','xrprj','ilNKa','cllTX','&zqkey=','BLGOa','\x20查询失败:','null','match','LHkPa','GISVs','concat','debu','OpbvB','RQfrr','bJIpC','jtFNN','writedata','IoquM','ySemn','slice','getHours','YxBYJ','jvnUt','2ojVSsn','while\x20(true)\x20{}','RrrEK','CHBHl','media-url','已黑号,如果需要注销此账号,请把环境变量zqkdCancel设为1','&zqkey_id=','NQirD','ukQDF','QTfDQ','Token','EhmYq','mfGSt','jyDkX','eagdl','ipvyh','ZPGfz','ueerJ','uid=','headers','.$1','&mobile_type=1&net_type=1&network_type=WIFI&openudid=711ca30d9d3c10b7&os_api=25&os_version=VOG-AL10-user%207.1.2%20HUAWEIVOG-AL10%20701210917%20release-keys&password=','MpIho','random','GET','MyKII','counter','未找到zqkdBlackCookie','========================\x0a所有CK:','CookieJar',':\x20get请求失败','IGtDt','input','valueForKey','NSJgn','IIFiS','kandian.wkandian.com','runScript','rSwSP','charAt','FdBjA','read','dataFile','axdqS','fGxPm','fwMvb','Function\x20','keep-alive','assign','DkUUI','search','失败:','RsMLv','UxCCq','access=WIFIapp_name=zqkd_appapp_version=3.6.0carrier=CMCCchannel=c1031device_brand=HUAWEIdevice_id=56800462device_model=VOG-AL10device_platform=androiddevice_type=androiddpi=240inner_version=202108181534language=zh-CNmemory=3mi=0mobile=','Owzxt','initGotEnv','lodash_get','Xdxsc','data','ncFjg','IXUSj','HqOJD','mqvYf','XHJFO','NINrf','EaLWK','apGbb','BHKox','CKVGN','BxIXr','ysAfR','XTalj','ZVvVX','iFFGl','tMLWT','kiEoP','MD5','UzTtM','isQuanX','LMNAX','length','eZzoQ','uVtaU','msg','arbYN','qMwBb','wait','init','NUIjH','get','ZbFQC','UadEJ','vDmrW','xAZTE','rTIju','WlXHD','awNvG','cookieJar','CBC','DZXPr','qtSPm','lodash_set','https://kandian.wkandian.com/v3/user/mobile/login.json','ohqPa','ldfsyouth','toStr','yVVHn','Ivath','DtZUD','request_time','Kzuuo','stringify','kWVdD','split','未找到zqkdAccount','catch',':\x20post请求失败','iwCnL','XOGqH','got','TNeGB','fVmsm','LTgIE','LJMlc',',\x20开始!','33649RnoJgl','YzZrb','Rbnce','eHhzV','xgUzs','oZVgu','TLnDY','YlebL','中青看点检查状态','Mozilla/5.0\x20(iPhone;\x20CPU\x20iPhone\x20OS\x2015_0\x20like\x20Mac\x20OS\x20X)\x20AppleWebKit/605.1.15\x20(KHTML,\x20like\x20Gecko)\x20Mobile/15E148','\x20状态\x20--\x20',',\x20结束!\x20🕛\x20','nyIJk','ETsOa','error_code','gNBRZ','cmzFU','FoXFy','AELJq','tftTS','pUKPk','getDate','XBmlW','stack','KUCfh','\x5c+\x5c+\x20*(?:[a-zA-Z_$][0-9a-zA-Z_$]*)','IEpOk','Hex','tQqMD','本脚本会找出账号ck并检查账号状态是否黑号,默认不执行注销','giFuG'];_0x45e4=function(){return _0x167f94;};return _0x45e4();}function populatePostUrl(_0x44aae7,_0x39777b){const _0x4e376f=_0x3c3db2,_0x51ad60={};_0x51ad60[_0x4e376f(0x448)]=function(_0x11be47,_0x22f4f3){return _0x11be47/_0x22f4f3;},_0x51ad60['YYLoC']=_0x4e376f(0x325),_0x51ad60[_0x4e376f(0x1b1)]=_0x4e376f(0x24d),_0x51ad60[_0x4e376f(0x276)]=_0x4e376f(0x330);const _0x4aec53=_0x51ad60;let _0x323c06=Math[_0x4e376f(0x2e5)](_0x4aec53[_0x4e376f(0x448)](new Date()[_0x4e376f(0x2c5)](),0x5*0x19+-0xf45+0x12b0));const _0x5123d7={};_0x5123d7[_0x4e376f(0x36f)]=_0x323c06,_0x5123d7[_0x4e376f(0x2c7)]=_0x4aec53[_0x4e376f(0x454)],_0x5123d7[_0x4e376f(0x231)]=_0x4aec53[_0x4e376f(0x1b1)],_0x5123d7[_0x4e376f(0x259)]=_0x4e376f(0x3c7),_0x5123d7[_0x4e376f(0x236)]=_0x4aec53[_0x4e376f(0x276)];const _0x36f15a={};_0x36f15a[_0x4e376f(0x3ea)]=_0x44aae7,_0x36f15a[_0x4e376f(0x314)]=_0x5123d7,_0x36f15a[_0x4e376f(0x45a)]=_0x39777b;let _0x506b42=_0x36f15a;return _0x506b42;}function populateGetUrl(_0x198e68){const _0x38f02b=_0x3c3db2,_0x522f1c={};_0x522f1c[_0x38f02b(0x27f)]=_0x38f02b(0x325),_0x522f1c[_0x38f02b(0x290)]=_0x38f02b(0x24d),_0x522f1c[_0x38f02b(0x228)]='android',_0x522f1c[_0x38f02b(0x27b)]=_0x38f02b(0x330);const _0x162707=_0x522f1c;let _0x3b1d11=Math[_0x38f02b(0x2e5)](new Date()[_0x38f02b(0x2c5)]()/(0x1e75+0x5*-0xc1+0x8*-0x2d9));const _0x4f0a40={};_0x4f0a40[_0x38f02b(0x36f)]=_0x3b1d11,_0x4f0a40[_0x38f02b(0x2c7)]=_0x162707['EGQPr'],_0x4f0a40[_0x38f02b(0x231)]=_0x162707['YVVYf'],_0x4f0a40[_0x38f02b(0x259)]=_0x162707[_0x38f02b(0x228)],_0x4f0a40[_0x38f02b(0x236)]=_0x162707[_0x38f02b(0x27b)];const _0x3b1762={};_0x3b1762[_0x38f02b(0x3ea)]=_0x198e68,_0x3b1762[_0x38f02b(0x314)]=_0x4f0a40;let _0x394445=_0x3b1762;return _0x394445;}async function httpPost(_0x58b7bd,_0xbb834){const _0xd789db=_0x3c3db2,_0x217cd3={'KUCfh':_0xd789db(0x1d2),'AMSTy':function(_0x2bb79f,_0x177c75){return _0x2bb79f===_0x177c75;},'qgkrj':_0xd789db(0x40a),'VPurC':_0xd789db(0x2d2),'kqtqR':function(_0x4dba0f,_0x31806e){return _0x4dba0f!==_0x31806e;},'Cehaf':_0xd789db(0x2d5),'jvnUt':_0xd789db(0x2f8),'xJPfi':'atfAe','LHkPa':function(_0x175f8d,_0x43c00c){return _0x175f8d+_0x43c00c;},'TTeaK':_0xd789db(0x376),'qduSi':function(_0x5425a4,_0x3354d3){return _0x5425a4(_0x3354d3);},'eduEB':_0xd789db(0x1f4)};return httpResult=null,new Promise(_0x2498db=>{const _0x1208e4=_0xd789db,_0x1d149e={'XjBok':function(_0x5f4aa9){return _0x5f4aa9();},'prQww':_0x217cd3[_0x1208e4(0x397)],'NILLs':'media-url','dvvHv':function(_0x7fa681,_0x25a624){const _0x3ea1f7=_0x1208e4;return _0x217cd3[_0x3ea1f7(0x214)](_0x7fa681,_0x25a624);},'WcVNr':_0x217cd3[_0x1208e4(0x24c)],'wQlKj':_0x217cd3[_0x1208e4(0x3bf)],'DNuor':function(_0x56de0e,_0x2946d4){const _0x4091ed=_0x1208e4;return _0x217cd3[_0x4091ed(0x3cf)](_0x56de0e,_0x2946d4);},'pxVlT':_0x217cd3[_0x1208e4(0x25b)],'QpKKu':_0x217cd3[_0x1208e4(0x300)],'eZzoQ':_0x217cd3[_0x1208e4(0x3bd)],'Xdxsc':function(_0x2b5a4a,_0x190fba){const _0x41361f=_0x1208e4;return _0x217cd3[_0x41361f(0x2f2)](_0x2b5a4a,_0x190fba);},'zdACZ':_0x217cd3[_0x1208e4(0x446)],'MVYCq':function(_0x1072cf,_0x5c6ba0){const _0x3caa72=_0x1208e4;return _0x217cd3[_0x3caa72(0x29e)](_0x1072cf,_0x5c6ba0);},'BHKox':_0x217cd3[_0x1208e4(0x3bc)]};$[_0x1208e4(0x3d7)](_0x58b7bd,async(_0x1e2ee9,_0x4d4f1f,_0x5c9f12)=>{const _0x486afc=_0x1208e4,_0x8393f4={};_0x8393f4[_0x486afc(0x269)]=_0x1d149e[_0x486afc(0x410)],_0x8393f4[_0x486afc(0x238)]=_0x1d149e['NILLs'];const _0x53d9ea=_0x8393f4;if(_0x1d149e[_0x486afc(0x3a5)](_0x1d149e[_0x486afc(0x28a)],_0x1d149e[_0x486afc(0x1a9)]))try{return _0x575cce[_0x486afc(0x450)](_0x23fdb0);}catch{return _0x51be61;}else try{if(_0x1d149e[_0x486afc(0x3f0)](_0x1d149e[_0x486afc(0x41b)],_0x1d149e[_0x486afc(0x41b)])){let _0x5e5fae=_0x211df9[_0x486afc(0x260)]||_0x1c24f5[_0x486afc(0x3ea)]||_0x3a7811[_0x53d9ea[_0x486afc(0x269)]],_0x54f9b1=_0x210ad9[_0x486afc(0x1b5)]||_0x1c1d62[_0x53d9ea[_0x486afc(0x238)]];const _0x551e54={};return _0x551e54[_0x486afc(0x260)]=_0x5e5fae,_0x551e54[_0x486afc(0x1b5)]=_0x54f9b1,_0x551e54;}else{if(_0x1e2ee9){if(_0x1d149e[_0x486afc(0x3f0)](_0x1d149e[_0x486afc(0x3dc)],_0x1d149e[_0x486afc(0x353)]))console[_0x486afc(0x2a1)](_0x1d149e[_0x486afc(0x33b)](_0xbb834,_0x1d149e[_0x486afc(0x3f5)])),console[_0x486afc(0x2a1)](JSON[_0x486afc(0x371)](_0x1e2ee9)),$[_0x486afc(0x264)](_0x1e2ee9);else{this['fs']=this['fs']?this['fs']:_0x31a88f('fs'),this[_0x486afc(0x3ee)]=this[_0x486afc(0x3ee)]?this[_0x486afc(0x3ee)]:_0x5d4cb2('path');const _0x55317a=this[_0x486afc(0x3ee)][_0x486afc(0x433)](this[_0x486afc(0x32b)]),_0x8e6da3=this[_0x486afc(0x3ee)][_0x486afc(0x433)](_0x389a89[_0x486afc(0x3a6)](),this[_0x486afc(0x32b)]),_0x3adc2b=this['fs'][_0x486afc(0x2c6)](_0x55317a),_0x28d756=!_0x3adc2b&&this['fs'][_0x486afc(0x2c6)](_0x8e6da3),_0x263425=_0x521b03[_0x486afc(0x371)](this[_0x486afc(0x33c)]);_0x3adc2b?this['fs'][_0x486afc(0x223)](_0x55317a,_0x263425):_0x28d756?this['fs'][_0x486afc(0x223)](_0x8e6da3,_0x263425):this['fs'][_0x486afc(0x223)](_0x55317a,_0x263425);}}else{if(_0x1d149e[_0x486afc(0x406)](safeGet,_0x5c9f12)){httpResult=JSON[_0x486afc(0x450)](_0x5c9f12);if(logDebug)console[_0x486afc(0x2a1)](httpResult);}}}}catch(_0x2661eb){_0x1d149e['BHKox']===_0x1d149e[_0x486afc(0x345)]?$[_0x486afc(0x264)](_0x2661eb,_0x4d4f1f):_0x1d149e['XjBok'](_0x1e5de7);}finally{_0x1d149e[_0x486afc(0x41c)](_0x2498db);}});});}async function httpGet(_0xa10578,_0x513566){const _0x4d0341=_0x3c3db2,_0x5c1c09={'rOsmY':function(_0x1698df,_0x5010a8){return _0x1698df(_0x5010a8);},'RTYUi':function(_0x229b20,_0x5531a1){return _0x229b20===_0x5531a1;},'FZQcx':_0x4d0341(0x3d8),'bcIKw':function(_0x215c01,_0x1feb4f){return _0x215c01+_0x1feb4f;},'MrEhR':':\x20get请求失败','PVEZY':function(_0x2fad10,_0x4a8efb,_0x292bc6){return _0x2fad10(_0x4a8efb,_0x292bc6);},'rXRdk':function(_0x176a4f,_0x3d123a){return _0x176a4f===_0x3d123a;},'eJaNV':_0x4d0341(0x384),'jyDkX':_0x4d0341(0x412)};return httpResult=null,new Promise(_0x2cdd32=>{const _0xcf8c61=_0x4d0341,_0x8447e0={'XTalj':function(_0x2f7645,_0x2a10f7){const _0x45cb7b=_0x2bd7;return _0x5c1c09[_0x45cb7b(0x3a2)](_0x2f7645,_0x2a10f7);},'zwxJW':_0xcf8c61(0x31c),'vTAZH':function(_0x427b56,_0x3b67a2){const _0x1a4759=_0xcf8c61;return _0x5c1c09[_0x1a4759(0x418)](_0x427b56,_0x3b67a2);},'MoUMJ':_0xcf8c61(0x30a),'TCtch':_0x5c1c09[_0xcf8c61(0x1f7)],'NINrf':function(_0xd6ecd7,_0x3e0203){const _0x5d30df=_0xcf8c61;return _0x5c1c09[_0x5d30df(0x1b4)](_0xd6ecd7,_0x3e0203);},'znCua':_0x5c1c09[_0xcf8c61(0x21f)],'XqMhX':function(_0x26343f,_0x530754,_0x2195fe){const _0x3e8baa=_0xcf8c61;return _0x5c1c09[_0x3e8baa(0x2bd)](_0x26343f,_0x530754,_0x2195fe);},'UxCCq':function(_0x128c0d,_0xa9d0ff){const _0xb3336b=_0xcf8c61;return _0x5c1c09[_0xb3336b(0x1af)](_0x128c0d,_0xa9d0ff);},'fexyl':_0x5c1c09[_0xcf8c61(0x443)],'YKlQJ':_0x5c1c09[_0xcf8c61(0x30e)],'gFYpQ':function(_0x2b0847){return _0x2b0847();}};$[_0xcf8c61(0x35b)](_0xa10578,async(_0x1790d3,_0x152375,_0x23b9b3)=>{const _0x3f7f5d=_0xcf8c61,_0x40d0e4={};_0x40d0e4[_0x3f7f5d(0x26d)]=_0x8447e0['zwxJW'];const _0x285ec5=_0x40d0e4;if(_0x8447e0[_0x3f7f5d(0x401)](_0x8447e0[_0x3f7f5d(0x3dd)],_0x8447e0[_0x3f7f5d(0x3c8)])){if(_0xd17bfe)_0x39a43f[_0x3f7f5d(0x2a1)](_0x160936+_0x3f7f5d(0x376)),_0x1a31ed[_0x3f7f5d(0x2a1)](_0x4d5425[_0x3f7f5d(0x371)](_0x22e313)),_0x142ba8[_0x3f7f5d(0x264)](_0x15ed80);else{if(_0x8447e0[_0x3f7f5d(0x349)](_0x4ebd18,_0xc444a1)){_0x6a25fd=_0x45e2ed[_0x3f7f5d(0x450)](_0x28ca7a);if(_0x5a16ef)_0x3ceb07[_0x3f7f5d(0x2a1)](_0xc1b831);}}}else try{if(_0x1790d3)console[_0x3f7f5d(0x2a1)](_0x8447e0[_0x3f7f5d(0x342)](_0x513566,_0x8447e0[_0x3f7f5d(0x1cf)])),console[_0x3f7f5d(0x2a1)](JSON[_0x3f7f5d(0x371)](_0x1790d3)),$[_0x3f7f5d(0x264)](_0x1790d3);else{if(_0x8447e0[_0x3f7f5d(0x3cb)](safeGet,_0x23b9b3,_0x513566)){httpResult=JSON[_0x3f7f5d(0x450)](_0x23b9b3);if(logDebug)console[_0x3f7f5d(0x2a1)](httpResult);}}}catch(_0x185ab7){_0x8447e0[_0x3f7f5d(0x336)](_0x8447e0['fexyl'],_0x8447e0[_0x3f7f5d(0x40d)])?_0x3ec446[_0x3f7f5d(0x2a1)](_0x285ec5[_0x3f7f5d(0x26d)]):$[_0x3f7f5d(0x264)](_0x185ab7,_0x152375);}finally{_0x8447e0[_0x3f7f5d(0x3c3)](_0x2cdd32);}});});}function safeGet(_0x1179b0,_0x6944ef){const _0x4337e1=_0x3c3db2,_0x2ae22f={'vbVFq':'.$1','rTIju':function(_0x2c3952,_0x11d2fe){return _0x2c3952(_0x11d2fe);},'AvKIh':_0x4337e1(0x398),'Dstke':_0x4337e1(0x359),'mBTAS':_0x4337e1(0x1ad),'BLGOa':function(_0x1c684d,_0x27616b){return _0x1c684d+_0x27616b;},'MDcKV':_0x4337e1(0x321),'YyRjv':function(_0x1eaac0){return _0x1eaac0();},'cmzFU':function(_0x3630da,_0xe294fe){return _0x3630da==_0xe294fe;},'YSpqy':_0x4337e1(0x3b3),'ZRDNO':function(_0xbf17bb,_0x586ba0){return _0xbf17bb!==_0x586ba0;},'uejoJ':_0x4337e1(0x1d8),'tRcse':_0x4337e1(0x281),'ujStY':function(_0x45d56b,_0x2b6853){return _0x45d56b===_0x2b6853;},'giFuG':_0x4337e1(0x22e),'IatGf':_0x4337e1(0x1ea)};try{if(_0x2ae22f[_0x4337e1(0x38f)](typeof JSON[_0x4337e1(0x450)](_0x1179b0),_0x2ae22f[_0x4337e1(0x217)]))return!![];else{if(_0x2ae22f[_0x4337e1(0x2c1)](_0x2ae22f[_0x4337e1(0x1c5)],_0x2ae22f[_0x4337e1(0x2b4)]))console[_0x4337e1(0x2a1)](_0x4337e1(0x32f)+_0x6944ef+_0x4337e1(0x272)),console[_0x4337e1(0x2a1)](_0x1179b0);else{const _0x154e71=_0x250859[_0x4337e1(0x215)](/\[(\d+)\]/g,_0x2ae22f['vbVFq'])[_0x4337e1(0x373)]('.');let _0x498ef5=_0x122ce8;for(const _0x4127df of _0x154e71)if(_0x498ef5=_0x2ae22f[_0x4337e1(0x360)](_0x357b4d,_0x498ef5)[_0x4127df],void(0x3ab+-0x124c+0xea1)===_0x498ef5)return _0x3f425b;return _0x498ef5;}}}catch(_0x36e037){if(_0x2ae22f[_0x4337e1(0x239)](_0x2ae22f[_0x4337e1(0x39d)],_0x2ae22f['IatGf'])){const _0x7e3e97=new _0x212c38(_0x4337e1(0x242)),_0x463cbd=new _0x4df543(FOgZXj[_0x4337e1(0x20b)],'i'),_0x3a84d1=_0xde9fa5(FOgZXj[_0x4337e1(0x40c)]);!_0x7e3e97[_0x4337e1(0x20c)](_0x3a84d1+FOgZXj[_0x4337e1(0x423)])||!_0x463cbd[_0x4337e1(0x20c)](FOgZXj[_0x4337e1(0x2ee)](_0x3a84d1,FOgZXj[_0x4337e1(0x1b8)]))?FOgZXj[_0x4337e1(0x360)](_0x3a84d1,'0'):FOgZXj[_0x4337e1(0x40f)](_0x44c767);}else return console[_0x4337e1(0x2a1)](_0x36e037),console[_0x4337e1(0x2a1)](_0x4337e1(0x32f)+_0x6944ef+_0x4337e1(0x296)),![];}}function printCaller(){const _0x1a478c=_0x3c3db2;return new Error()[_0x1a478c(0x396)][_0x1a478c(0x373)]('\x0a')[0x24de+-0x1*0x128d+0x2b*-0x6d][_0x1a478c(0x28b)]()[_0x1a478c(0x373)]('\x20')[0x10ef+0x1713+-0x2801];}function getMin(_0x4630e6,_0x48430a){const _0x23b55b=_0x3c3db2,_0x53aee0={};_0x53aee0[_0x23b55b(0x21d)]=function(_0x1daa98,_0x2c0c89){return _0x1daa98<_0x2c0c89;};const _0x1e6cbc=_0x53aee0;return _0x1e6cbc[_0x23b55b(0x21d)](_0x4630e6,_0x48430a)?_0x4630e6:_0x48430a;}function getMax(_0x5d0863,_0x112134){const _0x2d85d5=_0x3c3db2,_0x204f7d={};_0x204f7d[_0x2d85d5(0x2cb)]=function(_0x47e0d0,_0x4a5811){return _0x47e0d0<_0x4a5811;};const _0x5edaba=_0x204f7d;return _0x5edaba[_0x2d85d5(0x2cb)](_0x5d0863,_0x112134)?_0x112134:_0x5d0863;}function EncFunc(_0x4a6a73){const _0x52b1e7=_0x3c3db2;var _0x209017=CryptoJS[_0x52b1e7(0x3aa)][_0x52b1e7(0x3c5)][_0x52b1e7(0x450)](key),_0x592942=CryptoJS[_0x52b1e7(0x3aa)][_0x52b1e7(0x3c5)][_0x52b1e7(0x450)](key),_0x3b819e=CryptoJS[_0x52b1e7(0x3aa)][_0x52b1e7(0x3c5)][_0x52b1e7(0x450)](_0x4a6a73);return encrypted=CryptoJS['DES'][_0x52b1e7(0x3d6)](_0x3b819e,_0x209017,{'iv':_0x592942,'mode':CryptoJS[_0x52b1e7(0x25a)][_0x52b1e7(0x364)],'padding':CryptoJS[_0x52b1e7(0x1f6)][_0x52b1e7(0x3e7)]}),encrypted[_0x52b1e7(0x27d)]['toString']();}function DecFunc(_0x189548){const _0x356641=_0x3c3db2;var _0x40a748=CryptoJS[_0x356641(0x3aa)][_0x356641(0x3c5)]['parse'](key),_0x2cd5f7=CryptoJS[_0x356641(0x3aa)][_0x356641(0x3c5)][_0x356641(0x450)](key),_0xb9d046=CryptoJS[_0x356641(0x258)][_0x356641(0x402)]({'ciphertext':CryptoJS[_0x356641(0x3aa)]['Base64'][_0x356641(0x450)](_0x189548)},_0x40a748,{'iv':_0x2cd5f7,'mode':CryptoJS[_0x356641(0x25a)][_0x356641(0x364)],'padding':CryptoJS[_0x356641(0x1f6)][_0x356641(0x3e7)]});return _0xb9d046[_0x356641(0x23b)](CryptoJS[_0x356641(0x3aa)][_0x356641(0x3c5)]);}function randomString(_0x58699a=-0x5*0x117+0x1*0x413+-0x7*-0x34){const _0x48d988=_0x3c3db2;let _0x1fc0c4=_0x48d988(0x205),_0x1d95fb=_0x1fc0c4[_0x48d988(0x352)],_0x502a43='';for(i=-0x24a*-0x7+0x16c5*-0x1+0xb*0x9d;i<_0x58699a;i++){_0x502a43+=_0x1fc0c4[_0x48d988(0x328)](Math[_0x48d988(0x2e5)](Math[_0x48d988(0x318)]()*_0x1d95fb));}return _0x502a43;}function Env(_0x12e860,_0x40a33a){const _0x5be5f9=_0x3c3db2,_0x561331={'BgBHE':function(_0x3c48cf,_0xe65858){return _0x3c48cf!==_0xe65858;},'cllTX':_0x5be5f9(0x382),'icqbC':function(_0x3583c7,_0xe15cac){return _0x3583c7!==_0xe15cac;},'Yazbr':_0x5be5f9(0x20f),'LMNAX':_0x5be5f9(0x381),'rKKjH':_0x5be5f9(0x29d),'fOONG':_0x5be5f9(0x400),'imynR':function(_0x524508,_0x1c3c39){return _0x524508===_0x1c3c39;},'EjPwJ':_0x5be5f9(0x27a),'yjqOj':'function\x20*\x5c(\x20*\x5c)','Vjvuk':function(_0xc3409f,_0x4d316d){return _0xc3409f(_0x4d316d);},'RrrEK':function(_0x13d907,_0x13ef6f){return _0x13d907+_0x13ef6f;},'QxoKO':function(_0x2ae8bd,_0x58b125){return _0x2ae8bd!==_0x58b125;},'HJsyt':_0x5be5f9(0x25f),'ncFjg':function(_0x3ba79f,_0x1b7a2d){return _0x3ba79f===_0x1b7a2d;},'sylSq':_0x5be5f9(0x3f4),'chMAy':function(_0x21a01a){return _0x21a01a();},'COyNJ':function(_0x29b63d,_0x5b02ce,_0x1c776f){return _0x29b63d(_0x5b02ce,_0x1c776f);},'YfZVL':_0x5be5f9(0x1b9),'uVtaU':_0x5be5f9(0x2ba),'ohqPa':function(_0x22d1d2,_0xb7e717){return _0x22d1d2==_0xb7e717;},'ppsMF':_0x5be5f9(0x1dd),'OUSQS':function(_0x53ea25,_0x5c26ea){return _0x53ea25===_0x5c26ea;},'LARPt':_0x5be5f9(0x341),'TLnDY':_0x5be5f9(0x2e7),'CKVGN':_0x5be5f9(0x3e6),'HqOJD':function(_0x479d69,_0x387242){return _0x479d69!=_0x387242;},'XIIeH':_0x5be5f9(0x2af),'spRkF':_0x5be5f9(0x31a),'OshAO':_0x5be5f9(0x312),'GISVs':function(_0x2e87ab,_0x1e5813){return _0x2e87ab-_0x1e5813;},'tLowA':_0x5be5f9(0x3b4),'EaLWK':function(_0x4e475b,_0x2c24f1){return _0x4e475b!==_0x2c24f1;},'xrprj':_0x5be5f9(0x383),'uoEhK':_0x5be5f9(0x306),'KApIW':function(_0x54aee8,_0x3ae343){return _0x54aee8!==_0x3ae343;},'wornU':_0x5be5f9(0x3e1),'uxKYJ':_0x5be5f9(0x41d),'CLVSH':_0x5be5f9(0x390),'iSbSn':_0x5be5f9(0x1c7),'jMmZu':_0x5be5f9(0x24b),'AbCTw':_0x5be5f9(0x436),'rCKAk':_0x5be5f9(0x1d4),'jIFgf':function(_0x13c9e5,_0x3b9ea3){return _0x13c9e5===_0x3b9ea3;},'FkCSl':_0x5be5f9(0x1c9),'vuApg':function(_0xacd150,_0x307996){return _0xacd150&&_0x307996;},'rkopf':function(_0x46dbce,_0x45c4b7,_0x1581d2,_0x452991){return _0x46dbce(_0x45c4b7,_0x1581d2,_0x452991);},'arddY':function(_0x4b13f9,_0x5e62ac){return _0x4b13f9!==_0x5e62ac;},'lXXWh':_0x5be5f9(0x28c),'TIqaR':function(_0xf34c22,_0x1263cb){return _0xf34c22!==_0x1263cb;},'fwMvb':_0x5be5f9(0x2fb),'CJukz':_0x5be5f9(0x3c9),'NBQAs':function(_0x180bd7,_0x616ec1){return _0x180bd7(_0x616ec1);},'IvynA':_0x5be5f9(0x2e6),'axdqS':function(_0x14ef24,_0xb37e2a){return _0x14ef24!==_0xb37e2a;},'MnCQx':function(_0xa1a0d5,_0x33a513){return _0xa1a0d5(_0x33a513);},'izLuZ':function(_0x5ebbac,_0x34f735){return _0x5ebbac===_0x34f735;},'fnDid':_0x5be5f9(0x1ba),'GXuZi':function(_0x3cf759,_0x5e171c){return _0x3cf759===_0x5e171c;},'IkLUd':_0x5be5f9(0x43b),'YxBYJ':_0x5be5f9(0x294),'ZJIbJ':function(_0x3b1154,_0xfee6c2){return _0x3b1154===_0xfee6c2;},'iOSph':_0x5be5f9(0x2f0),'avXid':function(_0x1b7814,_0x2f9eb0){return _0x1b7814!==_0x2f9eb0;},'YNIYo':_0x5be5f9(0x34c),'yhbzm':_0x5be5f9(0x362),'FPXQh':_0x5be5f9(0x1e7),'xwFNl':_0x5be5f9(0x37a),'OpbvB':_0x5be5f9(0x421),'vnvIj':_0x5be5f9(0x26e),'azOPi':_0x5be5f9(0x1f8),'Jbjrk':function(_0x25d19c,_0x10d80c){return _0x25d19c===_0x10d80c;},'DDkIw':_0x5be5f9(0x393),'HCXoG':_0x5be5f9(0x1d2),'nLbOv':_0x5be5f9(0x305),'ZbFQC':function(_0x14630b,_0x158844){return _0x14630b!==_0x158844;},'uVlhz':_0x5be5f9(0x1e4),'WKbVt':function(_0x3688eb,_0x549478){return _0x3688eb&&_0x549478;},'vDmrW':function(_0x25f1f3,_0x58c3fa,_0xb16694,_0x4d35c2){return _0x25f1f3(_0x58c3fa,_0xb16694,_0x4d35c2);},'Kzuuo':_0x5be5f9(0x26b),'WqwCS':_0x5be5f9(0x41e),'qEuBs':function(_0x4415fa,_0x341f4d){return _0x4415fa*_0x341f4d;},'LjzlE':_0x5be5f9(0x425),'cTZIP':_0x5be5f9(0x2b1),'QoyyA':_0x5be5f9(0x240),'lvMhI':_0x5be5f9(0x2df),'nIfLR':function(_0x55d216,_0x569ef5){return _0x55d216===_0x569ef5;},'Ivath':_0x5be5f9(0x424),'NejFQ':'application/x-www-form-urlencoded','MHelE':_0x5be5f9(0x1bf),'zhCpY':function(_0x2f4c62,_0x46a8a2){return _0x2f4c62+_0x46a8a2;},'lgsqO':function(_0x9469bc,_0x1a95dc){return _0x9469bc/_0x1a95dc;},'SeVpD':function(_0x54957e,_0x2608ee){return _0x54957e+_0x2608ee;},'DZXPr':function(_0x2f1562,_0x4d895d){return _0x2f1562+_0x4d895d;},'XBmlW':function(_0x335cba,_0xff2048){return _0x335cba-_0xff2048;},'gIQxJ':function(_0x29f424,_0x52a9b8){return _0x29f424+_0x52a9b8;},'rSwSP':function(_0x56e68c,_0x1fdc4f){return _0x56e68c+_0x1fdc4f;},'duUwQ':function(_0x300b2f,_0x143ac4){return _0x300b2f!==_0x143ac4;},'LrDbH':_0x5be5f9(0x34d),'ROJFU':_0x5be5f9(0x2e8),'BMuVS':function(_0x28f778,_0x4badc2){return _0x28f778==_0x4badc2;},'VJRih':_0x5be5f9(0x3b3),'TKIlq':_0x5be5f9(0x31f),'CXhdh':function(_0x484fbd,_0x56aa27,_0x17ecdf,_0x41928b,_0x1f4e1d){return _0x484fbd(_0x56aa27,_0x17ecdf,_0x41928b,_0x1f4e1d);},'qMwBb':function(_0x1f7200,_0x85d709){return _0x1f7200(_0x85d709);},'aJFot':_0x5be5f9(0x3a3),'QretR':function(_0x37d577,_0x20141e){return _0x37d577===_0x20141e;},'oteOj':_0x5be5f9(0x295),'PvPDi':function(_0x1f9c3e,_0x469258){return _0x1f9c3e!==_0x469258;},'LJMlc':_0x5be5f9(0x245),'nyIJk':_0x5be5f9(0x29c),'UzTtM':function(_0x321bca,_0x3a0e7b){return _0x321bca/_0x3a0e7b;},'zZOpq':function(_0x5b828e,_0x4ff0a7,_0x442415){return _0x5b828e(_0x4ff0a7,_0x442415);}},_0x244513=(function(){const _0x8c8172=_0x5be5f9,_0x4726d8={'tnkQm':function(_0x34ce25,_0x18bd05){const _0x4b67fa=_0x2bd7;return _0x561331[_0x4b67fa(0x431)](_0x34ce25,_0x18bd05);},'lkcJQ':_0x561331[_0x8c8172(0x2ec)],'QkSpn':function(_0x46064d,_0x1a6c2b){return _0x46064d!==_0x1a6c2b;},'AELJq':_0x8c8172(0x288),'eagdl':_0x8c8172(0x3ba)};if(_0x561331[_0x8c8172(0x1ce)](_0x561331[_0x8c8172(0x3d9)],_0x561331[_0x8c8172(0x3d9)]))return!![];else{let _0x46fe33=!![];return function(_0x51cbd1,_0x481671){const _0x43d2e9=_0x8c8172,_0x1d268c={'gVPxv':function(_0x3f794a,_0xd280a7){const _0x27fe9e=_0x2bd7;return _0x4726d8[_0x27fe9e(0x3ed)](_0x3f794a,_0xd280a7);},'RsMLv':_0x4726d8[_0x43d2e9(0x2cd)]};if(_0x4726d8[_0x43d2e9(0x2ae)](_0x4726d8[_0x43d2e9(0x391)],_0x4726d8[_0x43d2e9(0x30f)])){const _0xb456aa=_0x46fe33?function(){const _0x4cfbf0=_0x43d2e9;if(_0x481671){if(_0x1d268c[_0x4cfbf0(0x254)](_0x1d268c[_0x4cfbf0(0x335)],_0x1d268c[_0x4cfbf0(0x335)])){if(_0x3db67b){const _0x537447=_0x2b627f[_0x4cfbf0(0x1b7)](_0x26cae1,arguments);return _0x38e97e=null,_0x537447;}}else{const _0x29e9c4=_0x481671[_0x4cfbf0(0x1b7)](_0x51cbd1,arguments);return _0x481671=null,_0x29e9c4;}}}:function(){};return _0x46fe33=![],_0xb456aa;}else return _0x3bfc22[_0x43d2e9(0x2a1)](_0x1b7c0a),_0x61944e[_0x43d2e9(0x2a1)](_0x43d2e9(0x32f)+_0x33c291+_0x43d2e9(0x296)),![];};}}()),_0x1953ec=_0x561331[_0x5be5f9(0x218)](_0x244513,this,function(){const _0x4335c3=_0x5be5f9;if(_0x561331[_0x4335c3(0x351)]!==_0x561331[_0x4335c3(0x1bb)])return _0x1953ec[_0x4335c3(0x23b)]()[_0x4335c3(0x333)](_0x561331[_0x4335c3(0x43c)])[_0x4335c3(0x23b)]()[_0x4335c3(0x2d9)](_0x1953ec)[_0x4335c3(0x333)](_0x561331[_0x4335c3(0x43c)]);else _0x59040a[_0x4335c3(0x2a1)]('账号'+_0x1959f5+_0x4335c3(0x432)+_0x1346a3[_0x4335c3(0x3c6)]);});_0x561331[_0x5be5f9(0x20d)](_0x1953ec);const _0x285a14=(function(){let _0x1c68ad=!![];return function(_0x5171b5,_0x1eddb0){const _0x5caa74=_0x2bd7,_0x22f9ec={'eVIZD':_0x5caa74(0x374),'xxscv':function(_0x561640,_0xaf9144){const _0x2289fe=_0x5caa74;return _0x561331[_0x2289fe(0x257)](_0x561640,_0xaf9144);},'CWvEo':_0x5caa74(0x416),'MsFPZ':_0x561331[_0x5caa74(0x3fd)]},_0x50ba49=_0x1c68ad?function(){const _0x478091=_0x5caa74;if(_0x22f9ec[_0x478091(0x2d3)](_0x22f9ec[_0x478091(0x204)],_0x22f9ec[_0x478091(0x204)])){if(_0x1eddb0){if(_0x22f9ec[_0x478091(0x2d3)](_0x22f9ec[_0x478091(0x21e)],_0x22f9ec[_0x478091(0x21e)])){const _0x500694=_0x1eddb0[_0x478091(0x1b7)](_0x5171b5,arguments);return _0x1eddb0=null,_0x500694;}else _0x568611[_0x478091(0x2a1)](_0x22f9ec[_0x478091(0x1fc)]);}}else{var _0x200280=_0x41ad8b['enc'][_0x478091(0x3c5)][_0x478091(0x450)](_0x20827d),_0x9d8aad=_0x1fd096[_0x478091(0x3aa)][_0x478091(0x3c5)][_0x478091(0x450)](_0x2f653b);const _0x24de14={};_0x24de14['iv']=_0x9d8aad,_0x24de14[_0x478091(0x25a)]=_0x376654[_0x478091(0x25a)][_0x478091(0x364)],_0x24de14['padding']=_0x46ab32[_0x478091(0x1f6)][_0x478091(0x3e7)];var _0x2b2555=_0x461b8f[_0x478091(0x258)][_0x478091(0x402)]({'ciphertext':_0x3bd311[_0x478091(0x3aa)][_0x478091(0x41f)][_0x478091(0x450)](_0x25aa98)},_0x200280,_0x24de14);return _0x2b2555[_0x478091(0x23b)](_0x6cec3d[_0x478091(0x3aa)][_0x478091(0x3c5)]);}}:function(){};return _0x1c68ad=![],_0x50ba49;};}());(function(){const _0xf6fcaf=_0x5be5f9,_0x3a7a3c={'xquFB':_0x561331[_0xf6fcaf(0x291)],'SwYBG':function(_0x8da32d,_0x251c68){const _0x4edea1=_0xf6fcaf;return _0x561331[_0x4edea1(0x405)](_0x8da32d,_0x251c68);},'urYLv':_0xf6fcaf(0x359),'XOGqH':function(_0x2d2531,_0x341e2d){const _0x258422=_0xf6fcaf;return _0x561331[_0x258422(0x303)](_0x2d2531,_0x341e2d);},'JLxRB':function(_0x27f7a2,_0x328156){const _0x3ae2c8=_0xf6fcaf;return _0x561331[_0x3ae2c8(0x234)](_0x27f7a2,_0x328156);},'apGbb':_0x561331[_0xf6fcaf(0x277)],'dyLcd':function(_0x228b50,_0x3f35d3){const _0x5a4e20=_0xf6fcaf;return _0x561331[_0x5a4e20(0x33d)](_0x228b50,_0x3f35d3);},'napMW':_0x561331[_0xf6fcaf(0x23c)],'tvNIE':function(_0x3099a2){const _0x342e9a=_0xf6fcaf;return _0x561331[_0x342e9a(0x20d)](_0x3099a2);}};_0x561331[_0xf6fcaf(0x297)](_0x285a14,this,function(){const _0x39cf95=_0xf6fcaf,_0x3114e2=new RegExp(_0x3a7a3c[_0x39cf95(0x292)]),_0x2a4b20=new RegExp(_0x39cf95(0x398),'i'),_0x3055d1=_0x3a7a3c[_0x39cf95(0x243)](_0xd5a0b3,_0x3a7a3c[_0x39cf95(0x229)]);!_0x3114e2[_0x39cf95(0x20c)](_0x3a7a3c[_0x39cf95(0x378)](_0x3055d1,_0x39cf95(0x1ad)))||!_0x2a4b20[_0x39cf95(0x20c)](_0x3055d1+_0x39cf95(0x321))?_0x3a7a3c[_0x39cf95(0x2a9)](_0x3a7a3c[_0x39cf95(0x344)],_0x3a7a3c[_0x39cf95(0x344)])?_0x34049c[_0x39cf95(0x2a1)](_0x512b34[_0x39cf95(0x2ca)]):_0x3055d1('0'):_0x3a7a3c[_0x39cf95(0x255)](_0x39cf95(0x3f4),_0x3a7a3c[_0x39cf95(0x28d)])?_0x3a7a3c[_0x39cf95(0x299)](_0xd5a0b3):_0x5cef49[_0x39cf95(0x2a1)](_0x39cf95(0x43d)+_0x3717d7+_0x39cf95(0x334)+_0x3e6896[_0x39cf95(0x355)]);})();}());class _0xb812d9{constructor(_0x2e1cba){const _0x2bf393=_0x5be5f9;this[_0x2bf393(0x419)]=_0x2e1cba;}[_0x5be5f9(0x1c0)](_0x22deeb,_0x215ba6=_0x5be5f9(0x319)){const _0x2f0cb6=_0x5be5f9;if(_0x561331[_0x2f0cb6(0x426)]===_0x561331[_0x2f0cb6(0x354)])return _0x407fb9[_0x2f0cb6(0x450)](_0x39815b);else{_0x22deeb=_0x561331[_0x2f0cb6(0x369)](_0x561331[_0x2f0cb6(0x235)],typeof _0x22deeb)?{'url':_0x22deeb}:_0x22deeb;let _0x3c2eb1=this[_0x2f0cb6(0x35b)];return _0x561331[_0x2f0cb6(0x1e0)](_0x2f0cb6(0x2e7),_0x215ba6)&&(_0x3c2eb1=this[_0x2f0cb6(0x3d7)]),new Promise((_0x130b53,_0x325a28)=>{const _0x413d0c=_0x2f0cb6,_0x26e2e1={'Owzxt':function(_0x1635af,_0x3785a2){const _0x34f377=_0x2bd7;return _0x561331[_0x34f377(0x405)](_0x1635af,_0x3785a2);}};_0x3c2eb1[_0x413d0c(0x3f8)](this,_0x22deeb,(_0x25810c,_0x14b77f,_0x30ea85)=>{const _0x2f790d=_0x413d0c;_0x25810c?_0x26e2e1[_0x2f790d(0x338)](_0x325a28,_0x25810c):_0x26e2e1[_0x2f790d(0x338)](_0x130b53,_0x14b77f);});});}}[_0x5be5f9(0x35b)](_0xb4ccb6){const _0x197cc7=_0x5be5f9;return _0x561331[_0x197cc7(0x3b0)]!==_0x561331[_0x197cc7(0x3b0)]?!![]:this[_0x197cc7(0x1c0)][_0x197cc7(0x3f8)](this['env'],_0xb4ccb6);}[_0x5be5f9(0x3d7)](_0x3aedb2){const _0x48495f=_0x5be5f9;return this[_0x48495f(0x1c0)][_0x48495f(0x3f8)](this[_0x48495f(0x419)],_0x3aedb2,_0x561331[_0x48495f(0x385)]);}}return new class{constructor(_0x32c390,_0x4674aa){const _0x2149b2=_0x5be5f9;this[_0x2149b2(0x2ac)]=_0x32c390,this[_0x2149b2(0x251)]=new _0xb812d9(this),this[_0x2149b2(0x33c)]=null,this[_0x2149b2(0x32b)]=_0x561331[_0x2149b2(0x346)],this[_0x2149b2(0x3b8)]=[],this[_0x2149b2(0x293)]=!(-0x2bf+-0x84d*0x4+-0xd*-0x2c4),this[_0x2149b2(0x2de)]=!(0x1ddb+0x1273+-0x304d),this[_0x2149b2(0x2b2)]='\x0a',this[_0x2149b2(0x445)]=new Date()[_0x2149b2(0x2c5)](),Object['assign'](this,_0x4674aa),this[_0x2149b2(0x2a1)]('','🔔'+this[_0x2149b2(0x2ac)]+_0x2149b2(0x37e));}['isNode'](){const _0x1e9e1e=_0x5be5f9;if(_0x1e9e1e(0x1fb)===_0x1e9e1e(0x1ee))_0x245785=_0xbf3eaf[_0x1e9e1e(0x373)]('@');else return _0x561331[_0x1e9e1e(0x33f)](_0x561331[_0x1e9e1e(0x452)],typeof module)&&!!module[_0x1e9e1e(0x404)];}[_0x5be5f9(0x350)](){const _0x5268fa=_0x5be5f9;if(_0x561331[_0x5268fa(0x203)]===_0x561331[_0x5268fa(0x203)])return _0x561331[_0x5268fa(0x33f)](_0x561331[_0x5268fa(0x452)],typeof $task);else return;}['isSurge'](){const _0x23c374=_0x5be5f9,_0x13c144={'ETsOa':function(_0x3abb48,_0x180141){return _0x3abb48(_0x180141);}};if(_0x561331[_0x23c374(0x1e0)](_0x23c374(0x312),_0x561331[_0x23c374(0x1db)]))return _0x561331[_0x23c374(0x33f)](_0x561331[_0x23c374(0x452)],typeof $httpClient)&&_0x561331[_0x23c374(0x369)](_0x561331[_0x23c374(0x452)],typeof $loon);else _0x3f5d13[_0x23c374(0x3f8)](this,_0x1c74fd,(_0x1303d1,_0x19d5bf,_0x3b164b)=>{const _0x5ca7a2=_0x23c374;_0x1303d1?_0x13c144[_0x5ca7a2(0x38c)](_0x56c487,_0x1303d1):_0x13a8d7(_0x19d5bf);});}[_0x5be5f9(0x2c8)](){const _0x1a5fa0=_0x5be5f9;return _0x561331[_0x1a5fa0(0x33f)](_0x561331[_0x1a5fa0(0x452)],typeof $loon);}[_0x5be5f9(0x1d5)](_0x2c0573,_0x3af6b6=null){const _0x460ab0=_0x5be5f9,_0x1cf293={'kWVdD':function(_0x42add0,_0x499813){return _0x561331['QxoKO'](_0x42add0,_0x499813);},'cwmgo':function(_0x5b3dc4,_0x578756){const _0x4c0e73=_0x2bd7;return _0x561331[_0x4c0e73(0x2f3)](_0x5b3dc4,_0x578756);}};if(_0x561331[_0x460ab0(0x1e0)](_0x561331[_0x460ab0(0x22f)],_0x460ab0(0x216)))return _0x1cf293[_0x460ab0(0x372)](_0x511042(_0xbe2fb2),_0x33eba6)?_0x591a76:(_0x56cf5f['isArray'](_0x4048c0)||(_0x260faa=_0x23d0b6[_0x460ab0(0x23b)]()[_0x460ab0(0x2f1)](/[^.[\]]+/g)||[]),_0x4d17a0[_0x460ab0(0x2fd)](-0x10dd*-0x2+0x1b08+0x16*-0x2c3,-(-0x1*0x23d5+0xbfc+-0x47*-0x56))[_0x460ab0(0x210)]((_0x29577d,_0x4ae758,_0x1aafd9)=>_0x4ceafe(_0x29577d[_0x4ae758])===_0x29577d[_0x4ae758]?_0x29577d[_0x4ae758]:_0x29577d[_0x4ae758]=_0x545a08[_0x460ab0(0x23a)](_0x95c1c0[_0x1aafd9+(-0xa8f+0xc91*0x2+0x2*-0x749)])>>0x1e7f*-0x1+-0x4cd*0x1+-0xfb*-0x24==+_0x1460b4[_0x1aafd9+(-0x2460+-0x1f*0x4+-0x24dd*-0x1)]?[]:{},_0x584f99)[_0x586167[_0x1cf293[_0x460ab0(0x266)](_0x57b634[_0x460ab0(0x352)],0x1085*0x1+0xf11+0x3*-0xa87)]]=_0x4a8e25,_0x157682);else try{return JSON[_0x460ab0(0x450)](_0x2c0573);}catch{if(_0x561331[_0x460ab0(0x343)](_0x561331[_0x460ab0(0x2ea)],_0x561331[_0x460ab0(0x2ea)])){const _0x969463=_0x5730d4?_0x1f021f:_0x5b733e;try{return _0x26dc56[_0x460ab0(0x450)](this['fs'][_0x460ab0(0x225)](_0x969463));}catch(_0x1e63b0){return{};}}else return _0x3af6b6;}}[_0x5be5f9(0x36b)](_0xfdf6da,_0x9ec40c=null){const _0x390ca4=_0x5be5f9;if(_0x561331[_0x390ca4(0x262)](_0x390ca4(0x3e1),_0x561331[_0x390ca4(0x429)]))_0x595271[_0x390ca4(0x2a1)](_0x561331[_0x390ca4(0x3d3)]);else try{return JSON[_0x390ca4(0x371)](_0xfdf6da);}catch{return _0x561331[_0x390ca4(0x262)](_0x561331[_0x390ca4(0x2e0)],_0x390ca4(0x41d))?{}:_0x9ec40c;}}[_0x5be5f9(0x253)](_0x853a60,_0xa9bd43){const _0x32b504=_0x5be5f9;let _0x5549ab=_0xa9bd43;const _0x3610bd=this[_0x32b504(0x1bc)](_0x853a60);if(_0x3610bd)try{if(_0x561331[_0x32b504(0x1e0)](_0x561331[_0x32b504(0x420)],_0x561331['iSbSn'])){const _0x9b7124={};_0x9b7124[_0x32b504(0x3ea)]=_0x3a8db7,this[_0x32b504(0x35b)](_0x9b7124,(_0x3f11a1,_0x43626d,_0x1b550b)=>_0xe0f09e(_0x1b550b));}else _0x5549ab=JSON[_0x32b504(0x450)](this[_0x32b504(0x1bc)](_0x853a60));}catch{}return _0x5549ab;}[_0x5be5f9(0x219)](_0x53fe06,_0x288a2c){const _0x39cfca=_0x5be5f9;try{return this[_0x39cfca(0x2d4)](JSON[_0x39cfca(0x371)](_0x53fe06),_0x288a2c);}catch{return!(-0x11ea*0x2+-0x400*-0x5+-0x15*-0xc1);}}[_0x5be5f9(0x287)](_0x4a4c0a){return new Promise(_0x29a885=>{const _0x211e3a=_0x2bd7,_0x4cf6c2={};_0x4cf6c2[_0x211e3a(0x3ea)]=_0x4a4c0a,this[_0x211e3a(0x35b)](_0x4cf6c2,(_0x50b7ef,_0xf9d136,_0x38c1f5)=>_0x29a885(_0x38c1f5));});}[_0x5be5f9(0x326)](_0x5dd160,_0x159a73){const _0x5d3d9f=_0x5be5f9;return new Promise(_0x45c50a=>{const _0x5e410d=_0x2bd7;let _0x121602=this[_0x5e410d(0x1bc)](_0x561331[_0x5e410d(0x1e6)]);_0x121602=_0x121602?_0x121602[_0x5e410d(0x215)](/\n/g,'')[_0x5e410d(0x28b)]():_0x121602;let _0x431f5c=this[_0x5e410d(0x1bc)](_0x561331[_0x5e410d(0x2d1)]);_0x431f5c=_0x431f5c?(-0x1d8a+0x1a*0xb6+0xb0f)*_0x431f5c:-0x1cd*-0x10+0x1*0x1c73+-0x392f*0x1,_0x431f5c=_0x159a73&&_0x159a73[_0x5e410d(0x26f)]?_0x159a73[_0x5e410d(0x26f)]:_0x431f5c;const _0x171bf3={};_0x171bf3[_0x5e410d(0x1ae)]=_0x5dd160,_0x171bf3[_0x5e410d(0x3e3)]=_0x5e410d(0x425),_0x171bf3[_0x5e410d(0x26f)]=_0x431f5c;const [_0x54df06,_0x1a1d27]=_0x121602[_0x5e410d(0x373)]('@'),_0x470f58={'url':_0x5e410d(0x21b)+_0x1a1d27+_0x5e410d(0x25e),'body':_0x171bf3,'headers':{'X-Key':_0x54df06,'Accept':_0x561331[_0x5e410d(0x3f9)]}};this[_0x5e410d(0x3d7)](_0x470f58,(_0x556077,_0x477f45,_0x2f230c)=>_0x45c50a(_0x2f230c));})[_0x5d3d9f(0x375)](_0x405eef=>this[_0x5d3d9f(0x264)](_0x405eef));}[_0x5be5f9(0x1cc)](){const _0x3e3193=_0x5be5f9;if(!this[_0x3e3193(0x25c)]())return{};{if(_0x561331[_0x3e3193(0x3d1)](_0x3e3193(0x1c9),_0x561331[_0x3e3193(0x285)])){this['fs']=this['fs']?this['fs']:require('fs'),this[_0x3e3193(0x3ee)]=this[_0x3e3193(0x3ee)]?this[_0x3e3193(0x3ee)]:require('path');const _0x38af91=this[_0x3e3193(0x3ee)][_0x3e3193(0x433)](this[_0x3e3193(0x32b)]),_0x244ee3=this[_0x3e3193(0x3ee)][_0x3e3193(0x433)](process[_0x3e3193(0x3a6)](),this[_0x3e3193(0x32b)]),_0x33919a=this['fs']['existsSync'](_0x38af91),_0x424140=!_0x33919a&&this['fs'][_0x3e3193(0x2c6)](_0x244ee3);if(_0x561331['vuApg'](!_0x33919a,!_0x424140))return{};{const _0x2270e1=_0x33919a?_0x38af91:_0x244ee3;try{return JSON[_0x3e3193(0x450)](this['fs'][_0x3e3193(0x225)](_0x2270e1));}catch(_0x1dd339){return{};}}}else return _0x561331[_0x3e3193(0x33f)](_0x3e3193(0x2af),typeof _0x2de6b6);}}[_0x5be5f9(0x2fa)](){const _0x31f5fc=_0x5be5f9,_0x135cda={'SwkZh':function(_0x212671,_0x3de73f,_0x134f34,_0x2fde4a){const _0x2491c0=_0x2bd7;return _0x561331[_0x2491c0(0x29b)](_0x212671,_0x3de73f,_0x134f34,_0x2fde4a);}};if(this[_0x31f5fc(0x25c)]()){if(_0x561331[_0x31f5fc(0x267)](_0x561331[_0x31f5fc(0x2a3)],_0x561331[_0x31f5fc(0x2a3)])){const _0x213f22={'DYcSz':function(_0x802e19,_0x389bd0,_0x3d18c2,_0x190500){const _0x3e7d60=_0x31f5fc;return _0x135cda[_0x3e7d60(0x3ae)](_0x802e19,_0x389bd0,_0x3d18c2,_0x190500);}};this['initGotEnv'](_0xcb1a4d);const {url:_0x5d4ac3,..._0x51d1df}=_0x3a8d11;this[_0x31f5fc(0x379)][_0x31f5fc(0x3d7)](_0x5d4ac3,_0x51d1df)[_0x31f5fc(0x250)](_0x488f74=>{const _0x93822f=_0x31f5fc,{statusCode:_0x1cab13,statusCode:_0x423264,headers:_0x101a02,body:_0x4e50b8}=_0x488f74,_0x14cbd9={};_0x14cbd9[_0x93822f(0x3ec)]=_0x1cab13,_0x14cbd9[_0x93822f(0x44c)]=_0x423264,_0x14cbd9[_0x93822f(0x314)]=_0x101a02,_0x14cbd9[_0x93822f(0x45a)]=_0x4e50b8,_0x213f22['DYcSz'](_0xfa955c,null,_0x14cbd9,_0x4e50b8);},_0x49ede0=>{const _0xdca72c=_0x31f5fc,{message:_0x172d37,response:_0x395961}=_0x49ede0;_0x213f22[_0xdca72c(0x200)](_0x254909,_0x172d37,_0x395961,_0x395961&&_0x395961[_0xdca72c(0x45a)]);});}else{this['fs']=this['fs']?this['fs']:require('fs'),this[_0x31f5fc(0x3ee)]=this[_0x31f5fc(0x3ee)]?this[_0x31f5fc(0x3ee)]:require('path');const _0x524b6f=this[_0x31f5fc(0x3ee)][_0x31f5fc(0x433)](this['dataFile']),_0x23279c=this[_0x31f5fc(0x3ee)][_0x31f5fc(0x433)](process[_0x31f5fc(0x3a6)](),this[_0x31f5fc(0x32b)]),_0x31dce4=this['fs'][_0x31f5fc(0x2c6)](_0x524b6f),_0x2d72b9=!_0x31dce4&&this['fs'][_0x31f5fc(0x2c6)](_0x23279c),_0x3192aa=JSON[_0x31f5fc(0x371)](this[_0x31f5fc(0x33c)]);_0x31dce4?this['fs'][_0x31f5fc(0x223)](_0x524b6f,_0x3192aa):_0x2d72b9?this['fs'][_0x31f5fc(0x223)](_0x23279c,_0x3192aa):this['fs'][_0x31f5fc(0x223)](_0x524b6f,_0x3192aa);}}}[_0x5be5f9(0x33a)](_0x517799,_0x1ae47,_0x238372){const _0x2a1b11=_0x5be5f9;if(_0x561331[_0x2a1b11(0x23d)](_0x561331[_0x2a1b11(0x32e)],_0x561331['CJukz'])){const _0x249e92=_0x1ae47[_0x2a1b11(0x215)](/\[(\d+)\]/g,_0x2a1b11(0x315))[_0x2a1b11(0x373)]('.');let _0x19fb02=_0x517799;for(const _0x2afbee of _0x249e92)if(_0x19fb02=_0x561331[_0x2a1b11(0x3de)](Object,_0x19fb02)[_0x2afbee],void(-0x2392+-0x1634+-0x1ce3*-0x2)===_0x19fb02)return _0x238372;return _0x19fb02;}else{const {message:_0x15e3c9,response:_0x5aea0d}=_0x458aef;_0x3188d8(_0x15e3c9,_0x5aea0d,_0x5aea0d&&_0x5aea0d[_0x2a1b11(0x45a)]);}}[_0x5be5f9(0x367)](_0xcfdfc7,_0x3374da,_0x372b35){const _0x499c22=_0x5be5f9;return _0x561331[_0x499c22(0x3d1)](_0x561331[_0x499c22(0x413)],_0x499c22(0x241))?_0x224cd4[_0x499c22(0x450)](this['fs'][_0x499c22(0x225)](_0x175ed3)):_0x561331[_0x499c22(0x32c)](_0x561331[_0x499c22(0x2b3)](Object,_0xcfdfc7),_0xcfdfc7)?_0xcfdfc7:(Array[_0x499c22(0x415)](_0x3374da)||(_0x3374da=_0x3374da[_0x499c22(0x23b)]()[_0x499c22(0x2f1)](/[^.[\]]+/g)||[]),_0x3374da[_0x499c22(0x2fd)](0x1*0x36f+0x10f8+-0x3*0x6cd,-(0x107*-0x23+-0x2*0x10a3+-0x4*-0x114f))[_0x499c22(0x210)]((_0x33391f,_0x5b29ec,_0x13a23b)=>Object(_0x33391f[_0x5b29ec])===_0x33391f[_0x5b29ec]?_0x33391f[_0x5b29ec]:_0x33391f[_0x5b29ec]=Math[_0x499c22(0x23a)](_0x3374da[_0x13a23b+(0x2507+-0xf3f*-0x1+-0x3445)])>>0x61a+0x1692+0xe56*-0x2==+_0x3374da[_0x13a23b+(-0x37f*-0x6+-0x2*-0xf17+0x5*-0xa3b)]?[]:{},_0xcfdfc7)[_0x3374da[_0x3374da[_0x499c22(0x352)]-(-0x5*-0x244+-0xce*-0x2+0xb*-0x12d)]]=_0x372b35,_0xcfdfc7);}[_0x5be5f9(0x1bc)](_0x267166){const _0xd6ed4a=_0x5be5f9,_0x2e23aa={'QexcT':function(_0x1b5869,_0xe2ffa6){const _0x42def1=_0x2bd7;return _0x561331[_0x42def1(0x369)](_0x1b5869,_0xe2ffa6);}};if(_0x561331[_0xd6ed4a(0x2e3)](_0x561331[_0xd6ed4a(0x23e)],_0xd6ed4a(0x226))){let _0x2273e1=_0x452214[_0xd6ed4a(0x450)](_0x1e0dc5);if(_0x32c1a1)_0x32a633[_0xd6ed4a(0x2a1)](_0x2273e1);_0x2273e1[''+_0x5996f1]&&_0x2e23aa[_0xd6ed4a(0x44b)](_0x2273e1[''+_0x49608a],0x198d+-0x5*-0x70d+-0x3ccd)?(_0x8beee4=!![],_0x2cc2b7[_0xd6ed4a(0x2a1)](_0x2273e1[_0xd6ed4a(0x355)])):_0x31bc80[_0xd6ed4a(0x2a1)](_0x2273e1[_0xd6ed4a(0x2ca)]);}else{let _0x394339=this[_0xd6ed4a(0x2b0)](_0x267166);if(/^@/[_0xd6ed4a(0x20c)](_0x267166)){const [,_0xe146dd,_0x3678f1]=/^@(.*?)\.(.*?)$/[_0xd6ed4a(0x1e5)](_0x267166),_0x448058=_0xe146dd?this[_0xd6ed4a(0x2b0)](_0xe146dd):'';if(_0x448058)try{if(_0x561331[_0xd6ed4a(0x248)](_0x561331[_0xd6ed4a(0x21a)],_0x561331[_0xd6ed4a(0x2ff)])){const {message:_0x54d56f,response:_0x40c1a4}=_0x2b99a6;_0x5045b4(_0x54d56f,_0x40c1a4,_0x40c1a4&&_0x40c1a4[_0xd6ed4a(0x45a)]);}else{const _0x2040e6=JSON[_0xd6ed4a(0x450)](_0x448058);_0x394339=_0x2040e6?this[_0xd6ed4a(0x33a)](_0x2040e6,_0x3678f1,''):_0x394339;}}catch(_0x51c83d){_0x394339='';}}return _0x394339;}}[_0x5be5f9(0x2d4)](_0x13c86a,_0x1a94fd){const _0xc0b17e=_0x5be5f9;let _0x3b5d0b=!(0x5bc*0x1+-0x1*-0x15d4+-0x1b8f);if(/^@/[_0xc0b17e(0x20c)](_0x1a94fd)){const [,_0x4830c1,_0x5ba256]=/^@(.*?)\.(.*?)$/[_0xc0b17e(0x1e5)](_0x1a94fd),_0x4d6701=this[_0xc0b17e(0x2b0)](_0x4830c1),_0x1816ee=_0x4830c1?_0x561331[_0xc0b17e(0x1d7)](_0x561331[_0xc0b17e(0x2c0)],_0x4d6701)?null:_0x4d6701||'{}':'{}';try{const _0x1c84b8=JSON[_0xc0b17e(0x450)](_0x1816ee);this[_0xc0b17e(0x367)](_0x1c84b8,_0x5ba256,_0x13c86a),_0x3b5d0b=this[_0xc0b17e(0x271)](JSON[_0xc0b17e(0x371)](_0x1c84b8),_0x4830c1);}catch(_0x4cfcb0){const _0x26f6fa={};this[_0xc0b17e(0x367)](_0x26f6fa,_0x5ba256,_0x13c86a),_0x3b5d0b=this[_0xc0b17e(0x271)](JSON[_0xc0b17e(0x371)](_0x26f6fa),_0x4830c1);}}else _0x3b5d0b=this[_0xc0b17e(0x271)](_0x13c86a,_0x1a94fd);return _0x3b5d0b;}[_0x5be5f9(0x2b0)](_0x256018){const _0x3bff97=_0x5be5f9;if(_0x561331[_0x3bff97(0x279)](_0x561331[_0x3bff97(0x438)],_0x3bff97(0x2b8)))return this[_0x3bff97(0x1e8)]()||this[_0x3bff97(0x2c8)]()?$persistentStore[_0x3bff97(0x32a)](_0x256018):this[_0x3bff97(0x350)]()?$prefs[_0x3bff97(0x322)](_0x256018):this[_0x3bff97(0x25c)]()?(this[_0x3bff97(0x33c)]=this[_0x3bff97(0x1cc)](),this[_0x3bff97(0x33c)][_0x256018]):this[_0x3bff97(0x33c)]&&this[_0x3bff97(0x33c)][_0x256018]||null;else{_0x34e4d9=_0x432f61[_0x3bff97(0x450)](_0x16e764);if(_0x5d2669)_0x402f4d[_0x3bff97(0x2a1)](_0x564a42);}}[_0x5be5f9(0x271)](_0x2dfb2a,_0x27ddca){const _0x2d3e50=_0x5be5f9;return _0x561331[_0x2d3e50(0x1d7)](_0x2d3e50(0x362),_0x561331[_0x2d3e50(0x3a8)])?this[_0x2d3e50(0x1e8)]()||this[_0x2d3e50(0x2c8)]()?$persistentStore[_0x2d3e50(0x411)](_0x2dfb2a,_0x27ddca):this[_0x2d3e50(0x350)]()?$prefs[_0x2d3e50(0x2d0)](_0x2dfb2a,_0x27ddca):this[_0x2d3e50(0x25c)]()?(this[_0x2d3e50(0x33c)]=this[_0x2d3e50(0x1cc)](),this[_0x2d3e50(0x33c)][_0x27ddca]=_0x2dfb2a,this[_0x2d3e50(0x2fa)](),!(0xc*0x12e+0xb1*-0x1d+0x5e5)):this[_0x2d3e50(0x33c)]&&this[_0x2d3e50(0x33c)][_0x27ddca]||null:new _0x4599c5(_0x746536=>_0x2eac12(_0x746536,_0xce1e1c));}[_0x5be5f9(0x339)](_0x45372c){const _0x17e703=_0x5be5f9;this[_0x17e703(0x379)]=this[_0x17e703(0x379)]?this[_0x17e703(0x379)]:require('got'),this[_0x17e703(0x1b2)]=this[_0x17e703(0x1b2)]?this[_0x17e703(0x1b2)]:require('tough-cookie'),this[_0x17e703(0x2bf)]=this[_0x17e703(0x2bf)]?this[_0x17e703(0x2bf)]:new this[(_0x17e703(0x1b2))][(_0x17e703(0x31e))](),_0x45372c&&(_0x45372c[_0x17e703(0x314)]=_0x45372c[_0x17e703(0x314)]?_0x45372c[_0x17e703(0x314)]:{},_0x561331[_0x17e703(0x1d7)](void(-0x2*0xdfa+-0x1137+-0x1*-0x2d2b),_0x45372c[_0x17e703(0x314)][_0x17e703(0x2da)])&&_0x561331[_0x17e703(0x1d7)](void(-0x26*0x1f+-0x1df6+0x2290),_0x45372c[_0x17e703(0x363)])&&(_0x45372c[_0x17e703(0x363)]=this[_0x17e703(0x2bf)]));}[_0x5be5f9(0x35b)](_0x1caadb,_0x4dc55d=()=>{}){const _0x2badfd=_0x5be5f9,_0x515c51={'CLuee':_0x561331[_0x2badfd(0x453)],'jtFNN':_0x561331[_0x2badfd(0x3d4)],'tQqMD':function(_0x3542da,_0xb08327){const _0x1e8fa4=_0x2badfd;return _0x561331[_0x1e8fa4(0x35c)](_0x3542da,_0xb08327);},'UadEJ':_0x561331[_0x2badfd(0x26a)],'yCrND':function(_0x276c51,_0x267c16){const _0x5148ae=_0x2badfd;return _0x561331[_0x5148ae(0x414)](_0x276c51,_0x267c16);},'YPPdx':function(_0xb9e9a6,_0x3af58f,_0x56f379,_0x43f425){const _0x1b959d=_0x2badfd;return _0x561331[_0x1b959d(0x29b)](_0xb9e9a6,_0x3af58f,_0x56f379,_0x43f425);},'nTFcH':function(_0x101d7a,_0x376ff3,_0x24a731,_0x1a6853){const _0x23a28b=_0x2badfd;return _0x561331[_0x23a28b(0x35e)](_0x101d7a,_0x376ff3,_0x24a731,_0x1a6853);},'yBsOy':function(_0x5d4fa5,_0x4055ef,_0x19093e,_0x1f360b){const _0x345239=_0x2badfd;return _0x561331[_0x345239(0x35e)](_0x5d4fa5,_0x4055ef,_0x19093e,_0x1f360b);}},_0x2220d4={};_0x2220d4[_0x2badfd(0x1ac)]=!(0x1774+0x1*-0x114e+-0x625);const _0x45dd0c={};_0x45dd0c[_0x2badfd(0x458)]=!(-0x255b+-0xb5b+0x1*0x30b7),(_0x1caadb[_0x2badfd(0x314)]&&(delete _0x1caadb[_0x2badfd(0x314)][_0x561331[_0x2badfd(0x370)]],delete _0x1caadb[_0x2badfd(0x314)][_0x561331[_0x2badfd(0x20e)]]),this[_0x2badfd(0x1e8)]()||this[_0x2badfd(0x2c8)]()?(this[_0x2badfd(0x1e8)]()&&this[_0x2badfd(0x2de)]&&(_0x1caadb[_0x2badfd(0x314)]=_0x1caadb[_0x2badfd(0x314)]||{},Object[_0x2badfd(0x331)](_0x1caadb[_0x2badfd(0x314)],_0x2220d4)),$httpClient[_0x2badfd(0x35b)](_0x1caadb,(_0x1ea1df,_0x350cd7,_0x2f2be4)=>{const _0x47b968=_0x2badfd;if(_0x515c51[_0x47b968(0x39b)](_0x47b968(0x1e4),_0x515c51[_0x47b968(0x35d)])){let _0x1d48ad=_0x453092[_0x515c51[_0x47b968(0x3df)]]||_0x42e425[_0x47b968(0x3ea)]||_0x497a35[_0x47b968(0x260)],_0x2151ef=_0x1b4f67[_0x515c51[_0x47b968(0x2f9)]]||_0x49972c[_0x47b968(0x1b5)];const _0x502a77={};return _0x502a77[_0x47b968(0x1d2)]=_0x1d48ad,_0x502a77[_0x47b968(0x305)]=_0x2151ef,_0x502a77;}else _0x515c51[_0x47b968(0x227)](!_0x1ea1df,_0x350cd7)&&(_0x350cd7[_0x47b968(0x45a)]=_0x2f2be4,_0x350cd7['statusCode']=_0x350cd7[_0x47b968(0x3ec)]),_0x515c51[_0x47b968(0x42c)](_0x4dc55d,_0x1ea1df,_0x350cd7,_0x2f2be4);})):this[_0x2badfd(0x350)]()?(this[_0x2badfd(0x2de)]&&(_0x1caadb[_0x2badfd(0x3ad)]=_0x1caadb[_0x2badfd(0x3ad)]||{},Object['assign'](_0x1caadb[_0x2badfd(0x3ad)],_0x45dd0c)),$task[_0x2badfd(0x1e9)](_0x1caadb)['then'](_0x4a4553=>{const _0x1323ec=_0x2badfd,{statusCode:_0xcc26b4,statusCode:_0x2c04c1,headers:_0x379f36,body:_0x4dc815}=_0x4a4553,_0x35f756={};_0x35f756[_0x1323ec(0x3ec)]=_0xcc26b4,_0x35f756[_0x1323ec(0x44c)]=_0x2c04c1,_0x35f756[_0x1323ec(0x314)]=_0x379f36,_0x35f756[_0x1323ec(0x45a)]=_0x4dc815,_0x515c51[_0x1323ec(0x1d3)](_0x4dc55d,null,_0x35f756,_0x4dc815);},_0xe61729=>_0x4dc55d(_0xe61729))):this[_0x2badfd(0x25c)]()&&(this[_0x2badfd(0x339)](_0x1caadb),this[_0x2badfd(0x379)](_0x1caadb)['on'](_0x2badfd(0x42b),(_0x230b66,_0x3b45ef)=>{const _0x2e85ff=_0x2badfd,_0x201879={};_0x201879[_0x2e85ff(0x1ef)]=_0x2e85ff(0x205),_0x201879[_0x2e85ff(0x304)]=function(_0x7a88fb,_0xa57e31){return _0x7a88fb<_0xa57e31;};const _0x3bf3e9=_0x201879;if(_0x561331[_0x2e85ff(0x1d7)](_0x561331[_0x2e85ff(0x3e0)],_0x561331[_0x2e85ff(0x25d)]))return _0x34e0b3;else try{if(_0x230b66[_0x2e85ff(0x314)][_0x561331[_0x2e85ff(0x2f6)]]){if(_0x561331[_0x2e85ff(0x1d7)](_0x561331[_0x2e85ff(0x42d)],_0x561331[_0x2e85ff(0x42d)])){const _0x1999bf=_0x230b66[_0x2e85ff(0x314)][_0x561331[_0x2e85ff(0x2f6)]][_0x2e85ff(0x1b6)](this[_0x2e85ff(0x1b2)][_0x2e85ff(0x2da)]['parse'])[_0x2e85ff(0x23b)]();this[_0x2e85ff(0x2bf)][_0x2e85ff(0x2e4)](_0x1999bf,null),_0x3b45ef[_0x2e85ff(0x363)]=this[_0x2e85ff(0x2bf)];}else{let _0x56c2f6=_0x3bf3e9[_0x2e85ff(0x1ef)],_0x214187=_0x56c2f6[_0x2e85ff(0x352)],_0x1b2115='';for(_0x4b84b9=0x1186+-0x219d+-0x55d*-0x3;_0x3bf3e9['CHBHl'](_0xadf3cf,_0x9776d9);_0x5522e1++){_0x1b2115+=_0x56c2f6[_0x2e85ff(0x328)](_0x47105e[_0x2e85ff(0x2e5)](_0xa8ad4b[_0x2e85ff(0x318)]()*_0x214187));}return _0x1b2115;}}}catch(_0x32469c){if(_0x561331[_0x2e85ff(0x279)](_0x2e85ff(0x278),_0x561331[_0x2e85ff(0x428)]))this[_0x2e85ff(0x264)](_0x32469c);else return new _0x4af2aa(_0x4e5b0d=>{const _0x19a9d9=_0x2e85ff,_0x299330={};_0x299330[_0x19a9d9(0x3ea)]=_0x18653d,this[_0x19a9d9(0x35b)](_0x299330,(_0x1f2b3c,_0x548ab3,_0x33a73e)=>_0x4e5b0d(_0x33a73e));});}})[_0x2badfd(0x250)](_0x18a8cc=>{const _0x3f9c64=_0x2badfd,{statusCode:_0x118492,statusCode:_0x4ae57c,headers:_0x44e76e,body:_0x5ed456}=_0x18a8cc,_0xab16ff={};_0xab16ff[_0x3f9c64(0x3ec)]=_0x118492,_0xab16ff[_0x3f9c64(0x44c)]=_0x4ae57c,_0xab16ff[_0x3f9c64(0x314)]=_0x44e76e,_0xab16ff[_0x3f9c64(0x45a)]=_0x5ed456,_0x515c51[_0x3f9c64(0x1f1)](_0x4dc55d,null,_0xab16ff,_0x5ed456);},_0x970a8c=>{const _0x2f8947=_0x2badfd;if(_0x561331[_0x2f8947(0x403)](_0x561331[_0x2f8947(0x1cd)],_0x561331[_0x2f8947(0x1cd)])){const {message:_0xe318b,response:_0xa11126}=_0x970a8c;_0x561331[_0x2f8947(0x29b)](_0x4dc55d,_0xe318b,_0xa11126,_0xa11126&&_0xa11126['body']);}else{const _0x3d4100=_0x1c23de?function(){const _0x39502d=_0x2f8947;if(_0x425634){const _0x534ee3=_0x1432d4[_0x39502d(0x1b7)](_0x3d97c8,arguments);return _0x4062f9=null,_0x534ee3;}}:function(){};return _0x2fe00d=![],_0x3d4100;}})));}[_0x5be5f9(0x3d7)](_0x25fca7,_0x3d0eee=()=>{}){const _0x24bfd1=_0x5be5f9,_0x2e508c={'cYIAq':function(_0x1f528b,_0x3af7df){const _0x3121cf=_0x2bd7;return _0x561331[_0x3121cf(0x22b)](_0x1f528b,_0x3af7df);},'fVmsm':_0x561331[_0x24bfd1(0x36d)]},_0x2d59f2={};_0x2d59f2[_0x24bfd1(0x1ac)]=!(0x2247+0x1983+-0x1*0x3bc9);const _0x391b1d={};_0x391b1d[_0x24bfd1(0x458)]=!(-0x6*-0x50e+-0x6f4+-0x175f);if(_0x25fca7['body']&&_0x25fca7[_0x24bfd1(0x314)]&&!_0x25fca7[_0x24bfd1(0x314)][_0x561331[_0x24bfd1(0x370)]]&&(_0x25fca7[_0x24bfd1(0x314)][_0x24bfd1(0x26b)]=_0x561331[_0x24bfd1(0x249)]),_0x25fca7[_0x24bfd1(0x314)]&&delete _0x25fca7[_0x24bfd1(0x314)][_0x561331[_0x24bfd1(0x20e)]],this[_0x24bfd1(0x1e8)]()||this[_0x24bfd1(0x2c8)]())this['isSurge']()&&this[_0x24bfd1(0x2de)]&&(_0x25fca7[_0x24bfd1(0x314)]=_0x25fca7[_0x24bfd1(0x314)]||{},Object[_0x24bfd1(0x331)](_0x25fca7[_0x24bfd1(0x314)],_0x2d59f2)),$httpClient[_0x24bfd1(0x3d7)](_0x25fca7,(_0x2dcd97,_0x3c003f,_0x53dd36)=>{const _0x560211=_0x24bfd1,_0x26f981={'yVVHn':_0x561331[_0x560211(0x2d1)],'wySeo':function(_0x15b17d,_0x540320){const _0x157f9b=_0x560211;return _0x561331[_0x157f9b(0x206)](_0x15b17d,_0x540320);},'FGiuU':_0x561331[_0x560211(0x2be)]};if(_0x561331[_0x560211(0x35c)](_0x561331[_0x560211(0x2dc)],_0x561331[_0x560211(0x2dc)])){let _0x214d13=this[_0x560211(0x1bc)](_0x560211(0x24b));_0x214d13=_0x214d13?_0x214d13[_0x560211(0x215)](/\n/g,'')[_0x560211(0x28b)]():_0x214d13;let _0x24a32f=this[_0x560211(0x1bc)](_0x26f981[_0x560211(0x36c)]);_0x24a32f=_0x24a32f?_0x26f981[_0x560211(0x408)](0x1510+-0x507+-0x1008,_0x24a32f):0x19*0xb0+0x1*-0x1b41+0xa25,_0x24a32f=_0x1d4181&&_0x3eb833[_0x560211(0x26f)]?_0x139065[_0x560211(0x26f)]:_0x24a32f;const _0x2cbc72={};_0x2cbc72[_0x560211(0x1ae)]=_0x44381a,_0x2cbc72[_0x560211(0x3e3)]=_0x26f981[_0x560211(0x3ac)],_0x2cbc72[_0x560211(0x26f)]=_0x24a32f;const [_0x12fbb1,_0x218742]=_0x214d13[_0x560211(0x373)]('@'),_0x2cdbf8={'url':_0x560211(0x21b)+_0x218742+_0x560211(0x25e),'body':_0x2cbc72,'headers':{'X-Key':_0x12fbb1,'Accept':_0x560211(0x1d4)}};this[_0x560211(0x3d7)](_0x2cdbf8,(_0x41cb57,_0x1cdc27,_0x2a628d)=>_0x2da960(_0x2a628d));}else!_0x2dcd97&&_0x3c003f&&(_0x3c003f[_0x560211(0x45a)]=_0x53dd36,_0x3c003f[_0x560211(0x44c)]=_0x3c003f[_0x560211(0x3ec)]),_0x3d0eee(_0x2dcd97,_0x3c003f,_0x53dd36);});else{if(this[_0x24bfd1(0x350)]())_0x25fca7[_0x24bfd1(0x3c1)]=_0x24bfd1(0x2e7),this[_0x24bfd1(0x2de)]&&(_0x25fca7[_0x24bfd1(0x3ad)]=_0x25fca7[_0x24bfd1(0x3ad)]||{},Object[_0x24bfd1(0x331)](_0x25fca7[_0x24bfd1(0x3ad)],_0x391b1d)),$task[_0x24bfd1(0x1e9)](_0x25fca7)['then'](_0x18a0d9=>{const _0xf8773e=_0x24bfd1,{statusCode:_0x9b294c,statusCode:_0x3b8d28,headers:_0x3aa265,body:_0x5b9eea}=_0x18a0d9,_0x2c91dd={};_0x2c91dd['status']=_0x9b294c,_0x2c91dd[_0xf8773e(0x44c)]=_0x3b8d28,_0x2c91dd[_0xf8773e(0x314)]=_0x3aa265,_0x2c91dd[_0xf8773e(0x45a)]=_0x5b9eea,_0x561331[_0xf8773e(0x35e)](_0x3d0eee,null,_0x2c91dd,_0x5b9eea);},_0x2efee7=>_0x3d0eee(_0x2efee7));else{if(this[_0x24bfd1(0x25c)]()){if(_0x561331[_0x24bfd1(0x35c)](_0x561331[_0x24bfd1(0x427)],_0x561331[_0x24bfd1(0x427)]))this[_0x24bfd1(0x379)]=this[_0x24bfd1(0x379)]?this[_0x24bfd1(0x379)]:_0x17c935('got'),this[_0x24bfd1(0x1b2)]=this[_0x24bfd1(0x1b2)]?this[_0x24bfd1(0x1b2)]:_0x294866('tough-cookie'),this[_0x24bfd1(0x2bf)]=this[_0x24bfd1(0x2bf)]?this[_0x24bfd1(0x2bf)]:new this[(_0x24bfd1(0x1b2))][(_0x24bfd1(0x31e))](),_0x28b453&&(_0x529a12['headers']=_0x3a13b9[_0x24bfd1(0x314)]?_0xce5711[_0x24bfd1(0x314)]:{},void(-0x1e90+0x3*0x9ac+0x84*0x3)===_0x44c54d[_0x24bfd1(0x314)][_0x24bfd1(0x2da)]&&_0x2e508c[_0x24bfd1(0x3af)](void(-0x13bc+0xe7*-0x27+0x36ed),_0x1ea4a2[_0x24bfd1(0x363)])&&(_0x249196[_0x24bfd1(0x363)]=this[_0x24bfd1(0x2bf)]));else{this[_0x24bfd1(0x339)](_0x25fca7);const {url:_0x1bb3e7,..._0x43257e}=_0x25fca7;this[_0x24bfd1(0x379)][_0x24bfd1(0x3d7)](_0x1bb3e7,_0x43257e)[_0x24bfd1(0x250)](_0x5d62d6=>{const _0x51a7de=_0x24bfd1;if(_0x2e508c[_0x51a7de(0x37b)]!==_0x51a7de(0x424))return new _0x53ca17()['stack'][_0x51a7de(0x373)]('\x0a')[0x707*0x5+-0x3b*0x37+-0x1674][_0x51a7de(0x28b)]()[_0x51a7de(0x373)]('\x20')[0x409+0x2f*0x6c+-0x7f4*0x3];else{const {statusCode:_0x545fa8,statusCode:_0x74282,headers:_0x51d01b,body:_0x116624}=_0x5d62d6,_0x4bb594={};_0x4bb594[_0x51a7de(0x3ec)]=_0x545fa8,_0x4bb594[_0x51a7de(0x44c)]=_0x74282,_0x4bb594[_0x51a7de(0x314)]=_0x51d01b,_0x4bb594[_0x51a7de(0x45a)]=_0x116624,_0x3d0eee(null,_0x4bb594,_0x116624);}},_0x388f9b=>{const _0x18a4f1=_0x24bfd1,_0x2cd6bc={'BOSAE':function(_0x4b05c6,_0x120ba4){return _0x4b05c6(_0x120ba4);}};if(_0x561331[_0x18a4f1(0x35c)](_0x561331[_0x18a4f1(0x44a)],_0x561331[_0x18a4f1(0x434)])){const {message:_0x54beed,response:_0x1e074f}=_0x388f9b;_0x3d0eee(_0x54beed,_0x1e074f,_0x1e074f&&_0x1e074f[_0x18a4f1(0x45a)]);}else hWdgDa[_0x18a4f1(0x3ef)](_0x30b46b,'0');});}}}}}[_0x5be5f9(0x1e1)](_0x47b1d8){const _0x1a7e5d=_0x5be5f9;let _0x3d15a1={'M+':_0x561331[_0x1a7e5d(0x24f)](new Date()[_0x1a7e5d(0x256)](),-0x1e*-0x65+0x1b1d*0x1+-0x26f2),'d+':new Date()[_0x1a7e5d(0x394)](),'H+':new Date()[_0x1a7e5d(0x2fe)](),'m+':new Date()[_0x1a7e5d(0x449)](),'s+':new Date()['getSeconds'](),'q+':Math[_0x1a7e5d(0x2e5)](_0x561331[_0x1a7e5d(0x2c9)](_0x561331[_0x1a7e5d(0x2a8)](new Date()[_0x1a7e5d(0x256)](),-0xe99*0x2+0x24e4+-0x7af),0x25*0xb0+0x1dc6+-0x3733)),'S':new Date()[_0x1a7e5d(0x1c1)]()};/(y+)/[_0x1a7e5d(0x20c)](_0x47b1d8)&&(_0x47b1d8=_0x47b1d8[_0x1a7e5d(0x215)](RegExp['$1'],_0x561331[_0x1a7e5d(0x365)](new Date()[_0x1a7e5d(0x298)](),'')[_0x1a7e5d(0x286)](_0x561331[_0x1a7e5d(0x395)](0x465+-0x137*0x1+-0x32a,RegExp['$1'][_0x1a7e5d(0x352)]))));for(let _0x45c672 in _0x3d15a1)new RegExp(_0x561331[_0x1a7e5d(0x365)]('('+_0x45c672,')'))[_0x1a7e5d(0x20c)](_0x47b1d8)&&(_0x47b1d8=_0x47b1d8[_0x1a7e5d(0x215)](RegExp['$1'],_0x561331[_0x1a7e5d(0x369)](-0x1807+-0x4*0x40c+0x2838,RegExp['$1'][_0x1a7e5d(0x352)])?_0x3d15a1[_0x45c672]:_0x561331[_0x1a7e5d(0x2a5)]('00',_0x3d15a1[_0x45c672])[_0x1a7e5d(0x286)](_0x561331[_0x1a7e5d(0x327)]('',_0x3d15a1[_0x45c672])[_0x1a7e5d(0x352)])));return _0x47b1d8;}[_0x5be5f9(0x355)](_0x188a51=_0x12e860,_0x5792a6='',_0x4a7c6c='',_0x36aa1a){const _0x1abb45=_0x5be5f9,_0x5a4267={'MdfJU':function(_0x203f15,_0x319f37){const _0x13e7b8=_0x2bd7;return _0x561331[_0x13e7b8(0x327)](_0x203f15,_0x319f37);},'icJBr':_0x561331[_0x1abb45(0x3fe)],'VneqS':function(_0x382551,_0x1da2b2,_0x25f164){const _0x5b3cb1=_0x1abb45;return _0x561331[_0x5b3cb1(0x297)](_0x382551,_0x1da2b2,_0x25f164);}},_0x36156c=_0x5be73e=>{const _0x239cad=_0x1abb45;if(_0x561331[_0x239cad(0x2ad)](_0x561331[_0x239cad(0x3ff)],_0x561331[_0x239cad(0x43f)])){if(!_0x5be73e)return _0x5be73e;if(_0x561331[_0x239cad(0x235)]==typeof _0x5be73e)return this[_0x239cad(0x2c8)]()?_0x5be73e:this[_0x239cad(0x350)]()?{'open-url':_0x5be73e}:this[_0x239cad(0x1e8)]()?{'url':_0x5be73e}:void(0x3*0xcf0+0x244c+0x344*-0x17);if(_0x561331[_0x239cad(0x3be)](_0x561331[_0x239cad(0x39e)],typeof _0x5be73e)){if(this[_0x239cad(0x2c8)]()){let _0x301b5=_0x5be73e[_0x239cad(0x260)]||_0x5be73e['url']||_0x5be73e[_0x561331[_0x239cad(0x453)]],_0x29cec7=_0x5be73e[_0x239cad(0x1b5)]||_0x5be73e[_0x561331[_0x239cad(0x3d4)]];const _0x338feb={};return _0x338feb['openUrl']=_0x301b5,_0x338feb[_0x239cad(0x1b5)]=_0x29cec7,_0x338feb;}if(this[_0x239cad(0x350)]()){let _0x3eba05=_0x5be73e[_0x561331[_0x239cad(0x453)]]||_0x5be73e[_0x239cad(0x3ea)]||_0x5be73e[_0x239cad(0x260)],_0x57ed56=_0x5be73e[_0x239cad(0x305)]||_0x5be73e[_0x239cad(0x1b5)];const _0x4891fa={};return _0x4891fa[_0x239cad(0x1d2)]=_0x3eba05,_0x4891fa[_0x239cad(0x305)]=_0x57ed56,_0x4891fa;}if(this[_0x239cad(0x1e8)]()){let _0x1b96c0=_0x5be73e[_0x239cad(0x3ea)]||_0x5be73e[_0x239cad(0x260)]||_0x5be73e[_0x561331[_0x239cad(0x453)]];const _0x1b65fe={};return _0x1b65fe[_0x239cad(0x3ea)]=_0x1b96c0,_0x1b65fe;}}}else{if(_0x3f23a2)_0x369e15[_0x239cad(0x2a1)](_0x5a4267[_0x239cad(0x43a)](_0x4073cc,_0x5a4267[_0x239cad(0x1d1)])),_0x188688[_0x239cad(0x2a1)](_0x30b1f0[_0x239cad(0x371)](_0x76ee73)),_0x2600b7[_0x239cad(0x264)](_0x5294f0);else{if(_0x5a4267[_0x239cad(0x1f5)](_0x272ecf,_0x5aca9b,_0x203433)){_0x2b4910=_0x29c275[_0x239cad(0x450)](_0x2e5baa);if(_0x349055)_0x54c31f[_0x239cad(0x2a1)](_0x5eef11);}}}};this[_0x1abb45(0x293)]||(this[_0x1abb45(0x1e8)]()||this[_0x1abb45(0x2c8)]()?$notification[_0x1abb45(0x3d7)](_0x188a51,_0x5792a6,_0x4a7c6c,_0x561331[_0x1abb45(0x2b3)](_0x36156c,_0x36aa1a)):this[_0x1abb45(0x350)]()&&_0x561331[_0x1abb45(0x273)]($notify,_0x188a51,_0x5792a6,_0x4a7c6c,_0x561331[_0x1abb45(0x357)](_0x36156c,_0x36aa1a)));let _0x5dfbef=['',_0x561331[_0x1abb45(0x1ed)]];_0x5dfbef[_0x1abb45(0x3a1)](_0x188a51),_0x5792a6&&_0x5dfbef[_0x1abb45(0x3a1)](_0x5792a6),_0x4a7c6c&&_0x5dfbef[_0x1abb45(0x3a1)](_0x4a7c6c),console[_0x1abb45(0x2a1)](_0x5dfbef[_0x1abb45(0x3e4)]('\x0a')),this[_0x1abb45(0x3b8)]=this[_0x1abb45(0x3b8)][_0x1abb45(0x2f4)](_0x5dfbef);}[_0x5be5f9(0x2a1)](..._0x4fdeb7){const _0x40deaf=_0x5be5f9,_0x557b6a={'EhmYq':function(_0x385bba,_0x2bcdbd,_0x50a737,_0x29efa3){const _0x14fa32=_0x2bd7;return _0x561331[_0x14fa32(0x35e)](_0x385bba,_0x2bcdbd,_0x50a737,_0x29efa3);}};if(_0x561331[_0x40deaf(0x3f7)](_0x561331[_0x40deaf(0x451)],_0x561331[_0x40deaf(0x451)]))_0x4fdeb7['length']>-0x295*0x8+0x2372+0x6*-0x277&&(this[_0x40deaf(0x3b8)]=[...this[_0x40deaf(0x3b8)],..._0x4fdeb7]),console[_0x40deaf(0x2a1)](_0x4fdeb7[_0x40deaf(0x3e4)](this[_0x40deaf(0x2b2)]));else{const {statusCode:_0x3de718,statusCode:_0x21b32b,headers:_0x2d13df,body:_0x1620b2}=_0x32fa6b,_0x4e536e={};_0x4e536e[_0x40deaf(0x3ec)]=_0x3de718,_0x4e536e[_0x40deaf(0x44c)]=_0x21b32b,_0x4e536e[_0x40deaf(0x314)]=_0x2d13df,_0x4e536e[_0x40deaf(0x45a)]=_0x1620b2,_0x557b6a[_0x40deaf(0x30c)](_0x1ed4f1,null,_0x4e536e,_0x1620b2);}}[_0x5be5f9(0x264)](_0x509458,_0x5f5435){const _0x44b5e3=_0x5be5f9,_0x1d9f47=!this[_0x44b5e3(0x1e8)]()&&!this[_0x44b5e3(0x350)]()&&!this[_0x44b5e3(0x2c8)]();_0x1d9f47?this[_0x44b5e3(0x2a1)]('','❗️'+this[_0x44b5e3(0x2ac)]+_0x44b5e3(0x44f),_0x509458[_0x44b5e3(0x396)]):this[_0x44b5e3(0x2a1)]('','❗️'+this[_0x44b5e3(0x2ac)]+_0x44b5e3(0x44f),_0x509458);}[_0x5be5f9(0x358)](_0x4e98d9){const _0x90090a=_0x5be5f9;if(_0x561331[_0x90090a(0x3f2)]('FWZIc',_0x561331[_0x90090a(0x37d)]))return new Promise(_0x3f0441=>setTimeout(_0x3f0441,_0x4e98d9));else{const _0x5bb9da=_0x4a577b?function(){const _0xbc6efc=_0x90090a;if(_0x143b3c){const _0x5aa3d3=_0x1c9c2d[_0xbc6efc(0x1b7)](_0x5bd282,arguments);return _0x35acba=null,_0x5aa3d3;}}:function(){};return _0x2877ae=![],_0x5bb9da;}}[_0x5be5f9(0x24a)](_0x498e58={}){const _0xaea29b=_0x5be5f9,_0x35e851={'uCiRf':function(_0x499b2c,_0x411dac){const _0x4a0e65=_0x2bd7;return _0x561331[_0x4a0e65(0x414)](_0x499b2c,_0x411dac);}};if(_0x561331[_0xaea29b(0x3f7)](_0x561331[_0xaea29b(0x38b)],_0xaea29b(0x29c))){const _0x485335=new Date()[_0xaea29b(0x2c5)](),_0x151422=_0x561331[_0xaea29b(0x34f)](_0x561331[_0xaea29b(0x395)](_0x485335,this[_0xaea29b(0x445)]),-0x1*0x33b+0xc4f+-0x4*0x14b);this[_0xaea29b(0x2a1)]('','🔔'+this[_0xaea29b(0x2ac)]+_0xaea29b(0x38a)+_0x151422+'\x20秒'),this[_0xaea29b(0x2a1)](),(this[_0xaea29b(0x1e8)]()||this[_0xaea29b(0x350)]()||this[_0xaea29b(0x2c8)]())&&$done(_0x498e58);}else _0x35e851[_0xaea29b(0x3a9)](!_0x8d7acf,_0x1d19e8)&&(_0x5f53cc[_0xaea29b(0x45a)]=_0x90b05c,_0x343bb0[_0xaea29b(0x44c)]=_0xc07924[_0xaea29b(0x3ec)]),_0x163667(_0x435800,_0x45136a,_0x39f919);}}(_0x12e860,_0x40a33a);}function _0xd5a0b3(_0x2a1f8e){const _0x4f14b7=_0x3c3db2,_0x4760c2={'eWFhz':_0x4f14b7(0x43e),'ycDRx':_0x4f14b7(0x202),'WHABT':function(_0x1737a5,_0x56697a){return _0x1737a5+_0x56697a;},'ipvyh':_0x4f14b7(0x376),'ppyod':_0x4f14b7(0x1dd),'gNBRZ':'kdKYw','idzWk':function(_0x2b85a8,_0x405c3c){return _0x2b85a8!==_0x405c3c;},'OTFSi':function(_0x1f83ea,_0x5b86d1){return _0x1f83ea+_0x5b86d1;},'tZPmP':function(_0x1a8a40,_0x5a3895){return _0x1a8a40/_0x5a3895;},'dwZah':_0x4f14b7(0x352),'bMkLW':function(_0x183f6b,_0x5c5bc3){return _0x183f6b===_0x5c5bc3;},'Dmtex':function(_0x49b543,_0x2f30ae){return _0x49b543%_0x2f30ae;},'yzCMS':_0x4f14b7(0x2f5),'vLrZo':_0x4f14b7(0x409),'WlXHD':_0x4f14b7(0x2e9),'FBINC':_0x4f14b7(0x3e8),'TUcMk':_0x4f14b7(0x30d),'RwXhG':_0x4f14b7(0x3b9),'qOQPd':function(_0x28d239,_0x11e68c){return _0x28d239(_0x11e68c);},'vuAEJ':_0x4f14b7(0x3e6),'THWEA':function(_0x7de61c,_0x46f93b){return _0x7de61c===_0x46f93b;},'bXJou':_0x4f14b7(0x224),'nWoDn':_0x4f14b7(0x440)};function _0x1305c3(_0x27abb6){const _0x48843d=_0x4f14b7,_0x975b2c={'vgWZf':_0x48843d(0x3b5),'mqvYf':_0x4760c2[_0x48843d(0x2bb)],'DqbnN':function(_0x574f81,_0x4211b6){return _0x574f81!=_0x4211b6;},'RQfrr':_0x48843d(0x2af),'pQzHB':function(_0x1238a9,_0x5d6cbb){return _0x1238a9===_0x5d6cbb;},'xFyUi':_0x4760c2[_0x48843d(0x263)],'arbYN':function(_0x1aa3ae,_0x2af474){const _0x7ebaf4=_0x48843d;return _0x4760c2[_0x7ebaf4(0x2ce)](_0x1aa3ae,_0x2af474);},'oHOwg':_0x4760c2[_0x48843d(0x310)]};if(typeof _0x27abb6===_0x4760c2[_0x48843d(0x222)])return _0x4760c2[_0x48843d(0x38e)]===_0x48843d(0x274)?function(_0x741b11){}[_0x48843d(0x2d9)](_0x48843d(0x302))[_0x48843d(0x1b7)](_0x48843d(0x31b)):!(-0x1254+0x17c3+-0x56e);else _0x4760c2[_0x48843d(0x1df)](_0x4760c2[_0x48843d(0x3a7)]('',_0x4760c2[_0x48843d(0x1be)](_0x27abb6,_0x27abb6))[_0x4760c2[_0x48843d(0x1d6)]],-0x853*-0x1+-0x8aa+0x2c*0x2)||_0x4760c2[_0x48843d(0x208)](_0x4760c2[_0x48843d(0x2e2)](_0x27abb6,-0x3bd+-0x6e2+-0xf9*-0xb),0x1*-0x1648+-0x9d1+0x2019)?function(){const _0x186a61=_0x48843d;return _0x975b2c[_0x186a61(0x1b3)]===_0x975b2c[_0x186a61(0x340)]?_0x18c441[_0x186a61(0x371)](_0x2b6898):!![];}[_0x48843d(0x2d9)](_0x4760c2[_0x48843d(0x3a7)](_0x4760c2[_0x48843d(0x1c3)],_0x4760c2[_0x48843d(0x44d)]))['call'](_0x4760c2[_0x48843d(0x361)]):_0x4760c2[_0x48843d(0x20a)]!==_0x4760c2[_0x48843d(0x1f0)]?function(){const _0x589df7=_0x48843d,_0x9400cc={'fKibK':function(_0x94197d,_0x1aaea1){const _0x4cdca7=_0x2bd7;return _0x975b2c[_0x4cdca7(0x2e1)](_0x94197d,_0x1aaea1);},'ycTfg':_0x975b2c[_0x589df7(0x2f7)]};return _0x975b2c[_0x589df7(0x21c)](_0x975b2c[_0x589df7(0x212)],_0x975b2c[_0x589df7(0x212)])?![]:_0x9400cc[_0x589df7(0x3fc)](_0x9400cc[_0x589df7(0x1e3)],typeof _0xf83447)&&!!_0x2eba22[_0x589df7(0x404)];}[_0x48843d(0x2d9)](_0x4760c2[_0x48843d(0x3a7)](_0x4760c2[_0x48843d(0x1c3)],_0x4760c2[_0x48843d(0x44d)]))['apply'](_0x4760c2['RwXhG']):(_0x3de1ab[_0x48843d(0x2a1)](_0x975b2c[_0x48843d(0x356)](_0x2c1aa4,_0x975b2c[_0x48843d(0x442)])),_0x29203d[_0x48843d(0x2a1)](_0x6cebcc[_0x48843d(0x371)](_0x405e37)),_0x4a84ac[_0x48843d(0x264)](_0x52cade));_0x4760c2[_0x48843d(0x1b0)](_0x1305c3,++_0x27abb6);}try{if(_0x2a1f8e){if(_0x4760c2[_0x4f14b7(0x2d7)](_0x4760c2[_0x4f14b7(0x220)],_0x4760c2[_0x4f14b7(0x3c0)]))this[_0x4f14b7(0x2ac)]=_0x2a87da,this[_0x4f14b7(0x251)]=new _0x27c110(this),this['data']=null,this[_0x4f14b7(0x32b)]=_0x4760c2[_0x4f14b7(0x2a7)],this[_0x4f14b7(0x3b8)]=[],this[_0x4f14b7(0x293)]=!(-0x1fb5+0x24e7+0x531*-0x1),this[_0x4f14b7(0x2de)]=!(0x581+0x1a86+-0x2006),this[_0x4f14b7(0x2b2)]='\x0a',this[_0x4f14b7(0x445)]=new _0x2d0fc8()[_0x4f14b7(0x2c5)](),_0x5e91ba[_0x4f14b7(0x331)](this,_0x2975b3),this[_0x4f14b7(0x2a1)]('','🔔'+this[_0x4f14b7(0x2ac)]+_0x4f14b7(0x37e));else return _0x1305c3;}else _0x4760c2[_0x4f14b7(0x1b0)](_0x1305c3,0x503+0x1db9+0x3dc*-0x9);}catch(_0x5c2874){}} \ No newline at end of file