东东工厂上线随机互助功能,secret/环境变量DDFACTORY_SHARECODES 规则和种豆农场等等一样
This commit is contained in:
@@ -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