From 316ee042119e613be271b0a1bb068721115ae8a9 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 15 Jul 2021 21:27:38 -0400 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=8E=2007-15=2021:27?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jd_summer_movement.js | 1646 ++++++++++++++++++++++------------------- 1 file changed, 905 insertions(+), 741 deletions(-) diff --git a/jd_summer_movement.js b/jd_summer_movement.js index 85f4251..cb987a2 100755 --- a/jd_summer_movement.js +++ b/jd_summer_movement.js @@ -1,743 +1,907 @@ +/* + +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; +} + +// 百元守卫战SH +let summer_movement_ShHelpFlag = 1;// 0不开启也不助力 1开启并助力 2开启但不助力 +if ($.isNode() && process.env.summer_movement_ShHelpFlag) { + summer_movement_ShHelpFlag = process.env.summer_movement_ShHelpFlag; +} + +// 邀请助力 +let summer_movement_HelpHelpHelpFlag = false;// 是否只执行邀请助力 true 是,false 不是 +if ($.isNode() && process.env.summer_movement_HelpHelpHelpFlag) { + summer_movement_HelpHelpHelpFlag = process.env.summer_movement_HelpHelpHelpFlag; +} + + +const ShHelpAuthorFlag = true;//是否助力作者SH true 助力,false 不助力 +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = []; +$.cookie = ''; +$.inviteList = [ + 'HcmphLbwLgyhftGfF9Jn1o6YN9mroEeXsmYJ6vjFm12gycXFKMK1SFs69JA3oicza0YGPyLoNmdbS0RbRS8tQg', + 'HcmphLbwLkvlD9rARIhHv0NO_86eOZuiI8QQQAzI5fgh1DXEr6FVDDBNo-6ZBu197dfsYiiPu96htMW4Yw', + 'HcmphLbwLlHmB9zTdot2jpICqGYSF_yzrFkbsqYhpLToVKjZHNFJBSgwzcE6yck7AnGjmIAcgqpMNRezHw', + 'HcmphK2gRAqreYuHHtUx37oZ1V911yQM6XFIfIq4-_QTUS2L_Vuukv7aClCPs5UelG5G6jOuqr5L4fs', + 'HcmphLbwLn7qHunwXapZtw_InmAbIFfG8Xr4XNxJO_4CVdk_IixEsccmA6dUo2aQQzSD5vJEUcyG-oP-Bw' +]; +$.secretpInfo = {}; +$.ShInviteList = []; +$.innerShInviteList = []; +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;10.0.6;${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' + + '新增活动火爆不做任务处理\n' + + '活动时间:2021-07-08至2021-08-08\n' + + '脚本更新时间:2021年7月13日 18点00分\n' + ); + if(`${summer_movement_joinjoinjoinhui}` === "true") console.log('您设置了入会\n') + if(`${summer_movement_HelpHelpHelpFlag}` === "true") console.log('您设置了只执行邀请助力\n') + 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') + + + console.log(`注意:若执行失败,则请手动删除脚本目录下的“app.*.js”文件,然后重新执行脚本`); + console.log(`类似 app.5c2472d1.js、app.c7364f20.js 等都删除\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;//火爆账号不执行助力 + } + } + // 助力 + 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); + } + } + + +})() + .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(JSON.stringify($.homeData.result.trainingInfo)) + 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'); + if(`${summer_movement_HelpHelpHelpFlag}` === "true") return + await $.wait(1000); + //做任务 + for (let i = 0; i < $.taskList.length && !$.hotFlag; i++) { + $.oneTask = $.taskList[i]; + if(!aabbiill()) continue; + 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(2000); + } + 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(1000, 2000)); + 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(1000, 2000)); + } 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(1000, 2000)); + 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, 9000)); + 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 + if(!aabbiill()) continue; + $.shopSign = $.shopInfoList[i].extension.shopId; + console.log(`执行第${i+1}个店铺任务:${$.shopInfoList[i].name} ID:${$.shopSign}`); + $.shopResult = {}; + await takePostRequest('olympicgames_shopLotteryInfo'); + await $.wait(getRndInteger(1000, 2000)); + 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(getRndInteger(7000, 9000)); + 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(2000, 3000)); + 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 '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 '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{ + 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(); + } + }) + }) +} + + /** - * 燃动夏季 - * 25 0,6-23/2 * * * - * 脚本会助力作者百元守卫战 参数helpAuthorFlag 默认助力 - * 百元守卫战,先脚本内互助,多的助力会助力作者 - * */ - const $ = new Env('燃动夏季'); - const notify = $.isNode() ? require('./sendNotify') : ''; - const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; - const helpAuthorFlag = true;//是否助力作者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 = /