diff --git a/jd_zoo.js b/jd_zoo.js index cbdb82dc..6b36e103 100644 --- a/jd_zoo.js +++ b/jd_zoo.js @@ -6,10 +6,10 @@ author:star 邀请好友助力:内部账号自行互助(排名靠前账号得到的机会多) PK互助:内部账号自行互助(排名靠前账号得到的机会多),多余的助力次数会默认助力作者内置助力码 小程序任务:已完成 -地图任务:未完成,后期添加 +地图任务:已添加,抽奖未添加 金融APP任务:未完成,后期添加 活动时间:2021-05-24至2021-06-20 -脚本更新时间:2021-05-26 9:23 +脚本更新时间:2021-05-26 15:20 脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js ===================quantumultx================ [task_local] @@ -42,7 +42,6 @@ $.innerPkInviteList = [ 'sSKNX-MpqKOJsNv74MOnRO1-y24JzNJfEGle1Ooa7gtNStMf5n0b6pOxJ2-G', 'sSKNX-MpqKOUsPHLzP-MQ8sgU5F_0euaHLLGd6Y_Ng7Xhu2RkM0EMvUKJQ', ]; -$.allshopIdList = [1000004064,1000332823,1000081945,1000009821,1000000182,1000096602,1000100813,1000003263,58463,1000014803,1000001521,59809, 1000310642,1000004065,39348,24299,1000115184,1000002662, 1000014988,34239,874707,10370169,1000000706,712065, 58366,1000001782,1000000488,1000001927,1000094142,182588]; if ($.isNode()) { Object.keys(jdCookieNode).forEach((item) => { cookiesArr.push(jdCookieNode[item]) @@ -63,7 +62,7 @@ if ($.isNode()) { '邀请好友助力:内部账号自行互助(排名靠前账号得到的机会多)\n' + 'PK互助:内部账号自行互助(排名靠前账号得到的机会多),多余的助力次数会默认助力作者内置助力码\n' + '小程序任务:已完成\n' + - '地图任务:未完成,后期添加\n' + + '地图任务:已添加,抽奖暂未添加\n' + '金融APP任务:未完成,后期添加\n' + '活动时间:2021-05-24至2021-06-20\n' + '脚本更新时间:2021-05-26 9:55'); @@ -72,8 +71,18 @@ if ($.isNode()) { $.cookie = cookiesArr[i]; $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); $.index = i + 1; - console.log(`\n******开始【京东账号${$.index}】${$.UserName}*********\n`); + $.isLogin = true; + $.nickName = $.UserName; + await TotalBean(); + console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); console.log(`\n如有未完成的任务,请多执行几次\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } await zoo() } } @@ -200,50 +209,52 @@ async function zoo() { } } //===================================图鉴里的店铺==================================================================== - //测试下来有BUG先注释 - // $.shopIdList = getRandomArrayElements($.allshopIdList,6); - // for (let i = 0; i < $.shopIdList.length; i++) { - // $.shopSign = $.shopIdList[i]; - // $.shopResult = {}; - // console.log(`执行店铺ID:${$.shopSign} 的任务`); - // await takePostRequest('zoo_shopLotteryInfo'); - // if(JSON.stringify($.shopResult) === `{}`) continue; - // $.shopTask = $.shopResult.taskVos; - // for (let i = 0; i < $.shopTask.length; i++) { - // $.oneTask = $.shopTask[i]; - // //console.log($.oneTask); - // if($.oneTask.taskType === 21 || $.oneTask.taskType === 14 || $.oneTask.status !== 1){continue;} //不做入会//不做邀请 - // $.activityInfoList = $.oneTask.shoppingActivityVos || $.oneTask.simpleRecordInfoVo; - // if($.oneTask.taskType === 12){//签到 - // if($.shopResult.dayFirst === 0){ - // $.oneActivityInfo = $.activityInfoList; - // console.log(`店铺签到`); - // await takePostRequest('zoo_bdCollectScore'); - // }else{ - // console.log(`店铺已签到`); - // } - // 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('zoo_collectScore'); - // 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(`任务完成`); - // } - // } - // } - // await $.wait(1000); - // } + if (new Date().getUTCHours() + 8 >= 14 && new Date().getUTCHours() + 8 <= 17){//30个店铺,为了避免代码执行太久,下午2点到5点才做店铺任务 + console.log(`去做店铺任务`); + $.shopInfoList = []; + await takePostRequest('qryCompositeMaterials'); + for (let i = 0; i < $.shopInfoList.length; i++) { + $.shopSign = $.shopInfoList[i].extension.shopId; + console.log(`执行第${i+1}个店铺任务:${$.shopInfoList[i].name} ID:${$.shopSign}`); + $.shopResult = {}; + await takePostRequest('zoo_shopLotteryInfo'); + await $.wait(1000); + if(JSON.stringify($.shopResult) === `{}`) continue; + $.shopTask = $.shopResult.taskVos; + for (let i = 0; i < $.shopTask.length; i++) { + $.oneTask = $.shopTask[i]; + //console.log($.oneTask); + if($.oneTask.taskType === 21 || $.oneTask.taskType === 14 || $.oneTask.status !== 1){continue;} //不做入会//不做邀请 + $.activityInfoList = $.oneTask.shoppingActivityVos || $.oneTask.simpleRecordInfoVo; + if($.oneTask.taskType === 12){//签到 + if($.shopResult.dayFirst === 0){ + $.oneActivityInfo = $.activityInfoList; + console.log(`店铺签到`); + await takePostRequest('zoo_bdCollectScore'); + } + 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('zoo_collectScore'); + 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(`任务完成`); + } + } + } + await $.wait(3000); + } + } //==================================微信任务======================================================================== $.wxTaskList = []; await takePostRequest('wxTaskDetail'); @@ -405,6 +416,10 @@ async function takePostRequest(type) { body = getBody(type); myRequest = await getPostRequest(`zoo_bdCollectScore`,body); break; + case 'qryCompositeMaterials': + body = `functionId=qryCompositeMaterials&body={"qryParam":"[{\\"type\\":\\"advertGroup\\",\\"mapTo\\":\\"resultData\\",\\"id\\":\\"05371960\\"}]","activityId":"2s7hhSTbhMgxpGoa9JDnbDzJTaBB","pageId":"","reqSrc":"","applyKey":"jd_star"}&client=wh5&clientVersion=1.0.0`; + myRequest = await getPostRequest(`qryCompositeMaterials`,body); + break; default: console.log(`错误${type}`); } @@ -551,11 +566,17 @@ async function dealReturn(type, data) { console.log(`签到获得:${data.data.result.score}`); } break; + case 'qryCompositeMaterials': + //console.log(data); + if (data.code === '0') { + $.shopInfoList = data.data.resultData.list; + console.log(`获取到${$.shopInfoList.length}个店铺`); + } + break default: console.log(`未判断的异常${type}`); } } - //领取奖励 function callbackResult(info) { return new Promise((resolve) => { @@ -662,6 +683,49 @@ function getAuthorShareCode(url = "http://cdn.annnibb.me/eb6fdc36b281b7d5eabf333 resolve(); }) } + +function TotalBean() { + return new Promise(async resolve => { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + Host: "me-api.jd.com", + Accept: "*/*", + Connection: "keep-alive", + Cookie: $.cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} + function randomWord(randomFlag, min, max) { let str = "", range = min,