助力池脚本更新

This commit is contained in:
Faker 2022-07-21 15:16:52 +08:00
parent 6875f659a9
commit da83b79b2d
2 changed files with 785 additions and 746 deletions

19
jd_fruit.js Executable file → Normal file
View File

@ -23,6 +23,8 @@ cron "5 6-18/6 * * *" script-path=https://gitee.com/lxk0301/jd_scripts/raw/maste
东东农场 = type=cron,script-path=https://gitee.com/lxk0301/jd_scripts/raw/master/jd_fruit.js, cronexpr="5 6-18/6 * * *", timeout=3600, enable=true
jd免费水果 搬的https://github.com/liuxiaoyucc/jd-helper/blob/a6f275d9785748014fc6cca821e58427162e9336/fruit/fruit.js
export DO_TEN_WATER_AGAIN = "" 默认再次浇水
*/
const $ = new Env('东东农场互助版');
let cookiesArr = [], cookie = '', isBox = false, notify, allMessage = '';
@ -46,18 +48,6 @@ const JD_API_HOST = 'https://api.m.jd.com/client.action';
const urlSchema = `openjd://virtual?params=%7B%20%22category%22:%20%22jump%22,%20%22des%22:%20%22m%22,%20%22url%22:%20%22https://h5.m.jd.com/babelDiy/Zeus/3KSjXqQabiTuD1cJ28QskrpWoBKT/index.html%22%20%7D`;
let llhelp = true;
const fs = require('fs');
let strShare = './Fruit_ShareCache.json';
let Fileexists = fs.existsSync(strShare);
let TempShareCache = [];
if (Fileexists) {
console.log("检测到东东农场缓存文件Fruit_ShareCache.json载入...");
TempShareCache = fs.readFileSync(strShare, 'utf-8');
if (TempShareCache) {
TempShareCache = TempShareCache.toString();
TempShareCache = JSON.parse(TempShareCache);
}
}
let WP_APP_TOKEN_ONE = "";
/* if ($.isNode()) {
@ -202,7 +192,12 @@ async function jdFruit() {
await getTenWaterAward();//领取10浇水奖励
await getWaterFriendGotAward();//领取为2好友浇水奖励
await duck();
if (!process.env.DO_TEN_WATER_AGAIN) {
console.log('执行再次浇水')
await doTenWaterAgain(); //再次浇水
} else {
console.log('不执行再次浇水,攒水滴')
}
await predictionFruit();//预测水果成熟时间
} else {
console.log(`初始化农场数据异常, 请登录京东 app查看农场功能是否正常`);

202
jd_plantBean.js Executable file → Normal file
View File

@ -1,6 +1,6 @@
/*
种豆得豆 脚本更新地址https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_plantBean.js
更新时间2021-08-20
更新时间2022-03-19
活动入口京东APP我的-更多工具-种豆得豆
已支持IOS京东多账号,云端多京东账号
脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js
@ -8,8 +8,6 @@
互助码shareCode请先手动运行脚本查看打印可看到
每个京东账号每天只能帮助3个人多出的助力码将会助力失败
// zero205已添加自己账号内部互助有剩余助力次数再帮我助力
=====================================Quantumult X=================================
[task_local]
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
@ -25,24 +23,19 @@ cron "1 7-21/2 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/syn
京东种豆得豆 = 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;
//ios等软件用户直接用NobyDa的jd cookie
let jdNotify = true;//是否开启静默运行。默认true开启
let cookiesArr = [], cookie = '', jdPlantBeanShareArr = [], isBox = false, notify, newShareCodes, option, message, subTitle;
//京东接口地址
const JD_API_HOST = 'https://api.m.jd.com/client.action';
const JD_ZLC_URL = process.env.JD_ZLC_URL ? process.env.JD_ZLC_URL : "http://zlc1.chaoyi996.com:8880";
//助力好友分享码(最多3个,否则后面的助力失败)
//此此内容是IOS用户下载脚本到本地使用填写互助码的地方同一京东账号的好友互助码请使用@符号隔开。
//下面给出两个账号的填写示例iOS只支持2个京东账号
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 shareCodes = []
let allMessage = ``;
let currentRoundId = null;//本期活动id
let lastRoundId = null;//上期id
@ -50,27 +43,36 @@ let roundList = [];
let awardState = '';//上期活动的京豆是否收取
let randomCount = $.isNode() ? 20 : 5;
let num;
let llerror = false;
let llerrorhuobao = false;
$.newShareCode = [];
let NowHour = new Date().getHours();
let llhelp = true;
!(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();
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;
}
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;
for (let k = 0; k < cookiesArr.length; k++) {
if (cookiesArr[k]) {
cookie = cookiesArr[k];
$.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]);
$.index = k + 1;
$.isLogin = true;
llerror = false;
llerrorhuobao = false;
$.nickName = '';
await TotalBean();
console.log(`\n开始【京东账号${$.index}${$.nickName || $.UserName}\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" });
$.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`);
@ -82,8 +84,14 @@ $.newShareCode = [];
option = {};
await jdPlantBean();
await showMsg();
if ($.isNode() && llerror && !llerrorhuobao) {
await notify.sendNotify(`${$.name}`, `京东账号${$.index} ${$.nickName || $.UserName}\n任务执行异常,请检查执行日志 ‼️‼️`);
}
}
}
if (llhelp) {
console.log(`开始账号内互助`);
for (let j = 0; j < cookiesArr.length; j++) {
if (cookiesArr[j]) {
cookie = cookiesArr[j];
@ -91,6 +99,8 @@ $.newShareCode = [];
$.index = j + 1;
await shareCodesFormat();
await doHelp()
await $.wait(60 * 1000);
}
}
}
if ($.isNode() && allMessage) {
@ -106,10 +116,7 @@ async function jdPlantBean() {
try {
console.log(`获取任务及基本信息`)
await plantBeanIndex();
if ($.plantBeanIndexResult.errorCode === 'PB101') {
console.log(`\n活动太火爆了,还是去买买买吧!\n`)
return
}
if (!llerror) {
for (let i = 0; i < $.plantBeanIndexResult.data.roundList.length; i++) {
if ($.plantBeanIndexResult.data.roundList[i].roundState === "2") {
num = i
@ -137,19 +144,28 @@ async function jdPlantBean() {
await stealFriendWater();
await doCultureBean();
await doGetReward();
await showTaskProcess();
await plantBeanIndex();
if (!llerror) {
$.taskList = $.plantBeanIndexResult.data.taskList;
if ($.taskList && $.taskList.length > 0) {
console.log(" 任务 进度");
for (let item of $.taskList) {
console.log(`[${item["taskName"]}] ${item["gainedNum"]}/${item["totalNum"]} ${item["isFinished"]}`);
}
}
}
await plantShareSupportList();
} else {
console.log(`种豆得豆-初始失败: ${JSON.stringify($.plantBeanIndexResult)}`);
}
}
} catch (e) {
$.logErr(e);
const errMsg = `京东账号${$.index} ${$.nickName || $.UserName}\n任务执行异常,请检查执行日志 ‼️‼️`;
// if ($.isNode()) await notify.sendNotify(`${$.name}`, errMsg);
if ($.isNode()) await notify.sendNotify(`${$.name}`, errMsg);
$.msg($.name, '', `${errMsg}`)
}
}
async function doGetReward() {
console.log(`【上轮京豆】${awardState === '4' ? '采摘中' : awardState === '5' ? '可收获了' : '已领取'}`);
if (awardState === '4') {
@ -182,11 +198,13 @@ async function doGetReward() {
}
async function doCultureBean() {
await plantBeanIndex();
if (!llerror) {
if ($.plantBeanIndexResult && $.plantBeanIndexResult.code === '0') {
const plantBeanRound = $.plantBeanIndexResult.data.roundList[num]
const plantBeanRound = $.plantBeanIndexResult.data.roundList[num];
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) {
console.log(`收取-${bubbleInfo.name}-的营养液`)
await cultureBean(plantBeanRound.roundId, bubbleInfo.nutrientsType)
@ -197,6 +215,7 @@ async function doCultureBean() {
console.log(`plantBeanIndexResult:${JSON.stringify($.plantBeanIndexResult)}`)
}
}
}
async function stealFriendWater() {
await stealFriendList();
if ($.stealFriendList && $.stealFriendList.code === '0') {
@ -282,16 +301,21 @@ async function doTask() {
const { data } = $.shopTaskListRes;
let goodShopListARR = [], moreShopListARR = [], shopList = [];
const { goodShopList, moreShopList } = data;
if (goodShopList) {
for (let i of goodShopList) {
if (i.taskState === '2') {
goodShopListARR.push(i);
}
}
}
if (moreShopList) {
for (let j of moreShopList) {
if (j.taskState === '2') {
moreShopListARR.push(j);
}
}
}
shopList = goodShopListARR.concat(moreShopListARR);
for (let shop of shopList) {
const { shopId, shopTaskId } = shop;
@ -402,27 +426,11 @@ async function doTask() {
}
}
}
function showTaskProcess() {
return new Promise(async resolve => {
await plantBeanIndex();
$.taskList = $.plantBeanIndexResult.data.taskList;
if ($.taskList && $.taskList.length > 0) {
console.log(" 任务 进度");
for (let item of $.taskList) {
console.log(`[${item["taskName"]}] ${item["gainedNum"]}/${item["totalNum"]} ${item["isFinished"]}`);
}
}
resolve()
})
}
//助力好友
async function doHelp() {
if ($.isNode() && !process.env.PLANT_BEAN_SHARECODES) {
console.log(`您未填写助力码变量开始账号内互助再帮【zero205】助力`);
$.newShareCode = [...(jdPlantBeanShareArr || []), ...(newShareCodes || [])]
} else {
$.newShareCode = newShareCodes
}
$.newShareCode = [...(jdPlantBeanShareArr || [])]
for (let plantUuid of $.newShareCode) {
console.log(`${$.UserName}开始助力: ${plantUuid}`);
if (!plantUuid) continue;
@ -431,7 +439,8 @@ async function doHelp() {
continue
}
await helpShare(plantUuid);
if ($.helpResult && $.helpResult.code === '0') {
console.log("========HELP=======");
if ($.helpResult && $.helpResult.code === '0' && !$.helpResult.errorCode) {
// console.log(`助力好友结果: ${JSON.stringify($.helpResult.data.helpShareRes)}`);
if ($.helpResult.data.helpShareRes) {
if ($.helpResult.data.helpShareRes.state === '1') {
@ -562,10 +571,70 @@ async function helpShare(plantUuid) {
console.log(`助力结果的code:${$.helpResult && $.helpResult.code}`);
}
async function plantBeanIndex() {
llerror = false;
llerrorhuobao = false;
$.plantBeanIndexResult = await request('plantBeanIndex'); //plantBeanIndexBody
if ($.plantBeanIndexResult.errorCode === 'PB101') {
console.log(`\n活动太火爆了,还是去买买买吧!\n`)
llerror = true;
llerrorhuobao = true;
return
}
if ($.plantBeanIndexResult.errorCode) {
console.log(`获取任务及基本信息出错10秒后重试\n`)
await $.wait(10000);
$.plantBeanIndexResult = await request('plantBeanIndex');
if ($.plantBeanIndexResult.errorCode === 'PB101') {
console.log(`\n活动太火爆了,还是去买买买吧!\n`)
llerror = true;
llerrorhuobao = true;
return
}
}
if ($.plantBeanIndexResult.errorCode) {
console.log(`获取任务及基本信息出错30秒后重试\n`)
await $.wait(30000);
$.plantBeanIndexResult = await request('plantBeanIndex');
if ($.plantBeanIndexResult.errorCode === 'PB101') {
console.log(`\n活动太火爆了,还是去买买买吧!\n`)
llerror = true;
llerrorhuobao = true;
return
}
}
if ($.plantBeanIndexResult.errorCode) {
console.log(`获取任务及基本信息失败,活动异常,换个时间再试试吧....`)
console.log("错误代码;" + $.plantBeanIndexResult.errorCode)
llerror = true;
return;
}
}
//格式化助力码
function shareCodesFormat() {
return new Promise(async resolve => {
console.log(`${$.index}个京东账号的助力码:${jdPlantBeanShareArr[$.index - 1]}`)
newShareCodes = [];
if (jdPlantBeanShareArr[$.index - 1]) {
newShareCodes = jdPlantBeanShareArr[$.index - 1].split('@');
} else {
// console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`)
const tempIndex = $.index > shareCodes.length ? (shareCodes.length - 1) : ($.index - 1);
newShareCodes = shareCodes[tempIndex].split('@');
}
const readShareCodeRes = await readShareCode(jdPlantBeanShareArr[$.index - 1]);
if (readShareCodeRes && readShareCodeRes.code === 200) {
newShareCodes = [...new Set([...newShareCodes, ...(readShareCodeRes.data || [])])];
}
console.log(`${$.index}个京东账号将要助力的好友${JSON.stringify(newShareCodes)}`)
resolve();
})
}
function readShareCode(code) {
console.log(`当前使用助力池${JD_ZLC_URL}`)
console.log(JD_ZLC_URL + `/bean?code=` + code)
return new Promise(async resolve => {
$.get({ url: JD_ZLC_URL + `/bean?code=` + code, timeout: 10000 }, (err, resp, data) => {
try {
@ -588,38 +657,13 @@ function readShareCode(code) {
resolve()
})
}
//格式化助力码
function shareCodesFormat() {
return new Promise(async resolve => {
console.log(`${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`)
newShareCodes = [];
if ($.shareCodesArr[$.index - 1]) {
newShareCodes = $.shareCodesArr[$.index - 1].split('@');
} else {
// console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`)
const tempIndex = $.index > shareCodes.length ? (shareCodes.length - 1) : ($.index - 1);
newShareCodes = shareCodes[tempIndex].split('@');
}
if (!ZLC) {
console.log(`您设置了不加入助力池,跳过\n`)
} 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)}`)
resolve();
})
}
function requireConfig() {
return new Promise(resolve => {
console.log('开始获取种豆得豆配置文件\n')
//console.log('开始获取种豆得豆配置文件\n')
notify = $.isNode() ? require('./sendNotify') : '';
//Node.js用户请在jdCookie.js处填写京东ck;
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
const jdPlantBeanShareCodes = $.isNode() ? require('./jdPlantBeanShareCodes.js') : '';
const jdPlantBeanShareCodes = '';
//IOS等用户直接用NobyDa的jd cookie
if ($.isNode()) {
Object.keys(jdCookieNode).forEach((item) => {
@ -644,7 +688,7 @@ function requireConfig() {
console.log(`\nBoxJs设置的${$.name}好友邀请码:${$.getdata('jd_plantbean_inviter') ? $.getdata('jd_plantbean_inviter') : '暂无'}\n`);
}
// console.log(`\n种豆得豆助力码::${JSON.stringify($.shareCodesArr)}`);
console.log(`您提供了${$.shareCodesArr.length}个账号的种豆得豆助力码\n`);
//console.log(`您提供了${$.shareCodesArr.length}个账号的种豆得豆助力码\n`);
resolve()
})
}
@ -752,7 +796,7 @@ function request(function_id, body = {}) {
})
}
function taskUrl(function_id, body) {
body["version"] = "9.2.4.0";
body["version"] = "9.2.4.1";
body["monitor_source"] = "plant_app_plant_index";
body["monitor_refer"] = "";
return {