东东工厂上线随机互助功能,secret/环境变量DDFACTORY_SHARECODES 规则和种豆农场等等一样
This commit is contained in:
31
jdFactoryShareCodes.js
Normal file
31
jdFactoryShareCodes.js
Normal file
@ -0,0 +1,31 @@
|
||||
/*
|
||||
京东种豆得豆互助码
|
||||
此文件为Node.js专用。其他用户请忽略
|
||||
支持京东N个账号
|
||||
*/
|
||||
//云服务器腾讯云函数等NOde.js用户在此处填写东东萌宠的好友码。
|
||||
// github action用户的好友互助码填写到Action->Settings->Secrets->new Secret里面(Name填写 PLANT_BEAN_SHARECODES(此处的Name必须按此来写,不能随意更改),内容处填写互助码,填写规则如下)
|
||||
// 同一个京东账号的好友互助码用@符号隔开,不同京东账号之间用&符号或者换行隔开,下面给一个示例
|
||||
// 如: 京东账号1的shareCode1@京东账号1的shareCode2&京东账号2的shareCode1@京东账号2的shareCode2
|
||||
let shareCodes = [
|
||||
'',//账号一的好友shareCode,不同好友中间用@符号隔开
|
||||
'',//账号二的好友shareCode,不同好友中间用@符号隔开
|
||||
]
|
||||
// 判断github action里面是否有东东萌宠互助码
|
||||
if (process.env.DDFACTORY_SHARECODES) {
|
||||
if (process.env.DDFACTORY_SHARECODES.indexOf('&') > -1) {
|
||||
console.log(`您的互助码选择的是用&隔开\n`)
|
||||
shareCodes = process.env.DDFACTORY_SHARECODES.split('&');
|
||||
} else if (process.env.DDFACTORY_SHARECODES.indexOf('\n') > -1) {
|
||||
console.log(`您的互助码选择的是用换行隔开\n`)
|
||||
shareCodes = process.env.DDFACTORY_SHARECODES.split('\n');
|
||||
} else {
|
||||
shareCodes = process.env.DDFACTORY_SHARECODES.split();
|
||||
}
|
||||
} else if (process.env.JD_COOKIE) {
|
||||
console.log(`由于您secret里面未提供助力码,故此处运行将会给脚本内置的码进行助力,请知晓!`)
|
||||
}
|
||||
for (let i = 0; i < shareCodes.length; i++) {
|
||||
const index = (i + 1 === 1) ? '' : (i + 1);
|
||||
exports['shareCodes' + index] = shareCodes[i];
|
||||
}
|
@ -34,6 +34,7 @@ const notify = $.isNode() ? require('./sendNotify') : '';
|
||||
//Node.js用户请在jdCookie.js处填写京东ck;
|
||||
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
|
||||
let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送
|
||||
const randomCount = $.isNode() ? 20 : 5;
|
||||
//IOS等用户直接用NobyDa的jd cookie
|
||||
let cookiesArr = [], cookie = '', message;
|
||||
if ($.isNode()) {
|
||||
@ -48,6 +49,7 @@ let wantProduct = ``;//心仪商品名称
|
||||
const JD_API_HOST = 'https://api.m.jd.com/client.action';
|
||||
const inviteCodes = [`P04z54XCjVWnYaS5u2ak7ZCdan1Bdd2GGiWvC6_uERj`, 'P04z54XCjVWnYaS5m9cZ2ariXVJwHf0bgkG7Uo'];
|
||||
!(async () => {
|
||||
await requireConfig();
|
||||
if (!cookiesArr[0]) {
|
||||
$.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', {"open-url": "https://bean.m.jd.com/"});
|
||||
return;
|
||||
@ -72,6 +74,7 @@ const inviteCodes = [`P04z54XCjVWnYaS5u2ak7ZCdan1Bdd2GGiWvC6_uERj`, 'P04z54XCjVW
|
||||
}
|
||||
continue
|
||||
}
|
||||
await shareCodesFormat();
|
||||
await jdFactory()
|
||||
}
|
||||
}
|
||||
@ -84,7 +87,7 @@ const inviteCodes = [`P04z54XCjVWnYaS5u2ak7ZCdan1Bdd2GGiWvC6_uERj`, 'P04z54XCjVW
|
||||
})
|
||||
async function jdFactory() {
|
||||
await jdfactory_getHomeData();
|
||||
await helpFriends(inviteCodes);
|
||||
await helpFriends();
|
||||
// $.newUser !==1 && $.haveProduct === 2,老用户但未选购商品
|
||||
// $.newUser === 1新用户
|
||||
if ($.newUser === 1) return
|
||||
@ -210,10 +213,14 @@ async function algorithm() {
|
||||
})
|
||||
})
|
||||
}
|
||||
async function helpFriends(inviteCodes) {
|
||||
for (let code of inviteCodes) {
|
||||
async function helpFriends() {
|
||||
for (let code of $.newShareCodes) {
|
||||
if (!code) continue
|
||||
await jdfactory_collectScore(code);
|
||||
const helpRes = await jdfactory_collectScore(code);
|
||||
if (helpRes.code === 0 && helpRes.data.bizCode === -7) {
|
||||
console.log(`助力机会已耗尽,跳出`);
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
async function doTask() {
|
||||
@ -335,7 +342,7 @@ function jdfactory_collectScore(taskToken) {
|
||||
} catch (e) {
|
||||
$.logErr(e, resp)
|
||||
} finally {
|
||||
resolve();
|
||||
resolve(data);
|
||||
}
|
||||
})
|
||||
})
|
||||
@ -531,6 +538,69 @@ function jdfactory_getHomeData() {
|
||||
})
|
||||
})
|
||||
}
|
||||
function readShareCode() {
|
||||
console.log(`开始`)
|
||||
return new Promise(async resolve => {
|
||||
$.get({url: `http://api.turinglabs.net/api/v1/jd/ddfactory/read/${randomCount}/`}, (err, resp, data) => {
|
||||
try {
|
||||
if (err) {
|
||||
console.log(`${JSON.stringify(err)}`)
|
||||
console.log(`${$.name} API请求失败,请检查网路重试`)
|
||||
} else {
|
||||
if (data) {
|
||||
console.log(`随机取个${randomCount}码放到您固定的互助码后面`)
|
||||
data = JSON.parse(data);
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
$.logErr(e, resp)
|
||||
} finally {
|
||||
resolve(data);
|
||||
}
|
||||
})
|
||||
// await $.wait(2000);
|
||||
// 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 > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1);
|
||||
$.newShareCodes = inviteCodes[tempIndex].split('@');
|
||||
}
|
||||
const readShareCodeRes = await readShareCode();
|
||||
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(`开始获取${$.name}配置文件\n`);
|
||||
//Node.js用户请在jdCookie.js处填写京东ck;
|
||||
const shareCodes = $.isNode() ? require('./jdFactoryShareCodes.js') : '';
|
||||
console.log(`共${cookiesArr.length}个京东账号\n`)
|
||||
if ($.isNode()) {
|
||||
$.shareCodesArr = [];
|
||||
Object.keys(shareCodes).forEach((item) => {
|
||||
if (shareCodes[item]) {
|
||||
$.shareCodesArr.push(shareCodes[item])
|
||||
}
|
||||
})
|
||||
}
|
||||
// console.log(`\n种豆得豆助力码::${JSON.stringify($.shareCodesArr)}`);
|
||||
console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}助力码\n`);
|
||||
resolve()
|
||||
})
|
||||
}
|
||||
function taskPostUrl(function_id, body = {}, function_id2) {
|
||||
let url = `${JD_API_HOST}`;
|
||||
if (function_id2) {
|
||||
|
Reference in New Issue
Block a user