This commit is contained in:
dylan 2023-06-14 21:33:02 +08:00
parent c020f24112
commit 979e275b25
3 changed files with 77 additions and 89 deletions

View File

@ -1,7 +1,7 @@
/* /*
东东农场助力 东东农场助力
20 2,5 * * * jd_farm_help.js 20 2,6 * * * jd_farm_help.js
updatetime:2022/12/22 updatetime:2023/6/14
dlan dlan
变量 变量
epxort FRUIT_DELAY = '1000',设置等待时间(毫秒)默认请求5次接口等待60秒60000 epxort FRUIT_DELAY = '1000',设置等待时间(毫秒)默认请求5次接口等待60秒60000
@ -15,15 +15,16 @@ let shareCodes = [ // 这个列表填入你要助力的好友的shareCode
'' ''
] ]
let message = '', subTitle = '', fulled=[], option = {}, isFruitFinished = false; let message = '', subTitle = '', fulled = [], option = {}, isFruitFinished = false;
const retainWater = 100;//保留水滴大于多少g,默认100g; const retainWater = 100;//保留水滴大于多少g,默认100g;
let jdNotify = false;//是否关闭通知false打开通知推送true关闭通知推送 let jdNotify = false;//是否关闭通知false打开通知推送true关闭通知推送
let jdFruitBeanCard = false;//农场使用水滴换豆卡(如果出现限时活动时100g水换20豆,此时比浇水划算,推荐换豆),true表示换豆(不浇水),false表示不换豆(继续浇水),脚本默认是浇水 let jdFruitBeanCard = false;//农场使用水滴换豆卡(如果出现限时活动时100g水换20豆,此时比浇水划算,推荐换豆),true表示换豆(不浇水),false表示不换豆(继续浇水),脚本默认是浇水
let randomCount = $.isNode() ? 20 : 5; let randomCount = $.isNode() ? 20 : 5;
const fs = require('fs');
const JD_API_HOST = 'https://api.m.jd.com/client.action'; const JD_API_HOST = 'https://api.m.jd.com/client.action';
const delay = process.env.FRUIT_DELAY||60000; const delay = process.env.FRUIT_DELAY || 60000;
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`; 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`;
$.reqnum=1; $.reqnum = 1;
!(async () => { !(async () => {
await requireConfig(); await requireConfig();
if (!cookiesArr[0]) { if (!cookiesArr[0]) {
@ -239,19 +240,19 @@ async function doTenWaterAgain() {
} }
if (process.env.FRUIT_FAST_CARD && totalEnergy > 100 && $.myCardInfoRes.fastCard > 0) { if (process.env.FRUIT_FAST_CARD && totalEnergy > 100 && $.myCardInfoRes.fastCard > 0) {
//使用快速浇水卡 //使用快速浇水卡
for (let i=0;i<new Array(fastCard).fill('').length;i++){ for (let i = 0; i < new Array(fastCard).fill('').length; i++) {
await userMyCardForFarm('fastCard'); await userMyCardForFarm('fastCard');
console.log(`使用快速浇水卡结果:${JSON.stringify($.userMyCardRes)}`); console.log(`使用快速浇水卡结果:${JSON.stringify($.userMyCardRes)}`);
if ($.userMyCardRes.code === '0') { if ($.userMyCardRes.code === '0') {
console.log(`已使用快速浇水卡浇水${$.userMyCardRes.waterEnergy}g`); console.log(`已使用快速浇水卡浇水${$.userMyCardRes.waterEnergy}g`);
} }
if ($.userMyCardRes.treeFinished){ if ($.userMyCardRes.treeFinished) {
break; break;
} }
await $.wait(500); await $.wait(500);
await initForFarm(); await initForFarm();
totalEnergy = $.farmInfo.farmUserPro.totalEnergy; totalEnergy = $.farmInfo.farmUserPro.totalEnergy;
} }
} }
// 所有的浇水(10次浇水)任务获取水滴任务完成后如果剩余水滴大于等于60g,则继续浇水(保留部分水滴是用于完成第二天的浇水10次的任务) // 所有的浇水(10次浇水)任务获取水滴任务完成后如果剩余水滴大于等于60g,则继续浇水(保留部分水滴是用于完成第二天的浇水10次的任务)
@ -351,26 +352,26 @@ function gotStageAward() {
//天天抽奖活动 //天天抽奖活动
async function turntableFarm() { async function turntableFarm() {
//天天抽奖助力 //天天抽奖助力
console.log('开始天天抽奖--好友助力--每人每天只有三次助力机会.') console.log('开始天天抽奖--好友助力--每人每天只有三次助力机会.')
for (let code of newShareCodes) { for (let code of newShareCodes) {
if (code === $.farmInfo.farmUserPro.shareCode) { if (code === $.farmInfo.farmUserPro.shareCode) {
console.log('天天抽奖-不能自己给自己助力\n') console.log('天天抽奖-不能自己给自己助力\n')
continue continue
}
await lotteryMasterHelp(code);
await $.wait(1000)
// console.log('天天抽奖助力结果',lotteryMasterHelpRes.helpResult)
if ($.lotteryMasterHelpRes.helpResult === undefined) break;
if ($.lotteryMasterHelpRes.helpResult.code === '0') {
console.log(`天天抽奖-助力${$.lotteryMasterHelpRes.helpResult.masterUserInfo.nickName}成功\n`)
} else if ($.lotteryMasterHelpRes.helpResult.code === '11') {
console.log(`天天抽奖-不要重复助力${$.lotteryMasterHelpRes.helpResult.masterUserInfo.nickName}\n`)
} else if ($.lotteryMasterHelpRes.helpResult.code === '13') {
console.log(`天天抽奖-助力${$.lotteryMasterHelpRes.helpResult.masterUserInfo.nickName}失败,助力次数耗尽\n`);
break;
}
} }
await lotteryMasterHelp(code);
await $.wait(1000)
// console.log('天天抽奖助力结果',lotteryMasterHelpRes.helpResult)
if ($.lotteryMasterHelpRes.helpResult === undefined) break;
if ($.lotteryMasterHelpRes.helpResult.code === '0') {
console.log(`天天抽奖-助力${$.lotteryMasterHelpRes.helpResult.masterUserInfo.nickName}成功\n`)
} else if ($.lotteryMasterHelpRes.helpResult.code === '11') {
console.log(`天天抽奖-不要重复助力${$.lotteryMasterHelpRes.helpResult.masterUserInfo.nickName}\n`)
} else if ($.lotteryMasterHelpRes.helpResult.code === '13') {
console.log(`天天抽奖-助力${$.lotteryMasterHelpRes.helpResult.masterUserInfo.nickName}失败,助力次数耗尽\n`);
break;
}
}
} }
//领取额外奖励水滴 //领取额外奖励水滴
async function getExtraAward() { async function getExtraAward() {
@ -732,7 +733,7 @@ async function receiveFriendInvite() {
console.log('自己不能邀请自己成为好友噢\n') console.log('自己不能邀请自己成为好友噢\n')
continue continue
} }
if (newShareCodes.findIndex(a=>a===code) >= 5) break; if (newShareCodes.findIndex(a => a === code) >= 5) break;
await inviteFriend(code); await inviteFriend(code);
// console.log(`接收邀请成为好友结果:${JSON.stringify($.inviteFriendRes)}`) // console.log(`接收邀请成为好友结果:${JSON.stringify($.inviteFriendRes)}`)
if ($.inviteFriendRes && $.inviteFriendRes.helpResult && $.inviteFriendRes.helpResult.code === '0') { if ($.inviteFriendRes && $.inviteFriendRes.helpResult && $.inviteFriendRes.helpResult.code === '0') {
@ -1133,13 +1134,20 @@ function shareCodesFormat() {
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(); // const readShareCodeRes = await readShareCode();
if (readShareCodeRes && readShareCodeRes.code === 200) { // if (readShareCodeRes && readShareCodeRes.code === 200) {
//newShareCodes = newShareCodes.concat(readShareCodeRes.data || []); // //newShareCodes = newShareCodes.concat(readShareCodeRes.data || []);
newShareCodes = [...new Set([...newShareCodes, ...(readShareCodeRes.data || [])])]; // newShareCodes = [...new Set([...newShareCodes, ...(readShareCodeRes.data || [])])];
} // }
newShareCodes = newShareCodes.filter(item => fulled.indexOf(item) == -1 && !!item); newShareCodes = newShareCodes.filter(item => fulled.indexOf(item) == -1 && !!item);
console.log(`${$.index}个京东账号将要助力的好友${JSON.stringify(newShareCodes)}`) let ex = fs.existsSync('./fruit_helpcode');
if (newShareCodes.length === 0 && ex) {
$.log(`使用本地缓存\n`);
newShareCodes = fs.readFileSync('./fruit_helpcode', 'utf-8');
newShareCodes = JSON.parse(newShareCodes);
}
console.log(`您提供了${newShareCodes.length}个农场助力码\n`);
console.log(`${$.index}个账号将要助力的好友${JSON.stringify(newShareCodes)}`);
resolve(); resolve();
}) })
} }
@ -1170,7 +1178,7 @@ function requireConfig() {
} 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);
} }
console.log(`${cookiesArr.length}个京东账号\n`) //console.log(`共${cookiesArr.length}个京东账号\n`)
$.shareCodesArr = []; $.shareCodesArr = [];
if ($.isNode()) { if ($.isNode()) {
Object.keys(shareCodes).forEach((item) => { Object.keys(shareCodes).forEach((item) => {
@ -1184,7 +1192,7 @@ function requireConfig() {
} }
// console.log(`$.shareCodesArr::${JSON.stringify($.shareCodesArr)}`) // console.log(`$.shareCodesArr::${JSON.stringify($.shareCodesArr)}`)
// console.log(`jdFruitShareArr账号长度::${$.shareCodesArr.length}`) // console.log(`jdFruitShareArr账号长度::${$.shareCodesArr.length}`)
console.log(`您提供了${$.shareCodesArr.length}个账号的农场助力码\n`); //console.log(`您提供了${$.shareCodesArr.length}个账号的农场助力码\n`);
resolve() resolve()
}) })
} }
@ -1218,7 +1226,7 @@ function TotalBean() {
}); });
} }
function request(function_id, body = {}, timeout = 1000) { function request(function_id, body = {}, timeout = 1000) {
if(process.env.FRUIT_DELAY && $.reqnum % 5 == 0 ) {console.log(`\n等待${delay/1000}秒......\n`);timeout=delay}; if (process.env.FRUIT_DELAY && $.reqnum % 5 == 0) { console.log(`\n等待${delay / 1000}秒......\n`); timeout = delay };
$.reqnum++; $.reqnum++;
return new Promise(resolve => { return new Promise(resolve => {
setTimeout(() => { setTimeout(() => {

View File

@ -7,14 +7,14 @@
==========================Quantumultx========================= ==========================Quantumultx=========================
[task_local] [task_local]
#jd免费水果 #jd免费水果
10 6-18/6 * * * jd_fruit.js, tag=东东农场, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jdnc.png, enabled=true 15 3,13,18 * * * jd_fruit.js, tag=东东农场, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jdnc.png, enabled=true
=========================Loon============================= =========================Loon=============================
[Script] [Script]
cron "10 6-18/6 * * *" script-path=jd_fruit.js,tag=东东农场 cron "15 3,13,18 * * *" script-path=jd_fruit.js,tag=东东农场
=========================Surge============================ =========================Surge============================
东东农场 = type=cron,cronexp="10 6-18/6 * * *",wake-system=1,timeout=3600,script-path=jd_fruit.js 东东农场 = type=cron,cronexp="15 3,13,18 * * *",wake-system=1,timeout=3600,script-path=jd_fruit.js
=========================小火箭=========================== =========================小火箭===========================
东东农场 = type=cron,script-path=jd_fruit.js, cronexpr="10 6-18/6 * * *", timeout=3600, enable=true 东东农场 = type=cron,script-path=jd_fruit.js, cronexpr="15 3,13,18 * * *", timeout=3600, enable=true
jd免费水果 搬的https://github.com/liuxiaoyucc/jd-helper/blob/a6f275d9785748014fc6cca821e58427162e9336/fruit/fruit.js jd免费水果 搬的https://github.com/liuxiaoyucc/jd-helper/blob/a6f275d9785748014fc6cca821e58427162e9336/fruit/fruit.js
变量 变量
export DO_TEN_WATER_AGAIN='true' 攒水滴只交10次水默认不攒水滴 export DO_TEN_WATER_AGAIN='true' 攒水滴只交10次水默认不攒水滴
@ -39,14 +39,17 @@ 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`; 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`;
const delay = process.env.FRUIT_DELAY || 60000; const delay = process.env.FRUIT_DELAY || 60000;
const ua = require('./USER_AGENTS'); const ua = require('./USER_AGENTS');
const fs = require('fs');
let cachecode = [];
$.reqnum = 1; $.reqnum = 1;
fs.existsSync('./fruit_helpcode') && (cachecode = JSON.parse(fs.readFileSync('./fruit_helpcode', 'utf8')));
!(async () => { !(async () => {
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;
} }
if (process.env.DO_TEN_WATER_AGAIN) { if (process.env.DO_TEN_WATER_AGAIN) {
allMessage = '【攒水滴模式已开启每天只浇水10次】\n\n'; allMessage = '【攒水滴模式已开启每天只浇水10次】\n\n';
} }
for (let i = 0; i < cookiesArr.length; i++) { for (let i = 0; i < cookiesArr.length; i++) {
@ -75,6 +78,7 @@ $.reqnum = 1;
await jdFruit(); await jdFruit();
} }
} }
fs.writeFile('./fruit_helpcode', JSON.stringify(cachecode), (e) => { e && console.log(e) });
if ($.isNode() && allMessage && $.ctrTemp) { if ($.isNode() && allMessage && $.ctrTemp) {
await notify.sendNotify(`${$.name}`, `${allMessage}`) await notify.sendNotify(`${$.name}`, `${allMessage}`)
} }
@ -89,10 +93,12 @@ async function jdFruit() {
subTitle = `【京东账号${$.index}🆔】${$.nickName || $.UserName}`; subTitle = `【京东账号${$.index}🆔】${$.nickName || $.UserName}`;
try { try {
await initForFarm(); await initForFarm();
if ($.farmInfo.farmUserPro) { if ($.farmInfo.farmUserPro) {
// option['media-url'] = $.farmInfo.farmUserPro.goodsImage; // option['media-url'] = $.farmInfo.farmUserPro.goodsImage;
message = `【水果名称】${$.farmInfo.farmUserPro.name}\n`; message = `【水果名称】${$.farmInfo.farmUserPro.name}\n`;
console.log(`\n【京东账号${$.index}${$.UserName})的${$.name}好友互助码】${$.farmInfo.farmUserPro.shareCode}\n`); console.log(`\n【京东账号${$.index}${$.UserName})的${$.name}好友互助码】${$.farmInfo.farmUserPro.shareCode}\n`);
!cachecode.includes($.farmInfo.farmUserPro.shareCode) && cachecode.push($.farmInfo.farmUserPro.shareCode);
console.log(`\n【已成功兑换水果】${$.farmInfo.farmUserPro.winTimes}\n`); console.log(`\n【已成功兑换水果】${$.farmInfo.farmUserPro.winTimes}\n`);
message += `【已兑换水果】${$.farmInfo.farmUserPro.winTimes}\n`; message += `【已兑换水果】${$.farmInfo.farmUserPro.winTimes}\n`;
//await masterHelpShare();//助力好友 //await masterHelpShare();//助力好友
@ -1264,7 +1270,7 @@ async function initForFarm() {
} else { } else {
if (safeGet(data)) { if (safeGet(data)) {
$.farmInfo = JSON.parse(data); $.farmInfo = JSON.parse(data);
if ($.farmInfo.code != 0){ if ($.farmInfo.code != 0) {
ct++; ct++;
await initForFarm(); await initForFarm();
@ -1285,11 +1291,11 @@ async function initForFarm() {
async function taskInitForFarm() { async function taskInitForFarm() {
console.log('\n初始化任务列表') console.log('\n初始化任务列表')
const functionId = arguments.callee.name.toString(); const functionId = arguments.callee.name.toString();
$.farmTask = await request(functionId, {"version":19,"channel":1,"babelChannel":"121","lat":"","lng":""}); $.farmTask = await request(functionId, { "version": 19, "channel": 1, "babelChannel": "121", "lat": "", "lng": "" });
} }
//获取好友列表API //获取好友列表API
async function friendListInitForFarm() { async function friendListInitForFarm() {
$.friendList = await request('friendListInitForFarm', {"version":19,"channel":1,"babelChannel":"121","lat":"","lng":""}); $.friendList = await request('friendListInitForFarm', { "version": 19, "channel": 1, "babelChannel": "121", "lat": "", "lng": "" });
// console.log('aa', aa); // console.log('aa', aa);
} }
// 领取邀请好友的奖励API // 领取邀请好友的奖励API
@ -1399,7 +1405,7 @@ function requireConfig() {
} 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);
} }
console.log(`${cookiesArr.length}个京东账号\n`) //console.log(`共${cookiesArr.length}个京东账号\n`)
$.shareCodesArr = []; $.shareCodesArr = [];
if ($.isNode()) { if ($.isNode()) {
Object.keys(shareCodes).forEach((item) => { Object.keys(shareCodes).forEach((item) => {

File diff suppressed because one or more lines are too long