From f7642967ea13b929fa6e4c959fb7ff8ad9c670b7 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 14 Jul 2021 08:32:48 -0400 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=8E=2007-14=2008:32?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jd_summer_movement.js | 1687 +++++++++++++++++++++++------------------ 1 file changed, 951 insertions(+), 736 deletions(-) diff --git a/jd_summer_movement.js b/jd_summer_movement.js index 54597eb..66748ee 100755 --- a/jd_summer_movement.js +++ b/jd_summer_movement.js @@ -1,737 +1,952 @@ +/* + +https://wbbny.m.jd.com/babelDiy/Zeus/2rtpffK8wqNyPBH6wyUDuBKoAbCt/index.html + +cron 12 0,6-23/2 * * * https://raw.githubusercontent.com/smiek2221/scripts/master/jd_summer_movement.js + +*/ + + +const $ = new Env('燃动夏季'); +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const https = require('https'); +const fs = require('fs').promises; +const { R_OK } = require('fs').constants; +const vm = require('vm'); +let smashUtils; + +let summer_movement_joinjoinjoinhui = false;//是否入会 true 入会,false 不入会 +if ($.isNode() && process.env.summer_movement_joinjoinjoinhui) { + summer_movement_joinjoinjoinhui = process.env.summer_movement_joinjoinjoinhui; +} + +let summer_movement_ShHelpFlag = 1;// 0不开启也不助力 1开启并助力 2开启但不助力 +if ($.isNode() && process.env.summer_movement_ShHelpFlag) { + summer_movement_ShHelpFlag = process.env.summer_movement_ShHelpFlag; +} + + +const ShHelpAuthorFlag = true;//是否助力作者SH true 助力,false 不助力 +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = []; +$.cookie = ''; +$.inviteList = []; +$.secretpInfo = {}; +$.ShInviteList = []; +$.innerShInviteList = []; +$.firstInviteList = []; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +$.appid = 'o2_act'; +const UA = $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : `jdpingou;iPhone;4.11.0;${Math.ceil(Math.random() * 2 + 12)}.${Math.ceil(Math.random() * 4)};${randomString(40)};`) : ($.getdata('JDUA') ? $.getdata('JDUA') : `jdpingou;iPhone;10.0.6;${Math.ceil(Math.random() * 2 + 12)}.${Math.ceil(Math.random() * 4)};${randomString(40)};`) + +function randomString(e) { + e = e || 32; + let t = "abcdefhijkmnprstwxyz2345678", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + console.log('活动入口:京东APP-》 首页-》 右边小窗口(点我赢千元)\n' + + '邀请好友助力:内部账号自行互助(排名靠前账号得到的机会多)\n' + + 'SH互助:内部账号自行互助(排名靠前账号得到的机会多),多余的助力次数会默认助力作者内置助力码\n' + + '店铺任务 已添加\n' + + '新增 入会环境变量 默认不入会\n' + + '新增 微信任务\n' + + '移除百元守卫战 请到help食用\n' + + '活动时间:2021-07-08至2021-08-08\n' + + '脚本更新时间:2021年7月10日 02点00分\n' + ); + if (`${summer_movement_joinjoinjoinhui}` === "true") console.log('您设置了入会') + if (Number(summer_movement_ShHelpFlag) === 1) { + console.log('您设置了 【百元守卫战SH】✅ || 互助✅') + } else if (Number(summer_movement_ShHelpFlag) === 2) { + console.log('您设置了 【百元守卫战SH】✅ || 互助❌') + } else if (Number(summer_movement_ShHelpFlag) === 0) { + console.log('您设置了 【百元守卫战SH】❌ || 互助❌') + } else { + console.log('原 summer_movement_ShHelpFlag 变量不兼容请修改 0不开启也不助力 1开启并助力 2开启但不助力') + } + + console.log('\n\n该脚本启用了[正道的光]模式\n执行 做任务、做店铺任务 会有几率不执行\n本脚本不让任务一次全部做完\n您可以多跑几次\n北京时间18时后是正常模式\n\n🐸\n') + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + $.cookie = cookiesArr[i]; + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.index = i + 1; + $.isLogin = true; + $.nickName = $.UserName; + $.hotFlag = false; //是否火爆 + console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + console.log(`\n如有未完成的任务,请多执行几次\n`); + await movement() + if ($.hotFlag) $.secretpInfo[$.UserName] = false;//火爆账号不执行助力 + } + } + let res = [], res2 = [], res3 = []; + //res = await getAuthorShareCode('https://raw.githubusercontent.com/star261/jd/main/code/zoo.json'); + res2 = await getAuthorShareCode('https://www.fastmock.site/mock/cbbb3764093b72da95d9396d19b9a901/jd/zoo/zoopk'); + res3 = await getAuthorShareCode('https://www.fastmock.site/mock/cbbb3764093b72da95d9396d19b9a901/jd/zoo/zooinvite'); + $.innerShInviteList = getRandomArrayElements([...$.innerShInviteList, ...res, ...res2], [...$.innerShInviteList, ...res, ...res2].length); + $.firstInviteList = getRandomArrayElements([...$.firstInviteList, ...res3], [...$.firstInviteList, ...res3].length); + $.ShInviteList.push(...$.innerShInviteList); + // 助力 + for (let i = 0; i < cookiesArr.length; i++) { + $.cookie = cookiesArr[i]; + $.canHelp = true; + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + if (!$.secretpInfo[$.UserName]) { + continue; + } + // $.secretp = $.secretpInfo[$.UserName]; + $.index = i + 1; + if ($.inviteList && $.inviteList.length) console.log(`\n******开始内部京东账号【邀请好友助力】*********\n`); + for (let j = 0; j < $.inviteList.length && $.canHelp; j++) { + $.oneInviteInfo = $.inviteList[j]; + if ($.oneInviteInfo.ues === $.UserName || $.oneInviteInfo.max) { + continue; + } + $.inviteId = $.oneInviteInfo.inviteId; + console.log(`${$.UserName}去助力${$.oneInviteInfo.ues},助力码${$.inviteId}`); + await takePostRequest('help'); + await $.wait(2000); + } + for (let suni = 0; suni < $.firstInviteList.length && $.canHelp; suni++) { + $.inviteId = $.firstInviteList[suni]; + await takePostRequest('helpp'); + await $.wait(2000); + } + if (Number(summer_movement_ShHelpFlag) === 1) { + if ($.ShInviteList && $.ShInviteList.length) console.log(`\n******开始内部京东账号【百元守卫战SH】助力*********\n`); + for (let i = 0; i < $.ShInviteList.length && $.canHelp; i++) { + console.log(`${$.UserName} 去助力SH码 ${$.ShInviteList[i]}`); + $.inviteId = $.ShInviteList[i]; + await takePostRequest('shHelp'); + await $.wait(1000); + } + } + } + + +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function movement() { + try { + $.signSingle = {}; + $.homeData = {}; + $.secretp = ``; + $.taskList = []; + $.shopSign = ``; + $.userInfo = '' + await takePostRequest('olympicgames_home'); + if ($.homeData.result) $.userInfo = $.homeData.result.userActBaseInfo + if ($.userInfo) { + if ($.homeData.result.popWindows) { + let res = $.homeData.result.popWindows + if (res.type == 'continued_sign_pop') { + console.log(`签到获得: ${JSON.stringify($.homeData.result.popWindows.data || '')}`) + } else if (res.type == 'limited_time_hundred_pop') { + console.log(`百元守卫战: ${JSON.stringify($.homeData.result.popWindows || '')}`) + } else { + console.log(`弹窗信息: ${JSON.stringify($.homeData.result.popWindows)}`) + } + } + console.log(`\n签到${$.homeData.result.continuedSignDays}天 待兑换金额:${Number($.userInfo.poolMoney)} 当前等级:${$.userInfo.medalLevel} ${$.userInfo.poolCurrency}/${$.userInfo.exchangeThreshold}(攒卡领${Number($.userInfo.cash)}元)\n`); + await $.wait(1000); + if ($.userInfo && typeof $.userInfo.sex == 'undefined') { + await takePostRequest('olympicgames_tiroGuide'); + await $.wait(1000); + } + $.userInfo = $.homeData.result.userActBaseInfo; + if (Number($.userInfo.poolCurrency) >= Number($.userInfo.exchangeThreshold)) { + console.log(`满足升级条件,去升级`); + await takePostRequest('olympicgames_receiveCash'); + await $.wait(1000); + } + bubbleInfos = $.homeData.result.bubbleInfos; + for (let item of bubbleInfos) { + if (item.type != 7) { + $.collectId = item.type + await takePostRequest('olympicgames_collectCurrency'); + await $.wait(1000); + } + } + if ($.homeData.result.pawnshopInfo && $.homeData.result.pawnshopInfo.betGoodsList) { + $.Reward = [] + for (let i in $.homeData.result.pawnshopInfo.betGoodsList) { + $.Reward = $.homeData.result.pawnshopInfo.betGoodsList[i] + if ($.Reward.status == 1) { + console.log(`开奖:${$.Reward.skuName}`) + await takePostRequest('olympicgames_pawnshopRewardPop'); + } + } + } + } + + console.log('\n运动\n') + $.speedTraining = true; + if (!$.hotFlag) { + await takePostRequest('olympicgames_startTraining'); + await $.wait(1000); + for (let i = 0; i <= 3; i++) { + if ($.speedTraining) { + await takePostRequest('olympicgames_speedTraining'); + await $.wait(1000); + } else { + break; + } + } + } + console.log(`\n做任务\n`); + if (!$.hotFlag) await takePostRequest('olympicgames_getTaskDetail'); + await $.wait(1000); + //做任务 + for (let i = 0; i < $.taskList.length && !$.hotFlag; i++) { + $.oneTask = $.taskList[i]; + if ([1, 3, 5, 7, 9, 21, 26].includes($.oneTask.taskType) && $.oneTask.status === 1) { + $.activityInfoList = $.oneTask.shoppingActivityVos || $.oneTask.brandMemberVos || $.oneTask.followShopVo || $.oneTask.browseShopVo; + for (let j = 0; j < $.activityInfoList.length; j++) { + $.oneActivityInfo = $.activityInfoList[j]; + if ($.oneActivityInfo.status !== 1 || !$.oneActivityInfo.taskToken) { + continue; + } + $.callbackInfo = {}; + console.log(`做任务:${$.oneActivityInfo.title || $.oneActivityInfo.taskName || $.oneActivityInfo.shopName};等待完成`); + if ($.oneTask.taskType === 21 && `${summer_movement_joinjoinjoinhui}` === "true") { + let channel = $.oneActivityInfo.memberUrl.match(/channel=(\d+)/) ? $.oneActivityInfo.memberUrl.match(/channel=(\d+)/)[1] : ''; + const jiarubody = { + venderId: $.oneActivityInfo.vendorIds, + shopId: $.oneActivityInfo.ext.shopId, + bindByVerifyCodeFlag: 1, + registerExtend: {}, + writeChildFlag: 0, + channel: channel + } + let url = `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify(jiarubody))}&client=H5&clientVersion=9.2.0&uuid=88888` + await joinjoinjoinhui(url, $.oneActivityInfo.memberUrl) + await $.wait(1000); + } + await takePostRequest('olympicgames_doTaskDetail'); + if ($.callbackInfo.code === 0 && $.callbackInfo.data && $.callbackInfo.data.result && $.callbackInfo.data.result.taskToken) { + await $.wait(getRndInteger(7000, 8000)); + let sendInfo = encodeURIComponent(`{"dataSource":"newshortAward","method":"getTaskAward","reqParams":"{\\"taskToken\\":\\"${$.callbackInfo.data.result.taskToken}\\"}","sdkVersion":"1.0.0","clientLanguage":"zh"}`) + await callbackResult(sendInfo) + } else if ($.oneTask.taskType === 5 || $.oneTask.taskType === 3 || $.oneTask.taskType === 26) { + await $.wait(getRndInteger(700, 1500)); + console.log(`任务完成`); + } else if ($.oneTask.taskType === 21) { + let data = $.callbackInfo + if (data.data && data.data.bizCode === 0) { + console.log(`获得:${data.data.result.score}`); + } else if (data.data && data.data.bizMsg) { + console.log(data.data.bizMsg); + } else { + console.log(JSON.stringify($.callbackInfo)); + } + await $.wait(getRndInteger(500, 1000)); + } else { + console.log($.callbackInfo); + console.log(`任务失败`); + await $.wait(getRndInteger(2000, 3000)); + } + } + } else if ($.oneTask.taskType === 2 && $.oneTask.status === 1 && $.oneTask.scoreRuleVos[0].scoreRuleType === 2) { + console.log(`做任务:${$.oneTask.taskName};等待完成 (实际不会添加到购物车)`); + $.taskId = $.oneTask.taskId; + $.feedDetailInfo = {}; + await takePostRequest('olympicgames_getFeedDetail'); + let productList = $.feedDetailInfo.productInfoVos; + let needTime = Number($.feedDetailInfo.maxTimes) - Number($.feedDetailInfo.times); + for (let j = 0; j < productList.length && needTime > 0; j++) { + if (productList[j].status !== 1) { + continue; + } + $.taskToken = productList[j].taskToken; + console.log(`加购:${productList[j].skuName}`); + await takePostRequest('add_car'); + await $.wait(getRndInteger(700, 1500)); + needTime--; + } + } else if ($.oneTask.taskType === 2 && $.oneTask.status === 1 && $.oneTask.scoreRuleVos[0].scoreRuleType === 0) { + $.activityInfoList = $.oneTask.productInfoVos; + for (let j = 0; j < $.activityInfoList.length; j++) { + $.oneActivityInfo = $.activityInfoList[j]; + if ($.oneActivityInfo.status !== 1 || !$.oneActivityInfo.taskToken) { + continue; + } + $.callbackInfo = {}; + console.log(`做任务:浏览${$.oneActivityInfo.skuName};等待完成`); + await takePostRequest('olympicgames_doTaskDetail'); + if ($.oneTask.taskType === 2) { + await $.wait(getRndInteger(1000, 2000)); + console.log(`任务完成`); + } else { + console.log($.callbackInfo); + console.log(`任务失败`); + await $.wait(getRndInteger(2000, 3000)); + } + } + } + } + + //==================================微信任务======================================================================== + $.wxTaskList = []; + if (!$.hotFlag) await takePostRequest('wxTaskDetail'); + for (let i = 0; i < $.wxTaskList.length; i++) { + $.oneTask = $.wxTaskList[i]; + if ($.oneTask.taskType === 2 || $.oneTask.status !== 1) { continue; } //不做加购 + $.activityInfoList = $.oneTask.shoppingActivityVos || $.oneTask.brandMemberVos || $.oneTask.followShopVo || $.oneTask.browseShopVo; + for (let j = 0; j < $.activityInfoList.length; j++) { + $.oneActivityInfo = $.activityInfoList[j]; + if ($.oneActivityInfo.status !== 1 || !$.oneActivityInfo.taskToken) { + continue; + } + $.callbackInfo = {}; + console.log(`做任务:${$.oneActivityInfo.title || $.oneActivityInfo.taskName || $.oneActivityInfo.shopName};等待完成`); + await takePostRequest('olympicgames_doTaskDetail'); + if ($.callbackInfo.code === 0 && $.callbackInfo.data && $.callbackInfo.data.result && $.callbackInfo.data.result.taskToken) { + await $.wait(getRndInteger(7000, 8000)); + let sendInfo = encodeURIComponent(`{"dataSource":"newshortAward","method":"getTaskAward","reqParams":"{\\"taskToken\\":\\"${$.callbackInfo.data.result.taskToken}\\"}","sdkVersion":"1.0.0","clientLanguage":"zh"}`) + await callbackResult(sendInfo) + } else { + await $.wait(getRndInteger(1000, 2000)); + console.log(`任务完成`); + } + } + } + + // 店铺 + console.log(`\n去做店铺任务\n`); + $.shopInfoList = []; + if (!$.hotFlag) await takePostRequest('qryCompositeMaterials'); + for (let i = 0; i < $.shopInfoList.length; i++) { + let taskbool = false + $.shopSign = $.shopInfoList[i].extension.shopId; + console.log(`执行第${i + 1}个店铺任务:${$.shopInfoList[i].name} ID:${$.shopSign}`); + $.shopResult = {}; + await takePostRequest('olympicgames_shopLotteryInfo'); + await $.wait(1000); + if (JSON.stringify($.shopResult) === `{}`) continue; + $.shopTask = $.shopResult.taskVos || []; + for (let i = 0; i < $.shopTask.length; i++) { + $.oneTask = $.shopTask[i]; + if ($.oneTask.taskType === 21 || $.oneTask.taskType === 14 || $.oneTask.status !== 1) { continue; } //不做入会//不做邀请 + taskbool = true + $.activityInfoList = $.oneTask.brandMemberVos || $.oneTask.followShopVo || $.oneTask.shoppingActivityVos || $.oneTask.browseShopVo || $.oneTask.simpleRecordInfoVo; + if ($.oneTask.taskType === 12) {//签到 + $.oneActivityInfo = $.activityInfoList; + console.log(`店铺签到`); + await takePostRequest('olympicgames_bdDoTask'); + continue; + } + for (let j = 0; j < $.activityInfoList.length; j++) { + $.oneActivityInfo = $.activityInfoList[j]; + if ($.oneActivityInfo.status !== 1 || !$.oneActivityInfo.taskToken) { + continue; + } + $.callbackInfo = {}; + console.log(`做任务:${$.oneActivityInfo.subtitle || $.oneActivityInfo.title || $.oneActivityInfo.taskName || $.oneActivityInfo.shopName};等待完成`); + await takePostRequest('olympicgames_doTaskDetail'); + if ($.callbackInfo.code === 0 && $.callbackInfo.data && $.callbackInfo.data.result && $.callbackInfo.data.result.taskToken) { + await $.wait(8000); + let sendInfo = encodeURIComponent(`{"dataSource":"newshortAward","method":"getTaskAward","reqParams":"{\\"taskToken\\":\\"${$.callbackInfo.data.result.taskToken}\\"}","sdkVersion":"1.0.0","clientLanguage":"zh"}`) + await callbackResult(sendInfo) + } else { + await $.wait(2000); + console.log(`任务完成`); + } + } + } + if (taskbool) await $.wait(1000); + let boxLotteryNum = $.shopResult.boxLotteryNum; + for (let j = 0; j < boxLotteryNum; j++) { + console.log(`开始第${j + 1}次拆盒`) + //抽奖 + await takePostRequest('olympicgames_boxShopLottery'); + await $.wait(3000); + } + // let wishLotteryNum = $.shopResult.wishLotteryNum; + // for (let j = 0; j < wishLotteryNum; j++) { + // console.log(`开始第${j+1}次能量抽奖`) + // //抽奖 + // await takePostRequest('zoo_wishShopLottery'); + // await $.wait(3000); + // } + if (taskbool) await $.wait(3000); + } + + } catch (e) { + $.logErr(e) + } +} + +async function takePostRequest(type) { + let body = ``; + let myRequest = ``; + switch (type) { + case 'olympicgames_home': + body = `functionId=olympicgames_home&body={}&client=wh5&clientVersion=1.0.0&appid=${$.appid}`; + myRequest = await getPostRequest(`olympicgames_home`, body); + break; + case 'olympicgames_collectCurrency': + body = await getPostBody(type); + myRequest = await getPostRequest(`olympicgames_collectCurrency`, body); + break + case 'olympicgames_receiveCash': + let id = 6 + if ($.Shend) id = 4 + body = `functionId=olympicgames_receiveCash&body={"type":${id}}&client=wh5&clientVersion=1.0.0&appid=${$.appid}`; + myRequest = await getPostRequest(`olympicgames_receiveCash`, body); + break + case 'olypicgames_guradHome': + body = `functionId=olypicgames_guradHome&body={}&client=wh5&clientVersion=1.0.0&appid=${$.appid}`; + myRequest = await getPostRequest(`olypicgames_guradHome`, body); + break + case 'olympicgames_getTaskDetail': + body = `functionId=${type}&body={"taskId":"","appSign":"1"}&client=wh5&clientVersion=1.0.0&appid=${$.appid}`; + myRequest = await getPostRequest(`olympicgames_getTaskDetail`, body); + break; + case 'olympicgames_doTaskDetail': + body = await getPostBody(type); + myRequest = await getPostRequest(`olympicgames_doTaskDetail`, body); + break; + case 'olympicgames_getFeedDetail': + body = `functionId=olympicgames_getFeedDetail&body={"taskId":"${$.taskId}"}&client=wh5&clientVersion=1.0.0&appid=${$.appid}`; + myRequest = await getPostRequest(`olympicgames_getFeedDetail`, body); + break; + case 'add_car': + body = await getPostBody(type); + myRequest = await getPostRequest(`olympicgames_doTaskDetail`, body); + break; + case 'shHelp': + case 'help': + body = await getPostBody(type); + myRequest = await getPostRequest(`zoo_collectScore`, body); + break; + case 'helpp': + body = await getPostBody(type); + myRequest = await getPostRequest(`zoo_collectScore`, body); + break; + case 'olympicgames_startTraining': + body = await getPostBody(type); + myRequest = await getPostRequest(`olympicgames_startTraining`, body); + break; + case 'olympicgames_speedTraining': + body = await getPostBody(type); + myRequest = await getPostRequest(`olympicgames_speedTraining`, body); + break; + case 'olympicgames_tiroGuide': + let sex = getRndInteger(0, 2) + let sportsGoal = getRndInteger(1, 4) + body = `functionId=olympicgames_tiroGuide&body={"sex":${sex},"sportsGoal":${sportsGoal}}&client=wh5&clientVersion=1.0.0&appid=${$.appid}`; + myRequest = await getPostRequest(`olympicgames_tiroGuide`, body); + break; + case 'olympicgames_shopLotteryInfo': + body = `functionId=olympicgames_shopLotteryInfo&body={"channelSign":"1","shopSign":${$.shopSign}}&client=wh5&clientVersion=1.0.0&appid=${$.appid}`; + myRequest = await getPostRequest(`olympicgames_shopLotteryInfo`, body); + break; + case 'qryCompositeMaterials': + body = `functionId=qryCompositeMaterials&body={"qryParam":"[{\\"type\\":\\"advertGroup\\",\\"id\\":\\"05371960\\",\\"mapTo\\":\\"logoData\\"}]","openid":-1,"applyKey":"big_promotion"}&client=wh5&clientVersion=1.0.0`; + myRequest = await getPostRequest(`qryCompositeMaterials`, body); + break; + case 'olympicgames_bdDoTask': + body = await getPostBody(type); + myRequest = await getPostRequest(`olympicgames_bdDoTask`, body); + break; + case 'olympicgames_boxShopLottery': + body = `functionId=olympicgames_boxShopLottery&body={"shopSign":${$.shopSign}}&client=wh5&clientVersion=1.0.0&appid=${$.appid}`; + myRequest = await getPostRequest(`olympicgames_boxShopLottery`, body); + break; + case 'wxTaskDetail': + body = `functionId=olympicgames_getTaskDetail&body={"taskId":"","appSign":"2"}&client=wh5&clientVersion=1.0.0&loginWQBiz=businesst1&appid=${$.appid}`; + myRequest = await getPostRequest(`olympicgames_getTaskDetail`, body); + break; + case 'olympicgames_pawnshopRewardPop': + body = `functionId=olympicgames_pawnshopRewardPop&body={"skuId":${$.Reward.skuId}}&client=wh5&clientVersion=1.0.0&appid=${$.appid}`; + myRequest = await getPostRequest(`olympicgames_pawnshopRewardPop`, body); + break; + default: + console.log(`错误${type}`); + } + if (myRequest) { + return new Promise(async resolve => { + $.post(myRequest, (err, resp, data) => { + try { + // console.log(data); + dealReturn(type, data); + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) + } +} + + +async function dealReturn(type, res) { + try { + data = JSON.parse(res); + } catch (e) { + console.log(`返回异常:${res}`); + return; + } + switch (type) { + case 'olympicgames_home': + if (data.code === 0 && data.data && data.data.result) { + if (data.data['bizCode'] === 0) { + $.homeData = data.data; + $.secretpInfo[$.UserName] = true + } + } else if (data.data && data.data.bizMsg) { + console.log(data.data.bizMsg); + } else { + console.log(res); + } + break; + case 'olympicgames_collectCurrency': + if (data.code === 0 && data.data && data.data.result) { + console.log(`收取成功,当前卡币:${data.data.result.poolCurrency}`); + } else if (data.data && data.data.bizMsg) { + console.log(data.data.bizMsg); + } else { + console.log(res); + } + if (data.code === 0 && data.data && data.data.bizCode === -1002) { + $.hotFlag = true; + console.log(`该账户脚本执行任务火爆,暂停执行任务,请手动做任务或者等待解决脚本火爆问题`) + } + break; + case 'olympicgames_receiveCash': + if (data.code === 0 && data.data && data.data.result) { + if (data.data.result.couponVO) { + console.log('升级成功') + let res = data.data.result.couponVO + console.log(`获得[${res.couponName}]优惠券:${res.usageThreshold} 优惠:${res.quota} 时间:${res.useTimeRange}`); + } else if (data.data.result.userActBaseVO) { + console.log('结算结果') + let res = data.data.result.userActBaseVO + console.log(`当前金额:${res.totalMoney}\n${JSON.stringify(res)}`); + } + } else if (data.data && data.data.bizMsg) { + console.log(data.data.bizMsg); + } else { + console.log(res); + } + break; + case 'olympicgames_getTaskDetail': + if (data.data && data.data.bizCode === 0) { + console.log(`互助码:${data.data.result && data.data.result.inviteId || '助力已满,获取助力码失败'}\n`); + if (data.data.result && data.data.result.inviteId) { + $.inviteList.push({ + 'ues': $.UserName, + // 'secretp': $.secretp, + 'inviteId': data.data.result.inviteId, + 'max': false + }); + } + $.taskList = data.data.result && data.data.result.taskVos || []; + } else if (data.data && data.data.bizMsg) { + console.log(data.data.bizMsg); + } else { + console.log(res); + } + break; + case 'olypicgames_guradHome': + if (data.data && data.data.bizCode === 0) { + console.log(`SH互助码:${data.data.result && data.data.result.inviteId || '助力已满,获取助力码失败\n'}`); + if (data.data.result && data.data.result.inviteId) { + if (data.data.result.inviteId) $.ShInviteList.push(data.data.result.inviteId); + console.log(`守护金额:${Number(data.data.result.activityLeftAmount || 0)} 护盾剩余:${timeFn(Number(data.data.result.guardLeftSeconds || 0) * 1000)} 离结束剩:${timeFn(Number(data.data.result.activityLeftSeconds || 0) * 1000)}`) + if (data.data.result.activityLeftSeconds == 0) $.Shend = true + } + $.taskList = data.data.result && data.data.result.taskVos || []; + } else if (data.data && data.data.bizMsg) { + console.log(data.data.bizMsg); + } else { + console.log(res); + } + break; + case 'olympicgames_doTaskDetail': + if (data.data && data.data.bizCode === 0) { + if (data.data.result && data.data.result.taskToken) { + $.callbackInfo = data; + } else if (data.data.result && data.data.result.successToast) { + console.log(data.data.result.successToast); + } + } else if (data.data && data.data.bizMsg) { + console.log(data.data.bizMsg); + } else { + console.log(res); + } + break; + case 'olympicgames_getFeedDetail': + if (data.code === 0) { + $.feedDetailInfo = data.data.result.addProductVos[0] || []; + } + break; + case 'add_car': + if (data.code === 0) { + if (data.data && data.data.bizCode === 0 && data.data.result && data.data.result.acquiredScore) { + let acquiredScore = data.data.result.acquiredScore; + if (Number(acquiredScore) > 0) { + console.log(`加购成功,获得金币:${acquiredScore}`); + } else { + console.log(`加购成功`); + } + } else if (data.data && data.data.bizMsg) { + console.log(data.data.bizMsg); + } else { + console.log(res); + } + } + break + case 'shHelp': + case 'help': + if (data.data && data.data.bizCode === 0) { + let cash = '' + if (data.data.result.hongBaoVO && data.data.result.hongBaoVO.withdrawCash) cash = `,并获得${Number(data.data.result.hongBaoVO.withdrawCash)}红包` + console.log(`助力成功${cash}`); + } else if (data.data && data.data.bizMsg) { + if (data.data.bizMsg.indexOf('今天用完所有') > -1) { + $.canHelp = false; + } + console.log(data.data.bizMsg); + } else { + console.log(res); + } + break; + case 'helpp': + if (data.data && data.data.bizMsg) { + if (data.data.bizMsg.indexOf('今天用完所有') > -1) { + $.canHelp = false; + } + } + break; + case 'olympicgames_speedTraining': + if (data.data && data.data.bizCode === 0 && data.data.result) { + let res = data.data.result + console.log(`获得[${res.couponName}]优惠券:${res.usageThreshold} 优惠:${res.quota} 时间:${res.useTimeRange}`); + } else if (data.data && data.data.bizMsg) { + if (data.data.bizMsg.indexOf('不在运动中') > -1) { + $.speedTraining = false; + } + console.log(data.data.bizMsg); + } else { + console.log(res); + } + break; + case 'olympicgames_startTraining': + if (data.data && data.data.bizCode === 0 && data.data.result) { + let res = data.data.result + console.log(`倒计时${res.countdown}s ${res.currencyPerSec}卡币/s`); + } else if (data.data && data.data.bizMsg) { + if (data.data.bizMsg.indexOf('运动量已经够啦') > -1) { + $.speedTraining = false; + } + console.log(data.data.bizMsg); + } else { + console.log(res); + } + break; + case 'olympicgames_tiroGuide': + console.log(res); + break; + case 'olympicgames_shopLotteryInfo': + if (data.code === 0) { + $.shopResult = data.data.result; + } + break; + case 'qryCompositeMaterials': + //console.log(data); + if (data.code === '0') { + $.shopInfoList = data.data.logoData.list; + console.log(`获取到${$.shopInfoList.length}个店铺`); + } + break + case 'olympicgames_bdDoTask': + if (data.data && data.data.bizCode === 0) { + console.log(`签到获得:${data.data.result.score}`); + } else if (data.data && data.data.bizMsg) { + console.log(data.data.bizMsg); + } else { + console.log(data); + } + break; + case 'olympicgames_boxShopLottery': + if (data.data && data.data.result) { + let result = data.data.result; + switch (result.awardType) { + case 8: + console.log(`获得金币:${result.rewardScore}`); + break; + case 5: + console.log(`获得:adidas能量`); + break; + case 2: + case 3: + console.log(`获得优惠券:${result.couponInfo.usageThreshold} 优惠:${result.couponInfo.quota},${result.couponInfo.useRange}`); + break; + default: + console.log(`抽奖获得未知`); + console.log(JSON.stringify(data)); + } + } else if (data.data && data.data.bizMsg) { + console.log(data.data.bizMsg); + } else { + console.log(res); + } + break + case 'wxTaskDetail': + if (data.code === 0) { + $.wxTaskList = data.data.result && data.data.result.taskVos || []; + } + break; + case 'olympicgames_pawnshopRewardPop': + if (data.data && data.data.bizCode === 0 && data.data.result) { + console.log(res) + console.log(`结果:${data.data.result.currencyReward && '额外奖励' + data.data.result.currencyReward + '卡币' || ''}`) + } else if (data.data && data.data.bizMsg) { + console.log(data.data.bizMsg); + } else { + console.log(res); + } + break; + default: + console.log(`未判断的异常${type}`); + } +} + +async function getPostBody(type) { + return new Promise(async resolve => { + let taskBody = ''; + try { + const log = await getBody() + if (type === 'help' || type === 'shHelp') { + taskBody = `functionId=olympicgames_assist&body=${JSON.stringify({ "inviteId": $.inviteId, "type": "confirm", "ss": log })}&client=wh5&clientVersion=1.0.0&appid=${$.appid}` + } else if (type === 'olympicgames_collectCurrency') { + taskBody = `functionId=olympicgames_collectCurrency&body=${JSON.stringify({ "type": $.collectId, "ss": log })}&client=wh5&clientVersion=1.0.0&appid=${$.appid}`; + } else if (type === 'olympicgames_startTraining' || type === 'olympicgames_speedTraining') { + taskBody = `functionId=${type}&body=${JSON.stringify({ "ss": log })}&client=wh5&clientVersion=1.0.0&appid=${$.appid}`; + } else if (type === 'add_car') { + taskBody = `functionId=olympicgames_doTaskDetail&body=${JSON.stringify({ "taskId": $.taskId, "taskToken": $.taskToken, "ss": log })}&client=wh5&clientVersion=1.0.0&appid=${$.appid}` + } else if (type === 'helpp') { + taskBody = `functionId=olympicgames_assist&body=${JSON.stringify({ "inviteId": $.inviteId, "type": "confirm", "ss": log })}&client=wh5&clientVersion=1.0.0&appid=${$.appid}` + } else { + let actionType = 0 + if ([1, 3, 5, 6, 8, 9, 14, 22, 23, 24, 25, 26].includes($.oneTask.taskId)) actionType = 1 + taskBody = `functionId=${type}&body=${JSON.stringify({ "taskId": $.oneTask.taskId, "taskToken": $.oneActivityInfo.taskToken, "ss": log, "shopSign": $.shopSign, "actionType": actionType, "showErrorToast": false })}&client=wh5&clientVersion=1.0.0&appid=${$.appid}` + } + } catch (e) { + $.logErr(e) + } finally { + resolve(taskBody); + } + }) +} + +async function getPostRequest(type, body) { + let url = `https://api.m.jd.com/client.action?advId=${type}`; + const method = `POST`; + const headers = { + "Accept": "application/json", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + 'Cookie': $.cookie, + "Origin": "https://wbbny.m.jd.com", + "Referer": "https://wbbny.m.jd.com/", + "User-Agent": UA, + + }; + return { url: url, method: method, headers: headers, body: body }; +} + + +//领取奖励 +function callbackResult(info) { + return new Promise((resolve) => { + let url = { + url: `https://api.m.jd.com/?functionId=qryViewkitCallbackResult&client=wh5&clientVersion=1.0.0&body=${info}&_timestamp=` + Date.now(), + headers: { + 'Origin': `https://bunearth.m.jd.com`, + 'Cookie': $.cookie, + 'Connection': `keep-alive`, + 'Accept': `*/*`, + 'Host': `api.m.jd.com`, + 'User-Agent': UA, + 'Accept-Encoding': `gzip, deflate, br`, + 'Accept-Language': `zh-cn`, + 'Content-Type': 'application/x-www-form-urlencoded', + 'Referer': 'https://bunearth.m.jd.com' + } + } + + $.get(url, async (err, resp, data) => { + try { + data = JSON.parse(data); + console.log(data.toast.subTitle) + } catch (e) { + $.logErr(e, resp); + } finally { + resolve() + } + }) + }) +} + +// 入会 +function joinjoinjoinhui(url, Referer) { + return new Promise(resolve => { + let taskjiaruUrl = { + url: url, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + // "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": Referer, + "Cookie": $.cookie, + "User-Agent": UA, + } + } + $.get(taskjiaruUrl, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} 入会 API请求失败,请检查网路重试`) + } else { + console.log(data) + if (data) { + data = JSON.parse(data) + console.log(data.message || JSON.stringify(data)) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getAuthorShareCode(url = "https://www.fastmock.site/mock/cbbb3764093b72da95d9396d19b9a901/jd/zoo/zooinvite") { + return new Promise(async resolve => { + const options = { + "url": `${url}?${new Date()}`, + "timeout": 10000, + "headers": { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { + const tunnel = require("tunnel"); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: process.env.TG_PROXY_HOST, + port: process.env.TG_PROXY_PORT * 1 + } + }) + } + Object.assign(options, { agent }) + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(data || []); + } + }) + await $.wait(10000) + resolve(); + }) +} + /** - * 燃动夏季 - * 25 0,6-23/2 * * * - * 脚本会助力作者百元守卫战 参数helpAuthorFlag 默认助力 - * 百元守卫战,先脚本内互助,多的助力会助力作者 - * */ - const $ = new Env('燃动夏季'); - const notify = $.isNode() ? require('./sendNotify') : ''; - const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; - const helpAuthorFlag = false;//是否助力作者SH true 助力,false 不助力 - const https = require('https'); - const fs = require('fs/promises'); - const { R_OK } = require('fs').constants; - const vm = require('vm'); - const URL = 'https://wbbny.m.jd.com/babelDiy/Zeus/2rtpffK8wqNyPBH6wyUDuBKoAbCt/index.html'; - const SYNTAX_MODULE = '!function(n){var r={};function o(e){if(r[e])'; - const REG_SCRIPT = /