助力池对接

This commit is contained in:
Faker 2022-07-19 11:09:22 +08:00
parent fd0036e477
commit c016ea9469
7 changed files with 6400 additions and 5052 deletions

198
jd_dreamFactory.js Normal file → Executable file

File diff suppressed because one or more lines are too long

1619
jd_fruit.js Executable file

File diff suppressed because one or more lines are too long

262
jd_health.js Normal file → Executable file

File diff suppressed because one or more lines are too long

176
jd_jdfactory.js Normal file → Executable file

File diff suppressed because one or more lines are too long

1515
jd_pet.js Normal file → Executable file

File diff suppressed because one or more lines are too long

540
jd_plantBean.js Normal file → Executable file
View File

@ -1,34 +1,48 @@
/* /*
种豆得豆 种豆得豆 脚本更新地址https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_plantBean.js
updatetime:2022-07-17 更新时间2021-08-20
活动入口京东APP我的-更多工具-种豆得豆 活动入口京东APP我的-更多工具-种豆得豆
已支持IOS京东多账号,云端多京东账号 已支持IOS京东多账号,云端多京东账号
脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js 脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js
会自动关注任务中的店铺跟商品介意者勿使用 会自动关注任务中的店铺跟商品介意者勿使用
互助码shareCode请先手动运行脚本查看打印可看到 互助码shareCode请先手动运行脚本查看打印可看到
每个京东账号每天只能帮助3个人多出的助力码将会助力失败 每个京东账号每天只能帮助3个人多出的助力码将会助力失败
// zero205已添加自己账号内部互助有剩余助力次数再帮我助力
=====================================Quantumult X================================= =====================================Quantumult X=================================
[task_local] [task_local]
15 7-21/2 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_plantBean.js, tag=种豆得豆, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jdzd.png, enabled=true 1 7-21/2 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_plantBean.js, tag=种豆得豆, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jdzd.png, enabled=true
=====================================Loon================================ =====================================Loon================================
[Script] [Script]
cron "15 7-21/2 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_plantBean.js,tag=京东种豆得豆 cron "1 7-21/2 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_plantBean.js,tag=京东种豆得豆
======================================Surge========================== ======================================Surge==========================
京东种豆得豆 = type=cron,cronexp="15 7-21/2 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_plantBean.js 京东种豆得豆 = type=cron,cronexp="1 7-21/2 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_plantBean.js
====================================小火箭============================= ====================================小火箭=============================
京东种豆得豆 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_plantBean.js, cronexpr="15 7-21/2 * * *", timeout=3600, enable=true 京东种豆得豆 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_plantBean.js, cronexpr="1 7-21/2 * * *", timeout=3600, enable=true
*/ */
const $ = new Env('京东种豆得豆'); const $ = new Env('京东种豆得豆');
//Node.js用户请在jdCookie.js处填写京东ck; //Node.js用户请在jdCookie.js处填写京东ck;
//ios等软件用户直接用NobyDa的jd cookie //ios等软件用户直接用NobyDa的jd cookie
let jdNotify = true;//是否开启静默运行。默认true开启 let jdNotify = true;//是否开启静默运行。默认true开启
let cookiesArr = [], cookie = '', jdPlantBeanShareArr = [], isBox = false, notify, newShareCodes, option, message,subTitle; let cookiesArr = [], cookie = '', jdPlantBeanShareArr = [], isBox = false, notify, newShareCodes, option, message, subTitle;
//京东接口地址 //京东接口地址
const JD_API_HOST = 'https://api.m.jd.com/client.action'; const JD_API_HOST = 'https://api.m.jd.com/client.action';
//助力好友分享码(最多3个,否则后面的助力失败) //助力好友分享码(最多3个,否则后面的助力失败)
//此此内容是IOS用户下载脚本到本地使用填写互助码的地方同一京东账号的好友互助码请使用@符号隔开。 //此此内容是IOS用户下载脚本到本地使用填写互助码的地方同一京东账号的好友互助码请使用@符号隔开。
//下面给出两个账号的填写示例iOS只支持2个京东账号 //下面给出两个账号的填写示例iOS只支持2个京东账号
let shareCodes = [''] let shareCodes = [ // IOS本地脚本用户这个列表填入你要助力的好友的shareCode
//账号一的好友shareCode,不同好友的shareCode中间用@符号隔开
'mlrdw3aw26j3xc6xycqtc74umufg2kphl3yfaxy@4npkonnsy7xi3ii7u6y52byc4urucexhl2wh2pq@olmijoxgmjutydymkyc56wollvia4yorekjt5ky@q7knrx5fitalyburqkflsm4jjq3h7wlwy7o5jii@4npkonnsy7xi2dkkbvl643342m5of4rpapky3ha@u72q4vdn3zes3byfckc62jqcbkxq3wtymnzrz2i@e7lhibzb3zek3ziaj5fstdr2qbxofrnt63pxzpq@fn5sjpg5zdejmpxw4mttxyyppqmy3t6eveppesy@hjkb2bbfm2bdr7lxto2hvcagyq3h7wlwy7o5jii',
//账号二的好友shareCode,不同好友的shareCode中间用@符号隔开
'mlrdw3aw26j3xc6xycqtc74umufg2kphl3yfaxy@4npkonnsy7xi3ii7u6y52byc4urucexhl2wh2pq@olmijoxgmjutydymkyc56wollvia4yorekjt5ky@q7knrx5fitalyburqkflsm4jjq3h7wlwy7o5jii@4npkonnsy7xi2dkkbvl643342m5of4rpapky3ha@u72q4vdn3zes3byfckc62jqcbkxq3wtymnzrz2i@e7lhibzb3zek3ziaj5fstdr2qbxofrnt63pxzpq@fn5sjpg5zdejmpxw4mttxyyppqmy3t6eveppesy@hjkb2bbfm2bdr7lxto2hvcagyq3h7wlwy7o5jii',
]
const ZLC = !(process.env.JD_JOIN_ZLC && process.env.JD_JOIN_ZLC === 'false')
const JD_ZLC_URL=process.env.JD_ZLC_URL?process.env.JD_ZLC_URL:"http://zlc1.chaoyi996.com:8880";
let allMessage = ``; let allMessage = ``;
let currentRoundId = null;//本期活动id let currentRoundId = null;//本期活动id
let lastRoundId = null;//上期id let lastRoundId = null;//上期id
@ -36,22 +50,14 @@ let roundList = [];
let awardState = '';//上期活动的京豆是否收取 let awardState = '';//上期活动的京豆是否收取
let randomCount = $.isNode() ? 20 : 5; let randomCount = $.isNode() ? 20 : 5;
let num; let num;
$.newShareCode = [];
let NowHour = new Date().getHours();
let llhelp=true;
if ($.isNode() && process.env.CC_NOHELPAFTER8) {
console.log(NowHour);
if (process.env.CC_NOHELPAFTER8=="true"){
if (NowHour>8){
llhelp=false;
console.log(`现在是9点后时段不启用互助....`);
}
}
}
!(async () => { !(async () => {
if (!process.env.JD_JOIN_ZLC) {
console.log(`【注意】本脚本默认会给助力池进行助力!\n如需加入助力池请添加TG群https://t.me/jd_zero_205\n如不加入助力池互助可添加变量名称JD_JOIN_ZLC变量值false\n`)
}
await requireConfig(); await requireConfig();
if (!cookiesArr[0]) { 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"}); $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" });
return; return;
} }
for (let i = 0; i < cookiesArr.length; i++) { for (let i = 0; i < cookiesArr.length; i++) {
@ -62,9 +68,9 @@ if ($.isNode() && process.env.CC_NOHELPAFTER8) {
$.isLogin = true; $.isLogin = true;
$.nickName = ''; $.nickName = '';
await TotalBean(); await TotalBean();
console.log(`开始【京东账号${$.index}${$.nickName || $.UserName}\n`); console.log(`\n开始【京东账号${$.index}${$.nickName || $.UserName}\n`);
if (!$.isLogin) { 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"}); $.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()) { if ($.isNode()) {
await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`);
@ -74,12 +80,19 @@ if ($.isNode() && process.env.CC_NOHELPAFTER8) {
message = ''; message = '';
subTitle = ''; subTitle = '';
option = {}; option = {};
await shareCodesFormat();
await jdPlantBean(); await jdPlantBean();
await showMsg(); await showMsg();
} }
} }
for (let j = 0; j < cookiesArr.length; j++) {
if (cookiesArr[j]) {
cookie = cookiesArr[j];
$.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1])
$.index = j + 1;
await shareCodesFormat();
await doHelp()
}
}
if ($.isNode() && allMessage) { if ($.isNode() && allMessage) {
await notify.sendNotify(`${$.name}`, `${allMessage}`) await notify.sendNotify(`${$.name}`, `${allMessage}`)
} }
@ -97,7 +110,7 @@ async function jdPlantBean() {
console.log(`\n活动太火爆了,还是去买买买吧!\n`) console.log(`\n活动太火爆了,还是去买买买吧!\n`)
return return
} }
for (let i = 0; i < $.plantBeanIndexResult.data?.roundList?.length; i++) { for (let i = 0; i < $.plantBeanIndexResult.data.roundList.length; i++) {
if ($.plantBeanIndexResult.data.roundList[i].roundState === "2") { if ($.plantBeanIndexResult.data.roundList[i].roundState === "2") {
num = i num = i
break break
@ -108,6 +121,8 @@ async function jdPlantBean() {
const shareUrl = $.plantBeanIndexResult.data.jwordShareInfo.shareUrl const shareUrl = $.plantBeanIndexResult.data.jwordShareInfo.shareUrl
$.myPlantUuid = getParam(shareUrl, 'plantUuid') $.myPlantUuid = getParam(shareUrl, 'plantUuid')
console.log(`\n【京东账号${$.index}${$.UserName})的${$.name}好友互助码】${$.myPlantUuid}\n`); console.log(`\n【京东账号${$.index}${$.UserName})的${$.name}好友互助码】${$.myPlantUuid}\n`);
jdPlantBeanShareArr.push($.myPlantUuid)
roundList = $.plantBeanIndexResult.data.roundList; roundList = $.plantBeanIndexResult.data.roundList;
currentRoundId = roundList[num].roundId;//本期的roundId currentRoundId = roundList[num].roundId;//本期的roundId
lastRoundId = roundList[num - 1].roundId;//上期的roundId lastRoundId = roundList[num - 1].roundId;//上期的roundId
@ -118,14 +133,11 @@ async function jdPlantBean() {
message += `【上期成长值】${roundList[num - 1].growth}\n`; message += `【上期成长值】${roundList[num - 1].growth}\n`;
await receiveNutrients();//定时领取营养液 await receiveNutrients();//定时领取营养液
await doTask();//做日常任务 await doTask();//做日常任务
//await doEgg(); // await doEgg();
await stealFriendWater(); await stealFriendWater();
await doCultureBean(); await doCultureBean();
await doGetReward(); await doGetReward();
await showTaskProcess(); await showTaskProcess();
if(llhelp){
await doHelp()
}
await plantShareSupportList(); await plantShareSupportList();
} else { } else {
console.log(`种豆得豆-初始失败: ${JSON.stringify($.plantBeanIndexResult)}`); console.log(`种豆得豆-初始失败: ${JSON.stringify($.plantBeanIndexResult)}`);
@ -137,6 +149,7 @@ async function jdPlantBean() {
$.msg($.name, '', `${errMsg}`) $.msg($.name, '', `${errMsg}`)
} }
} }
async function doGetReward() { async function doGetReward() {
console.log(`【上轮京豆】${awardState === '4' ? '采摘中' : awardState === '5' ? '可收获了' : '已领取'}`); console.log(`【上轮京豆】${awardState === '4' ? '采摘中' : awardState === '5' ? '可收获了' : '已领取'}`);
if (awardState === '4') { if (awardState === '4') {
@ -150,7 +163,7 @@ async function doGetReward() {
console.log('京豆领取成功'); console.log('京豆领取成功');
message += `【上期兑换京豆】${$.getReward.data.awardBean}\n`; message += `【上期兑换京豆】${$.getReward.data.awardBean}\n`;
$.msg($.name, subTitle, message); $.msg($.name, subTitle, message);
allMessage += `京东账号${$.index}🆔 ${$.nickName}\n${message}${$.index !== cookiesArr.length ? '\n\n' : ''}` allMessage += `京东账号${$.index} ${$.nickName}\n${message}${$.index !== cookiesArr.length ? '\n\n' : ''}`
// if ($.isNode()) { // if ($.isNode()) {
// await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName || $.UserName}`, `京东账号${$.index} ${$.nickName}\n${message}`); // await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName || $.UserName}`, `京东账号${$.index} ${$.nickName}\n${message}`);
// } // }
@ -170,8 +183,8 @@ async function doGetReward() {
async function doCultureBean() { async function doCultureBean() {
await plantBeanIndex(); await plantBeanIndex();
if ($.plantBeanIndexResult && $.plantBeanIndexResult.code === '0') { if ($.plantBeanIndexResult && $.plantBeanIndexResult.code === '0') {
const plantBeanRound = $.plantBeanIndexResult.data?.roundList[num] const plantBeanRound = $.plantBeanIndexResult.data.roundList[num]
if (plantBeanRound?.roundState === '2') { if (plantBeanRound.roundState === '2') {
//收取营养液 //收取营养液
if (plantBeanRound.bubbleInfos && plantBeanRound.bubbleInfos.length) console.log(`开始收取营养液`) if (plantBeanRound.bubbleInfos && plantBeanRound.bubbleInfos.length) console.log(`开始收取营养液`)
for (let bubbleInfo of plantBeanRound.bubbleInfos) { for (let bubbleInfo of plantBeanRound.bubbleInfos) {
@ -192,7 +205,7 @@ async function stealFriendWater() {
return return
} }
if ($.stealFriendList.data && $.stealFriendList.data.friendInfoList && $.stealFriendList.data.friendInfoList.length > 0) { if ($.stealFriendList.data && $.stealFriendList.data.friendInfoList && $.stealFriendList.data.friendInfoList.length > 0) {
let nowTimes = new Date(new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000); let nowTimes = new Date(new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000);
for (let item of $.stealFriendList.data.friendInfoList) { for (let item of $.stealFriendList.data.friendInfoList) {
if (new Date(nowTimes).getHours() === 20) { if (new Date(nowTimes).getHours() === 20) {
if (item.nutrCount >= 2) { if (item.nutrCount >= 2) {
@ -215,7 +228,6 @@ async function stealFriendWater() {
} }
} }
} }
await $.wait(1000)
} }
} }
} else { } else {
@ -247,167 +259,153 @@ async function doTask() {
console.log(`${item.taskName} 任务已完成\n`); console.log(`${item.taskName} 任务已完成\n`);
continue; continue;
} else { } else {
switch(item.taskType){ if (item.taskType === 8) {
case 92: console.log(`\n${item.taskName}】任务未完成,需自行手动去京东APP完成${item.desc}营养液\n`)
await farmtask(); } else {
continue; console.log(`\n${item.taskName}】任务未完成,${item.desc}营养液\n`)
case 57: }
await jxdoublesign1('https://m.jingxi.com/jxbfd/user/DoubleSignDeal?g_ty=h5&g_tk=&appCode=msd1188198&__t=1657108409440&dwEnv=7&strDeviceId=a3b4e844090b28d5c38e7529af8115172079be4d&strZone=jxbfd&bizCode=jxbfd&source=jxbfd&_cfd_t=1657108409190&_stk=__t%2C_cfd_t%2CbizCode%2CdwEnv%2Csource%2CstrDeviceId%2CstrZone&_ste=1&h5st=20220706195330228%3B1980457211661562%3B10032%3Btk02w78551ad830nuMcGB4Qsv9QxapLP7gZdOCYE5PVV%2Bna%2Bb4KU21drJq64oP82965Vdc1tGqVU%2Flp7ydcZ5XgH0Feh%3B241b6f1d21bf8e41f380a5dd29a7bac2a6f1f65a0c7ef1b1f751eaea4c40dd9c%3B3.0%3B1657108410228&sceneval=2'); }
await $.wait(2000); if (item.dailyTimes === 1 && item.taskType !== 8) {
await jxdoublesign1('https://wq.jd.com/jxjdsignin/SignedInfo?channel=jx_zdddsq&_t=1658021925021&h5st=20220717093845024%3B5548444396555217%3B0f6ed%3Btk02w9b851b9c18nin7CZjR7vNSlwRexAOGWbYAbl85d9DiQJ1SufW8ZQEQ%2FSygreq626CVRO2gT8DwUUTLBXGyK6wam%3B7eb86560860f8f60ad3b679c34f89aacf891b5a85580efd0a30c355537bfec54%3B3.0%3B1658021925024&_stk=_t%2Cchannel&_=1658021925027&sceneval=2&g_login_type=1&g_ty=ajax&appCode=msc588d6d5'); console.log(`\n开始做 ${item.taskName}任务`);
await $.wait(2000); // $.receiveNutrientsTaskRes = await receiveNutrientsTask(item.taskType);
await jxdoublesign1('https://wq.jd.com/jxjdsignin/IssueReward?channel=jx_zdddsq&_t=1658021926276&h5st=20220717093846279%3B5548444396555217%3B0f6ed%3Btk02w9b851b9c18nin7CZjR7vNSlwRexAOGWbYAbl85d9DiQJ1SufW8ZQEQ%2FSygreq626CVRO2gT8DwUUTLBXGyK6wam%3Be2d7b6810b3bd1b9d9692d354ecbb582e69afc64df19bd8d6c14632b1a65660c%3B3.0%3B1658021926279&_stk=_t%2Cchannel&sceneval=2&g_login_type=1&g_ty=ajax&appCode=msc588d6d5'); await receiveNutrientsTask(item.taskType);
await $.wait(2000); console.log(`${item.taskName}任务结果:${JSON.stringify($.receiveNutrientsTaskRes)}\n`);
continue; }
case 3: if (item.taskType === 3) {
console.log(`开始做 ${item.taskName}任务`); //浏览店铺
let unFinishedShopNum = item.totalNum - item.gainedNum; console.log(`开始做 ${item.taskName}任务`);
if (unFinishedShopNum === 0) { let unFinishedShopNum = item.totalNum - item.gainedNum;
continue if (unFinishedShopNum === 0) {
} continue
await shopTaskList(); }
const { data } = $.shopTaskListRes; await shopTaskList();
let goodShopListARR = [],moreShopListARR = [], shopList = []; const { data } = $.shopTaskListRes;
const { goodShopList, moreShopList } = data; let goodShopListARR = [], moreShopListARR = [], shopList = [];
if (goodShopList) { const { goodShopList, moreShopList } = data;
for (let i of goodShopList) { for (let i of goodShopList) {
if (i.taskState === '2') { if (i.taskState === '2') {
goodShopListARR.push(i); goodShopListARR.push(i);
} }
} }
} for (let j of moreShopList) {
if (moreShopList) { if (j.taskState === '2') {
for (let j of moreShopList) { moreShopListARR.push(j);
if (j.taskState === '2') { }
moreShopListARR.push(j); }
} shopList = goodShopListARR.concat(moreShopListARR);
} for (let shop of shopList) {
} const { shopId, shopTaskId } = shop;
const body = {
shopList = goodShopListARR.concat(moreShopListARR); "monitor_refer": "plant_shopNutrientsTask",
for (let shop of shopList) { "shopId": shopId,
const { shopId, shopTaskId } = shop; "shopTaskId": shopTaskId
const body = { }
"monitor_refer": "plant_shopNutrientsTask", const shopRes = await requestGet('shopNutrientsTask', body);
"shopId": shopId, console.log(`shopRes结果:${JSON.stringify(shopRes)}`);
"shopTaskId": shopTaskId if (shopRes && shopRes.code === '0') {
} if (shopRes.data && shopRes.data.nutrState && shopRes.data.nutrState === '1') {
const shopRes = await requestGet('shopNutrientsTask', body); unFinishedShopNum--;
console.log(`shopRes结果:${JSON.stringify(shopRes)}`); }
if (shopRes && shopRes.code === '0') { }
if (shopRes.data && shopRes.data.nutrState && shopRes.data.nutrState === '1') { if (unFinishedShopNum <= 0) {
unFinishedShopNum --; console.log(`${item.taskName}任务已做完\n`)
} break;
} }
if (unFinishedShopNum <= 0) { }
console.log(`${item.taskName}任务已做完\n`) }
break; if (item.taskType === 5) {
} //挑选商品
} console.log(`开始做 ${item.taskName}任务`);
continue; let unFinishedProductNum = item.totalNum - item.gainedNum;
case 5: if (unFinishedProductNum === 0) {
//挑选商品 continue
console.log(`开始做 ${item.taskName}任务`); }
let unFinishedProductNum = item.totalNum - item.gainedNum; await productTaskList();
if (unFinishedProductNum === 0) { // console.log('productTaskList', $.productTaskList);
continue const { data } = $.productTaskList;
} let productListARR = [], productList = [];
await productTaskList(); const { productInfoList } = data;
// console.log('productTaskList', $.productTaskList); for (let i = 0; i < productInfoList.length; i++) {
//const { data1 } = $.productTaskList; for (let j = 0; j < productInfoList[i].length; j++) {
let productListARR = [], productList = []; productListARR.push(productInfoList[i][j]);
const { productInfoList } = $.productTaskList.data; }
for (let i = 0; i < productInfoList.length; i++) { }
for (let j = 0; j < productInfoList[i].length; j++){ for (let i of productListARR) {
productListARR.push(productInfoList[i][j]); if (i.taskState === '2') {
} productList.push(i);
} }
for (let i of productListARR) { }
if (i.taskState === '2') { for (let product of productList) {
productList.push(i); const { skuId, productTaskId } = product;
} const body = {
} "monitor_refer": "plant_productNutrientsTask",
for (let product of productList) { "productTaskId": productTaskId,
const { skuId, productTaskId } = product; "skuId": skuId
const body = { }
"monitor_refer": "plant_productNutrientsTask", const productRes = await requestGet('productNutrientsTask', body);
"productTaskId": productTaskId, if (productRes && productRes.code === '0') {
"skuId": skuId // console.log('nutrState', productRes)
} //这里添加多重判断,有时候会出现活动太火爆的问题,导致nutrState没有
const productRes = await requestGet('productNutrientsTask', body); if (productRes.data && productRes.data.nutrState && productRes.data.nutrState === '1') {
if (productRes && productRes.code === '0') { unFinishedProductNum--;
// console.log('nutrState', productRes) }
//这里添加多重判断,有时候会出现活动太火爆的问题,导致nutrState没有 }
if (productRes.data && productRes.data.nutrState && productRes.data.nutrState === '1') { if (unFinishedProductNum <= 0) {
unFinishedProductNum --; console.log(`${item.taskName}任务已做完\n`)
} break;
} }
if (unFinishedProductNum <= 0) { }
console.log(`${item.taskName}任务已做完\n`) }
break; if (item.taskType === 10) {
} //关注频道
} console.log(`开始做 ${item.taskName}任务`);
continue; let unFinishedChannelNum = item.totalNum - item.gainedNum;
case 10: if (unFinishedChannelNum === 0) {
//关注频道 continue
console.log(`开始做 ${item.taskName}任务`); }
let unFinishedChannelNum = item.totalNum - item.gainedNum; await plantChannelTaskList();
if (unFinishedChannelNum === 0) { const { data } = $.plantChannelTaskList;
continue // console.log('goodShopList', data.goodShopList);
} // console.log('moreShopList', data.moreShopList);
await plantChannelTaskList(); let goodChannelListARR = [], normalChannelListARR = [], channelList = [];
//const { data2 } = $.plantChannelTaskList; const { goodChannelList, normalChannelList } = data;
// console.log('goodShopList', data.goodShopList); for (let i of goodChannelList) {
// console.log('moreShopList', data.moreShopList); if (i.taskState === '2') {
let goodChannelListARR = [], normalChannelListARR = [], channelList = []; goodChannelListARR.push(i);
const { goodChannelList, normalChannelList } = $.plantChannelTaskList.data; }
for (let i of goodChannelList) { }
if (i.taskState === '2') { for (let j of normalChannelList) {
goodChannelListARR.push(i); if (j.taskState === '2') {
} normalChannelListARR.push(j);
} }
for (let j of normalChannelList) { }
if (j.taskState === '2') { channelList = goodChannelListARR.concat(normalChannelListARR);
normalChannelListARR.push(j); for (let channelItem of channelList) {
} const { channelId, channelTaskId } = channelItem;
} const body = {
channelList = goodChannelListARR.concat(normalChannelListARR); "channelId": channelId,
for (let channelItem of channelList) { "channelTaskId": channelTaskId
const { channelId, channelTaskId } = channelItem; }
const body = { const channelRes = await requestGet('plantChannelNutrientsTask', body);
"channelId": channelId, console.log(`channelRes结果:${JSON.stringify(channelRes)}`);
"channelTaskId": channelTaskId if (channelRes && channelRes.code === '0') {
} if (channelRes.data && channelRes.data.nutrState && channelRes.data.nutrState === '1') {
const channelRes = await requestGet('plantChannelNutrientsTask', body); unFinishedChannelNum--;
console.log(`channelRes结果:${JSON.stringify(channelRes)}`); }
if (channelRes && channelRes.code === '0') { }
if (channelRes.data && channelRes.data.nutrState && channelRes.data.nutrState === '1') { if (unFinishedChannelNum <= 0) {
unFinishedChannelNum --; console.log(`${item.taskName}任务已做完\n`)
} break;
} }
if (unFinishedChannelNum <= 0) { }
console.log(`${item.taskName}任务已做完\n`) }
break;
}
}
continue;
default:
console.log(`\n开始做 ${item.taskName}任务`);
// $.receiveNutrientsTaskRes = await receiveNutrientsTask(item.taskType);
await receiveNutrientsTask(item.taskType);
console.log(`${item.taskName}任务结果:${JSON.stringify($.receiveNutrientsTaskRes)}\n`);
continue;
}
}
} }
} }
} }
function showTaskProcess() { function showTaskProcess() {
return new Promise(async resolve => { return new Promise(async resolve => {
await plantBeanIndex(); await plantBeanIndex();
$.taskList = $.plantBeanIndexResult.data?.taskList; $.taskList = $.plantBeanIndexResult.data.taskList;
if ($.taskList && $.taskList.length > 0) { if ($.taskList && $.taskList.length > 0) {
console.log(" 任务 进度"); console.log(" 任务 进度");
for (let item of $.taskList) { for (let item of $.taskList) {
@ -419,8 +417,14 @@ function showTaskProcess() {
} }
//助力好友 //助力好友
async function doHelp() { async function doHelp() {
for (let plantUuid of newShareCodes) { if ($.isNode() && !process.env.PLANT_BEAN_SHARECODES) {
console.log(`开始助力京东账号${$.index} - ${$.nickName}的好友: ${plantUuid}`); console.log(`您未填写助力码变量开始账号内互助再帮【zero205】助力`);
$.newShareCode = [...(jdPlantBeanShareArr || []), ...(newShareCodes || [])]
} else {
$.newShareCode = newShareCodes
}
for (let plantUuid of $.newShareCode) {
console.log(`${$.UserName}开始助力: ${plantUuid}`);
if (!plantUuid) continue; if (!plantUuid) continue;
if (plantUuid === $.myPlantUuid) { if (plantUuid === $.myPlantUuid) {
console.log(`\n跳过自己的plantUuid\n`) console.log(`\n跳过自己的plantUuid\n`)
@ -429,7 +433,7 @@ async function doHelp() {
await helpShare(plantUuid); await helpShare(plantUuid);
if ($.helpResult && $.helpResult.code === '0') { if ($.helpResult && $.helpResult.code === '0') {
// console.log(`助力好友结果: ${JSON.stringify($.helpResult.data.helpShareRes)}`); // console.log(`助力好友结果: ${JSON.stringify($.helpResult.data.helpShareRes)}`);
if ($.helpResult.data?.helpShareRes) { if ($.helpResult.data.helpShareRes) {
if ($.helpResult.data.helpShareRes.state === '1') { if ($.helpResult.data.helpShareRes.state === '1') {
console.log(`助力好友${plantUuid}成功`) console.log(`助力好友${plantUuid}成功`)
console.log(`${$.helpResult.data.helpShareRes.promptText}\n`); console.log(`${$.helpResult.data.helpShareRes.promptText}\n`);
@ -447,7 +451,6 @@ async function doHelp() {
} else { } else {
console.log(`助力好友失败: ${JSON.stringify($.helpResult)}`); console.log(`助力好友失败: ${JSON.stringify($.helpResult)}`);
} }
await $.wait(2000)
} }
} }
function showMsg() { function showMsg() {
@ -459,102 +462,6 @@ function showMsg() {
} }
// ================================================此处是API================================= // ================================================此处是API=================================
//每轮种豆活动获取结束后,自动收取京豆 //每轮种豆活动获取结束后,自动收取京豆
async function farmtask(){
await receivefruit();
await $.wait(500);
await dofarm('gotConfigDataForBrand');
await $.wait(500);
await dofarm('initForFarm');
await $.wait(500);
await dofarm('taskInitForFarm');
await $.wait(500);
await dofarm('farmMarkStatus');
await $.wait(500);
await dofarm('initForFarm');
await $.wait(500);
}
async function receivefruit(){
const body = {
"monitor_refer": "plant_receiveNutrientsTask",
"monitor_source": "plant_app_plant_index",
"awardType": "92",
"version": "9.2.4.1"
}
await request('receiveNutrientsTask',body)
}
async function dofarm(function_id){
let body ={
"version": 17,
"channel": 1,
"babelChannel": "45"
}
if (function_id == 'gotConfigDataForBrand'){
body["type"] = "json";
body["k"] = "farmShareConfig";
}
return new Promise(async resolve => {
const option = {
url: `${JD_API_HOST}?functionId=${function_id}&body=${encodeURIComponent(JSON.stringify(body))}&appid=wh5`,
headers: {
'Cookie': cookie,
'Host': 'api.m.jd.com',
'Accept': '*/*',
'Connection': 'keep-alive',
'User-Agent': 'JD4iPhone/167283 (iPhone;iOS 13.6.1;Scale/3.00)',
'Accept-Encoding': 'gzip, deflate, br',
'Referer': 'https://h5.m.jd.com'
},
timeout: 20000,
};
$.get(option, (err, resp, data) => {
try {
if (err) {
console.log('\n API查询请求失败 ‼️‼️')
$.logErr(err);
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
})
})
}
function jxdoublesign1(url){
let opt = {
url,
headers: {
//'Host': 'wq.jd.com',
'accept':'application/json',
'referer': 'https://st.jingxi.com/',
'User-Agent': 'jdpingou;iPhone;4.13.0;14.4.2;${randomString(40)};network/wifi;model/iPhone10,2;appBuild/100609;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/1;hasOCPay/0;supportBestPay/0;session/${Math.random * 98 + 1};pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148',
'Cookie': 'cid=4;'+cookie
}
}
return new Promise(async resolve => {
$.get(opt, (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
if (data) {
//data = JSON.parse(data);
//console.log(data)
}
}
} catch (e) {
$.logErr(e, resp)
} finally {
resolve(data);
}
})
resolve()
})
}
async function getReward() { async function getReward() {
const body = { const body = {
"roundId": lastRoundId "roundId": lastRoundId
@ -591,7 +498,7 @@ async function collectUserNutr(paradiseUuid) {
$.stealFriendRes = await request(functionId, body); $.stealFriendRes = await request(functionId, body);
} }
async function receiveNutrients() { async function receiveNutrients() {
$.receiveNutrientsRes = await request('receiveNutrients', {"roundId": currentRoundId, "monitor_refer": "plant_receiveNutrients"}) $.receiveNutrientsRes = await request('receiveNutrients', { "roundId": currentRoundId, "monitor_refer": "plant_receiveNutrients" })
// console.log(`定时领取营养液结果:${JSON.stringify($.receiveNutrientsRes)}`) // console.log(`定时领取营养液结果:${JSON.stringify($.receiveNutrientsRes)}`)
} }
async function plantEggDoLottery() { async function plantEggDoLottery() {
@ -603,7 +510,7 @@ async function egg() {
} }
async function productTaskList() { async function productTaskList() {
let functionId = arguments.callee.name.toString(); let functionId = arguments.callee.name.toString();
$.productTaskList = await requestGet(functionId, {"monitor_refer": "plant_productTaskList"}); $.productTaskList = await requestGet(functionId, { "monitor_refer": "plant_productTaskList" });
} }
async function plantChannelTaskList() { async function plantChannelTaskList() {
let functionId = arguments.callee.name.toString(); let functionId = arguments.callee.name.toString();
@ -612,7 +519,7 @@ async function plantChannelTaskList() {
} }
async function shopTaskList() { async function shopTaskList() {
let functionId = arguments.callee.name.toString(); let functionId = arguments.callee.name.toString();
$.shopTaskListRes = await requestGet(functionId, {"monitor_refer": "plant_receiveNutrients"}); $.shopTaskListRes = await requestGet(functionId, { "monitor_refer": "plant_receiveNutrients" });
// console.log('$.shopTaskListRes', $.shopTaskListRes) // console.log('$.shopTaskListRes', $.shopTaskListRes)
} }
async function receiveNutrientsTask(awardType) { async function receiveNutrientsTask(awardType) {
@ -624,7 +531,7 @@ async function receiveNutrientsTask(awardType) {
$.receiveNutrientsTaskRes = await requestGet(functionId, body); $.receiveNutrientsTaskRes = await requestGet(functionId, body);
} }
async function plantShareSupportList() { async function plantShareSupportList() {
$.shareSupportList = await requestGet('plantShareSupportList', {"roundId": ""}); $.shareSupportList = await requestGet('plantShareSupportList', { "roundId": "" });
if ($.shareSupportList && $.shareSupportList.code === '0') { if ($.shareSupportList && $.shareSupportList.code === '0') {
const { data } = $.shareSupportList; const { data } = $.shareSupportList;
//当日北京时间0点时间戳 //当日北京时间0点时间戳
@ -657,16 +564,17 @@ async function helpShare(plantUuid) {
async function plantBeanIndex() { async function plantBeanIndex() {
$.plantBeanIndexResult = await request('plantBeanIndex');//plantBeanIndexBody $.plantBeanIndexResult = await request('plantBeanIndex');//plantBeanIndexBody
} }
function readShareCode() { function readShareCode(code) {
console.log(`当前使用助力池${JD_ZLC_URL}`)
return new Promise(async resolve => { return new Promise(async resolve => {
$.get({url: `https://cdn.jsdelivr.net/gh/6dylan6/updateTeam@main/shareCodes/plant_bean.json`, timeout: 20000}, (err, resp, data) => { $.get({ url: JD_ZLC_URL +`/bean?code=`+code, timeout: 10000}, (err, resp, data) => {
try { try {
if (err) { if (err) {
//console.log(`${JSON.stringify(err)}`) console.log(`${JSON.stringify(err)}`)
//console.log(`${$.name} API请求失败请检查网路重试`) console.log(`${$.name} API请求失败请检查网路重试`)
} else { } else {
if (data) { if (data) {
//console.log(`随机取码放到您固定的互助码后面(不影响已有固定互助)`) console.log(`随机取${randomCount}码放到您固定的互助码后面(不影响已有固定互助)`)
data = JSON.parse(data); data = JSON.parse(data);
} }
} }
@ -683,19 +591,24 @@ function readShareCode() {
//格式化助力码 //格式化助力码
function shareCodesFormat() { function shareCodesFormat() {
return new Promise(async resolve => { return new Promise(async resolve => {
// console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) console.log(`${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`)
newShareCodes = []; newShareCodes = [];
if ($.shareCodesArr[$.index - 1]) { if ($.shareCodesArr[$.index - 1]) {
newShareCodes = $.shareCodesArr[$.index - 1].split('@'); newShareCodes = $.shareCodesArr[$.index - 1].split('@');
} else { } else {
console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) // console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`)
const tempIndex = $.index > shareCodes.length ? (shareCodes.length - 1) : ($.index - 1); const tempIndex = $.index > shareCodes.length ? (shareCodes.length - 1) : ($.index - 1);
newShareCodes = shareCodes[tempIndex].split('@'); newShareCodes = shareCodes[tempIndex].split('@');
} }
const readShareCodeRes = await readShareCode(); if (!ZLC) {
if (readShareCodeRes && readShareCodeRes.code === 200) { console.log(`您设置了不加入助力池,跳过\n`)
newShareCodes = [...new Set([...newShareCodes, ...(readShareCodeRes.data || [])])]; } else {
}
const readShareCodeRes = await readShareCode(jdPlantBeanShareArr[$.index - 1]);
if (readShareCodeRes && readShareCodeRes.code === 200) {
newShareCodes = [...new Set([...newShareCodes, ...(readShareCodeRes.data || [])])];
}
}
console.log(`${$.index}个京东账号将要助力的好友${JSON.stringify(newShareCodes)}`) console.log(`${$.index}个京东账号将要助力的好友${JSON.stringify(newShareCodes)}`)
resolve(); resolve();
}) })
@ -714,7 +627,7 @@ function requireConfig() {
cookiesArr.push(jdCookieNode[item]) cookiesArr.push(jdCookieNode[item])
} }
}) })
if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { };
} else { } else {
cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item);
} }
@ -755,7 +668,7 @@ function requestGet(function_id, body = {}) {
'Accept-Encoding': 'gzip, deflate, br', 'Accept-Encoding': 'gzip, deflate, br',
'Content-Type': "application/x-www-form-urlencoded" 'Content-Type': "application/x-www-form-urlencoded"
}, },
timeout: 20000, timeout: 10000,
}; };
$.get(option, (err, resp, data) => { $.get(option, (err, resp, data) => {
try { try {
@ -787,7 +700,7 @@ function TotalBean() {
"Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2",
"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") "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")
}, },
"timeout": 20000, "timeout": 10000,
} }
$.post(options, (err, resp, data) => { $.post(options, (err, resp, data) => {
try { try {
@ -818,20 +731,17 @@ function TotalBean() {
}) })
}) })
} }
function request(function_id, body = {}){ function request(function_id, body = {}) {
return new Promise(async resolve => { return new Promise(async resolve => {
await $.wait(5000); await $.wait(2000);
$.post(taskUrl(function_id, body), (err, resp, data) => { $.post(taskUrl(function_id, body), (err, resp, data) => {
try { try {
if (err) { if (err) {
console.log('\n种豆得豆: API查询请求失败 ‼️‼️') console.log('\n种豆得豆: API查询请求失败 ‼️‼️')
console.log(`function_id:${function_id}`) console.log(`function_id:${function_id}`)
$.logErr(err); $.logErr(err);
} else if (data.indexOf('data') > -1){
data = JSON.parse(data);
} else { } else {
data = JSON.parse(data); data = JSON.parse(data);
console.log(data.errorMessage)
} }
} catch (e) { } catch (e) {
$.logErr(e, resp); $.logErr(e, resp);
@ -842,7 +752,7 @@ function request(function_id, body = {}){
}) })
} }
function taskUrl(function_id, body) { function taskUrl(function_id, body) {
body["version"] = "9.2.4.1"; body["version"] = "9.2.4.0";
body["monitor_source"] = "plant_app_plant_index"; body["monitor_source"] = "plant_app_plant_index";
body["monitor_refer"] = ""; body["monitor_refer"] = "";
return { return {
@ -858,7 +768,7 @@ function taskUrl(function_id, body) {
"Accept-Encoding": "gzip, deflate, br", "Accept-Encoding": "gzip, deflate, br",
"Content-Type": "application/x-www-form-urlencoded" "Content-Type": "application/x-www-form-urlencoded"
}, },
timeout: 20000, timeout: 10000,
} }
} }
function getParam(url, name) { function getParam(url, name) {

80
jd_sgmh.js Normal file → Executable file
View File

@ -4,33 +4,37 @@
修改自 @yangtingxiao 抽奖机脚本 修改自 @yangtingxiao 抽奖机脚本
活动入口京东APP首页-闪购-闪购盲盒 活动入口京东APP首页-闪购-闪购盲盒
网页地址https://h5.m.jd.com/babelDiy/Zeus/3vzA7uGuWL2QeJ5UeecbbAVKXftQ/index.html 网页地址https://h5.m.jd.com/babelDiy/Zeus/3vzA7uGuWL2QeJ5UeecbbAVKXftQ/index.html
更新地址https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_sgmh.js 更新地址https://gitee.com/lxk0301/jd_scripts/raw/master/jd_sgmh.js
已支持IOS双京东账号, Node.js支持N个京东账号 已支持IOS双京东账号, Node.js支持N个京东账号
脚本兼容: QuantumultX, Surge, Loon, 小火箭JSBox, Node.js 脚本兼容: QuantumultX, Surge, Loon, 小火箭JSBox, Node.js
============Quantumultx=============== ============Quantumultx===============
[task_local] [task_local]
#闪购盲盒 #闪购盲盒
20 8 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_sgmh.js, tag=闪购盲盒, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true 20 8 * * * https://gitee.com/lxk0301/jd_scripts/raw/master/jd_sgmh.js, tag=闪购盲盒, img-url=https://raw.githubusercontent.com/Orz-3/task/master/jd.png, enabled=true
================Loon============== ================Loon==============
[Script] [Script]
cron "20 8 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_sgmh.js, tag=闪购盲盒 cron "20 8 * * *" script-path=https://gitee.com/lxk0301/jd_scripts/raw/master/jd_sgmh.js, tag=闪购盲盒
===============Surge================= ===============Surge=================
闪购盲盒 = type=cron,cronexp="20 8 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_sgmh.js 闪购盲盒 = type=cron,cronexp="20 8 * * *",wake-system=1,timeout=3600,script-path=https://gitee.com/lxk0301/jd_scripts/raw/master/jd_sgmh.js
============小火箭========= ============小火箭=========
闪购盲盒 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_sgmh.js, cronexpr="20 8 * * *", timeout=3600, enable=true 闪购盲盒 = type=cron,script-path=https://gitee.com/lxk0301/jd_scripts/raw/master/jd_sgmh.js, cronexpr="20 8 * * *", timeout=3600, enable=true
*/ */
const $ = new Env('闪购盲盒'); const $ = new Env('闪购盲盒');
//Node.js用户请在jdCookie.js处填写京东ck; //Node.js用户请在jdCookie.js处填写京东ck;
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
let appId = '1EFRXxg' , homeDataFunPrefix = 'interact_template', collectScoreFunPrefix = 'harmony', message = '' let appId = '1EFRXxg' , homeDataFunPrefix = 'interact_template', collectScoreFunPrefix = 'harmony', message = ''
let lotteryResultFunPrefix = homeDataFunPrefix, browseTime = 6 let lotteryResultFunPrefix = homeDataFunPrefix, browseTime = 6
const inviteCodes = [ const inviteCodes = ['T0225KkcRUxL9FKDJh7ylvMLcACjVWmIaW5kRrbA','T0225KkcRx0Q_AaCdRr1xf8DIQCjVWmIaW5kRrbA','T0225KkcRksZpgDSIBj3xvADdQCjVWmIaW5kRrbA','T018v_52Qxge81HeJB2b1ACjVWmIaW5kRrbA','T0205KkcPFd_vD2uSkCi3YhXCjVWmIaW5kRrbA','T018v_hzQhwZ8FbUIRib1ACjVQmoaT5kRrbA'].sort(() => 0.5 - Math.random()).splice(0,3)
'', const ZLC = !(process.env.JD_JOIN_ZLC && process.env.JD_JOIN_ZLC === 'false')
'', const JD_ZLC_URL=process.env.JD_ZLC_URL?process.env.JD_ZLC_URL:"http://zlc1.chaoyi996.com:8880";
];
const randomCount = $.isNode() ? 20 : 5; const randomCount = $.isNode() ? 20 : 5;
const notify = $.isNode() ? require('./sendNotify') : ''; const notify = $.isNode() ? require('./sendNotify') : '';
let merge = {} let merge = {}
let self_code = []
//IOS等用户直接用NobyDa的jd cookie //IOS等用户直接用NobyDa的jd cookie
let cookiesArr = [], cookie = ''; let cookiesArr = [], cookie = '';
if ($.isNode()) { if ($.isNode()) {
@ -41,12 +45,16 @@ if ($.isNode()) {
} else { } else {
cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item);
} }
const JD_API_HOST = `https://api.m.jd.com/client.action`; const JD_API_HOST = `https://api.m.jd.com/client.action`;
!(async () => { !(async () => {
if (!cookiesArr[0]) { if (!cookiesArr[0]) {
$.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', {"open-url": "https://bean.m.jd.com/"}); $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { "open-url": "https://bean.m.jd.com/" });
return; return;
} }
if (!process.env.JD_JOIN_ZLC) {
console.log(`【注意】本脚本默认会给助力池进行助力!\n如需加入助力池请添加TG群https://t.me/jd_zero_205\n如不加入助力池互助可添加变量名称JD_JOIN_ZLC变量值false\n`)
}
await requireConfig(); await requireConfig();
for (let i = 0; i < cookiesArr.length; i++) { for (let i = 0; i < cookiesArr.length; i++) {
cookie = cookiesArr[i]; cookie = cookiesArr[i];
@ -61,7 +69,7 @@ const JD_API_HOST = `https://api.m.jd.com/client.action`;
await shareCodesFormat(); await shareCodesFormat();
console.log(`\n******开始【京东账号${$.index}${$.nickName || $.UserName}*********\n`); console.log(`\n******开始【京东账号${$.index}${$.nickName || $.UserName}*********\n`);
if (!$.isLogin) { 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"}); $.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()) { if ($.isNode()) {
await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`);
@ -69,7 +77,14 @@ const JD_API_HOST = `https://api.m.jd.com/client.action`;
continue continue
} }
await interact_template_getHomeData() await interact_template_getHomeData()
await showMsg(); // await showMsg();
// console.log(`📦闪购盲盒-开始提交互助码!📦`);
// const submitCodeRes = await submitCode();
// if (submitCodeRes && submitCodeRes.code === 200) {
// console.log(`📦闪购盲盒-互助码提交成功!📦`);
// } else if (submitCodeRes.code === 300) {
// console.log(`📦闪购盲盒-互助码已提交!📦`);
// }
} }
} }
})() })()
@ -93,11 +108,14 @@ function interact_template_getHomeData(timeout = 0) {
}, },
body : `functionId=${homeDataFunPrefix}_getHomeData&body={"appId":"${appId}","taskToken":""}&client=wh5&clientVersion=1.0.0` body : `functionId=${homeDataFunPrefix}_getHomeData&body={"appId":"${appId}","taskToken":""}&client=wh5&clientVersion=1.0.0`
} }
$.post(url, async (err, resp, data) => { $.post(url, async (err, resp, data) => {
try { try {
data = JSON.parse(data); data = JSON.parse(data);
if (data.data.bizCode !== 0) { if (data.data.bizCode !== 0) {
console.log(data.data.bizMsg); console.log(data.data.bizMsg);
// merge.jdBeans.fail++;
// merge.jdBeans.notify = `${data.data.bizMsg}`;
return return
} }
scorePerLottery = data.data.result.userInfo.scorePerLottery||data.data.result.userInfo.lotteryMinusScore scorePerLottery = data.data.result.userInfo.scorePerLottery||data.data.result.userInfo.lotteryMinusScore
@ -108,10 +126,12 @@ function interact_template_getHomeData(timeout = 0) {
//签到 //签到
if (data.data.result.taskVos[i].taskName === '邀请好友助力') { if (data.data.result.taskVos[i].taskName === '邀请好友助力') {
console.log(`\n【京东账号${$.index}${$.UserName})的${$.name}好友互助码】${data.data.result.taskVos[i].assistTaskDetailVo.taskToken}\n`); console.log(`\n【京东账号${$.index}${$.UserName})的${$.name}好友互助码】${data.data.result.taskVos[i].assistTaskDetailVo.taskToken}\n`);
self_code.push(data.data.result.taskVos[i].assistTaskDetailVo.taskToken)
for (let code of $.newShareCodes) { for (let code of $.newShareCodes) {
if (!code) continue if (!code) continue
await harmony_collectScore(code, data.data.result.taskVos[i].taskId); const c = await harmony_collectScore(code, data.data.result.taskVos[i].taskId);
await $.wait(2000) await $.wait(2000)
if (c === 108) break
} }
} }
else if (data.data.result.taskVos[i].status === 3) { else if (data.data.result.taskVos[i].status === 3) {
@ -184,16 +204,18 @@ function harmony_collectScore(taskToken,taskId,itemId = "",actionType = 0,timeou
//if (appId === "1EFRTxQ") url.body += "&appid=golden-egg" //if (appId === "1EFRTxQ") url.body += "&appid=golden-egg"
$.post(url, async (err, resp, data) => { $.post(url, async (err, resp, data) => {
try { try {
data = JSON.parse(data); data = JSON.parse(data);
if (data.data.bizMsg === "任务领取成功") { if (data.data.bizMsg === "任务领取成功") {
await harmony_collectScore(taskToken,taskId,itemId,0,parseInt(browseTime) * 1000); await harmony_collectScore(taskToken,taskId,itemId,0,parseInt(browseTime) * 1000);
} else{ } else{
console.log(data.data.bizMsg) console.log(data.data.bizMsg)
} }
data = data.data.bizCode
} catch (e) { } catch (e) {
$.logErr(e, resp); $.logErr(e, resp);
} finally { } finally {
resolve() resolve(data)
} }
}) })
},timeout) },timeout)
@ -274,6 +296,9 @@ function requireConfig() {
$.shareCodesArr.push(shareCodes[item]) $.shareCodesArr.push(shareCodes[item])
} }
}) })
} else {
if ($.getdata('JDSGMH_SHARECODES')) $.shareCodesArr = $.getdata('JDSGMH_SHARECODES').split('\n').filter(item => !!item);
console.log(`\nBoxJs设置的闪购盲盒邀请码:${$.getdata('JDSGMH_SHARECODES')}\n`);
} }
console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}助力码\n`); console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}助力码\n`);
resolve() resolve()
@ -286,16 +311,17 @@ function shareCodesFormat() {
// console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`)
$.newShareCodes = []; $.newShareCodes = [];
if ($.shareCodesArr[$.index - 1]) { if ($.shareCodesArr[$.index - 1]) {
console.log('检测到助力码环境变量,在前')
$.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); $.newShareCodes = $.shareCodesArr[$.index - 1].split('@');
} else {
console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`)
const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1);
$.newShareCodes = inviteCodes[tempIndex].split('@');
} }
const readShareCodeRes = await readShareCode(); $.newShareCodes = [...new Set([...$.newShareCodes, ...self_code,...inviteCodes])]
// console.log(readShareCodeRes) if (!ZLC) {
if (readShareCodeRes && readShareCodeRes.code === 200) { console.log(`您设置了不加入助力池,跳过\n`)
$.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]; } else {
const readShareCodeRes = await readShareCode();
if (readShareCodeRes && readShareCodeRes.code === 200) {
$.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]
}
} }
console.log(`${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) console.log(`${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`)
resolve(); resolve();
@ -303,12 +329,15 @@ function shareCodesFormat() {
} }
function readShareCode() { function readShareCode() {
console.log(`开始`) console.log(`当前使用助力池${JD_ZLC_URL}`);
return new Promise(async resolve => { return new Promise(async resolve => {
$.get({url: ``, timeout: 10000}, (err, resp, data) => { $.get({
url: `${JD_ZLC_URL}/sgmh`,
'timeout': 10000
}, (err, resp, data) => {
try { try {
if (err) { if (err) {
console.log(JSON.stringify(err)) console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`) console.log(`${$.name} API请求失败请检查网路重试`)
} else { } else {
if (data) { if (data) {
@ -326,6 +355,7 @@ function readShareCode() {
resolve() resolve()
}) })
} }
function TotalBean() { function TotalBean() {
return new Promise(async resolve => { return new Promise(async resolve => {
const options = { const options = {