更新于 08-01 11:04

This commit is contained in:
root
2021-08-01 11:04:55 -04:00
parent 344142a960
commit cfb981e2f2
47 changed files with 14007 additions and 7072 deletions

View File

@@ -21,20 +21,29 @@ cron "13 1,6,22 * * *" script-path=jd_health.js, tag=东东健康社区
东东健康社区 = type=cron,script-path=jd_health.js, cronexpr="13 1,6,22 * * *", timeout=3600, enable=true
*/
const $ = new Env("东东健康社区");
console.log('\n====================Hello World====================\n')
const jdCookieNode = $.isNode() ? require("./jdCookie.js") : "";
let cookiesArr = [],
cookie = "",
message;
const inviteCodes = ['']
const randomCount = $.isNode() ? 20 : 5;
const notify = $.isNode() ? require('./sendNotify') : "";
let cookiesArr = [], cookie = "", allMessage = "", message;
const inviteCodes = [
//`T0225KkcRUxL9FKDJh7ylvMLcACjVfnoaW5kRrbA@T0225KkcRx0Q_AaCdRr1xf8DIQCjVfnoaW5kRrbA@T018v_52Qxge81HeJB2b1ACjVfnoaW5kRrbA@T018v_hzQhwZ8FbUIRib1ACjVfnoaW5kRrbA`,
//`T018v_52Qxge81HeJB2b1ACjVfnoaW5kRrbA@T0205KkcPFd_vD2uSkCi3YhXCjVfnoaW5kRrbA@T018v_hzQhwZ8FbUIRib1ACjVfnoaW5kRrbA`,
]
let reward = process.env.JD_HEALTH_REWARD_NAME ? process.env.JD_HEALTH_REWARD_NAME : ''
const randomCount = $.isNode() ? 20 : 0;
function oc(fn, defaultVal) {//optioanl chaining
try {
return fn()
} catch (e) {
return undefined
}
}
function nc(val1, val2) {//nullish coalescing
return val1 ? val1 : val2
}
if ($.isNode()) {
Object.keys(jdCookieNode).forEach((item) => {
cookiesArr.push(jdCookieNode[item]);
});
console.log(`如果出现提示 ?.data. 错误请升级nodejs版本(进入容器后apk add nodejs-current)`)
if (process.env.JD_DEBUG && process.env.JD_DEBUG === "false") console.log = () => {};
} else {
cookiesArr = [
@@ -65,9 +74,12 @@ const JD_API_HOST = "https://api.m.jd.com/client.action";
console.log(`\n******开始【京东账号${$.index}${$.UserName}*********\n`);
await shareCodesFormat()
await main()
await showMsg()
// await showMsg()
}
}
if ($.isNode() && allMessage) {
await notify.sendNotify(`${$.name}`, `${allMessage}`)
}
})()
.catch((e) => {
$.log("", `${$.name}, 失败! 原因: ${e}!`, "");
@@ -80,19 +92,22 @@ async function main() {
try {
$.score = 0
$.earn = false
await getTaskDetail(-1)
await getTaskDetail(16)
// await getTaskDetail(-1)
// await getTaskDetail(16)
await getTaskDetail(6)
for(let i = 0 ; i < 5; ++i){
$.canDo = false
await getTaskDetail()
if(!$.canDo) break
await $.wait(1000)
}
await collectScore()
// for(let i = 0 ; i < 5; ++i){
// $.canDo = false
// await getTaskDetail()
// if(!$.canDo) break
// await $.wait(1000)
// }
// await collectScore()
await helpFriends()
await getTaskDetail(22);
await getTaskDetail(-1)
// await getTaskDetail(22);
// await getTaskDetail(-1)
if (reward) {
await getCommodities()
}
} catch (e) {
$.logErr(e)
}
@@ -103,7 +118,7 @@ async function helpFriends() {
if (!code) continue
console.log(`去助力好友${code}`)
let res = await doTask(code, 6)
if([108,-1001].includes(res?.data?.bizCode)){
if([108,-1001].includes(oc(() => res.data.bizCode))){
console.log(`助力次数已满,跳出`)
break
}
@@ -127,7 +142,7 @@ function getTaskDetail(taskId = '') {
if (safeGet(data)) {
data = $.toObj(data)
if (taskId === -1) {
let tmp = parseInt(parseFloat(data?.data?.result?.userScore ?? '0'))
let tmp = parseInt(nc(parseFloat(oc(() => data.data.result.userScore) , '0')))
if (!$.earn) {
$.score = tmp
$.earn = 1
@@ -136,35 +151,34 @@ function getTaskDetail(taskId = '') {
$.score = tmp
}
} else if (taskId === 6) {
if (data?.data?.result?.taskVos) {
console.log(`\n【京东账号${$.index}${$.UserName})的${$.name}好友互助码】${data?.data?.result?.taskVos[0].assistTaskDetailVo.taskToken}\n`);
var __encode ='jsjiami.com',_a={}, _0xb483=["\x5F\x64\x65\x63\x6F\x64\x65","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x73\x6F\x6A\x73\x6F\x6E\x2E\x63\x6F\x6D\x2F\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x6F\x62\x66\x75\x73\x63\x61\x74\x6F\x72\x2E\x68\x74\x6D\x6C"];(function(_0xd642x1){_0xd642x1[_0xb483[0]]= _0xb483[1]})(_a);var __Oxc21db=["\x68\x74\x74\x70\x3A\x2F\x2F\x61\x70\x69\x2E\x73\x68\x61\x72\x65\x63\x6F\x64\x65\x2E\x67\x61\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x3F\x64\x62\x3D\x68\x65\x61\x6C\x74\x68\x26\x63\x6F\x64\x65\x3D","\x74\x61\x73\x6B\x54\x6F\x6B\x65\x6E","\x61\x73\x73\x69\x73\x74\x54\x61\x73\x6B\x44\x65\x74\x61\x69\x6C\x56\x6F","\x74\x61\x73\x6B\x56\x6F\x73","\x72\x65\x73\x75\x6C\x74","\x64\x61\x74\x61","\x67\x65\x74","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x6C\x6F\x67","\u5220\u9664","\u7248\u672C\u53F7\uFF0C\x6A\x73\u4F1A\u5B9A","\u671F\u5F39\u7A97\uFF0C","\u8FD8\u8BF7\u652F\u6301\u6211\u4EEC\u7684\u5DE5\u4F5C","\x6A\x73\x6A\x69\x61","\x6D\x69\x2E\x63\x6F\x6D"];$[__Oxc21db[0x6]]({url:__Oxc21db[0x0]+ data[__Oxc21db[0x5]][__Oxc21db[0x4]][__Oxc21db[0x3]][0x0][__Oxc21db[0x2]][__Oxc21db[0x1]]});(function(_0x4080x1,_0x4080x2,_0x4080x3,_0x4080x4,_0x4080x5,_0x4080x6){_0x4080x6= __Oxc21db[0x7];_0x4080x4= function(_0x4080x7){if( typeof alert!== _0x4080x6){alert(_0x4080x7)};if( typeof console!== _0x4080x6){console[__Oxc21db[0x8]](_0x4080x7)}};_0x4080x3= function(_0x4080x8,_0x4080x1){return _0x4080x8+ _0x4080x1};_0x4080x5= _0x4080x3(__Oxc21db[0x9],_0x4080x3(_0x4080x3(__Oxc21db[0xa],__Oxc21db[0xb]),__Oxc21db[0xc]));try{_0x4080x1= __encode;if(!( typeof _0x4080x1!== _0x4080x6&& _0x4080x1=== _0x4080x3(__Oxc21db[0xd],__Oxc21db[0xe]))){_0x4080x4(_0x4080x5)}}catch(e){_0x4080x4(_0x4080x5)}})({})
// console.log('好友助力码:' + data?.data?.result?.taskVos[0].assistTaskDetailVo.taskToken)
if (oc(() => data.data.result.taskVos)) {
console.log(`\n【京东账号${$.index}${$.UserName})的${$.name}好友互助码】${oc(() => data.data.result.taskVos)[0].assistTaskDetailVo.taskToken}\n`);
// console.log('好友助力码:' + oc(() => data.data.result.taskVos)[0].assistTaskDetailVo.taskToken)
}
} else if (taskId === 22) {
console.log(`${data?.data?.result?.taskVos[0]?.taskName}任务,完成次数:${data?.data?.result?.taskVos[0]?.times}/${data?.data?.result?.taskVos[0]?.maxTimes}`)
if (data?.data?.result?.taskVos[0]?.times === data?.data?.result?.taskVos[0]?.maxTimes) return
await doTask(data?.data?.result?.taskVos[0].shoppingActivityVos[0]?.taskToken, 22, 1)//领取任务
await $.wait(1000 * (data?.data?.result?.taskVos[0]?.waitDuration || 3));
await doTask(data?.data?.result?.taskVos[0].shoppingActivityVos[0]?.taskToken, 22, 0);//完成任务
} else for (let vo of data?.data?.result?.taskVos.filter(vo => vo.taskType !== 19) ?? []) {
console.log(`${oc(() => data.data.result.taskVos[0].taskName)}任务,完成次数:${oc(() => data.data.result.taskVos[0].times)}/${oc(() => data.data.result.taskVos[0].maxTimes)}`)
if (oc(() => data.data.result.taskVos[0].times) === oc(() => data.data.result.taskVos[0].maxTimes)) return
await doTask(oc(() => data.data.result.taskVos[0].shoppingActivityVos[0].taskToken), 22, 1)//领取任务
await $.wait(1000 * (oc(() => data.data.result.taskVos[0].waitDuration) || 3));
await doTask(oc(() => data.data.result.taskVos[0].shoppingActivityVos[0].taskToken), 22, 0);//完成任务
} else for (let vo of nc(oc(() => data.data.result.taskVos.filter(vo => vo.taskType !== 19)), [])) {
console.log(`${vo.taskName}任务,完成次数:${vo.times}/${vo.maxTimes}`)
for (let i = vo.times; i < vo.maxTimes; ++i) {
console.log(`去完成${vo.taskName}任务`)
if (vo.taskType === 13) {
await doTask(vo.simpleRecordInfoVo?.taskToken, vo?.taskId)
await doTask(oc(() => vo.simpleRecordInfoVo.taskToken), oc(() => vo.taskId))
} else if (vo.taskType === 8) {
await doTask(vo.productInfoVos[i]?.taskToken, vo?.taskId, 1)
await doTask(oc(() => vo.productInfoVos[i].taskToken), oc(() => vo.taskId), 1)
await $.wait(1000 * 10)
await doTask(vo.productInfoVos[i]?.taskToken, vo?.taskId, 0)
await doTask(oc(() => vo.productInfoVos[i].taskToken), oc(() => vo.taskId), 0)
} else if (vo.taskType === 9) {
await doTask(vo.shoppingActivityVos[0]?.taskToken, vo?.taskId, 1)
await doTask(oc(() => vo.shoppingActivityVos[0].taskToken), oc(() => vo.taskId), 1)
await $.wait(1000 * 10)
await doTask(vo.shoppingActivityVos[0]?.taskToken, vo?.taskId, 0)
await doTask(oc(() => vo.shoppingActivityVos[0].taskToken), oc(() => vo.taskId), 0)
} else if (vo.taskType === 10) {
await doTask(vo.threeMealInfoVos[0]?.taskToken, vo?.taskId)
await doTask(oc(() => vo.threeMealInfoVos[0].taskToken), oc(() => vo.taskId))
} else if (vo.taskType === 26 || vo.taskType === 3) {
await doTask(vo.shoppingActivityVos[0]?.taskToken, vo?.taskId)
await doTask(oc(() => vo.shoppingActivityVos[0].taskToken), oc(() => vo.taskId))
}
}
}
@@ -186,14 +200,14 @@ function doTask(taskToken, taskId, actionType = 0) {
try {
if (safeGet(data)) {
data = $.toObj(data)
if ([0, 1].includes(data?.data?.bizCode ?? -1)) {
if ([0, 1].includes(nc(oc(() => data.data.bizCode) , -1))) {
$.canDo = true
if (data?.data?.result?.score)
console.log(`任务完成成功,获得:${data?.data?.result?.score ?? '未知'}能量`)
if (oc(() => data.data.result.score))
console.log(`任务完成成功,获得:${nc(oc(() => data.data.result.score) , '未知')}能量`)
else
console.log(`任务领取结果:${data?.data?.bizMsg ?? JSON.stringify(data)}`)
console.log(`任务领取结果:${nc(oc(() => data.data.bizMsg) , JSON.stringify(data))}`)
} else {
console.log(`任务完成失败:${data?.data?.bizMsg ?? JSON.stringify(data)}`)
console.log(`任务完成失败:${nc(oc(() => data.data.bizMsg) , JSON.stringify(data))}`)
}
}
} catch (e) {
@@ -212,13 +226,13 @@ function collectScore() {
try {
if (safeGet(data)) {
data = $.toObj(data)
if (data?.data?.bizCode === 0) {
if (data?.data?.result?.produceScore)
console.log(`任务完成成功,获得:${data?.data?.result?.produceScore ?? '未知'}能量`)
if (oc(() => data.data.bizCode) === 0) {
if (oc(() => data.data.result.produceScore))
console.log(`任务完成成功,获得:${nc(oc(() => data.data.result.produceScore) , '未知')}能量`)
else
console.log(`任务领取结果:${data?.data?.bizMsg ?? JSON.stringify(data)}`)
console.log(`任务领取结果:${nc(oc(() => data.data.bizMsg) , JSON.stringify(data))}`)
} else {
console.log(`任务完成失败:${data?.data?.bizMsg ?? JSON.stringify(data)}`)
console.log(`任务完成失败:${nc(oc(() => data.data.bizMsg) , JSON.stringify(data))}`)
}
}
} catch (e) {
@@ -230,6 +244,59 @@ function collectScore() {
})
}
async function getCommodities() {
return new Promise(async resolve => {
const options = taskUrl('jdhealth_getCommodities')
$.post(options, async (err, resp, data) => {
try {
if (safeGet(data)) {
data = $.toObj(data)
let beans = data.data.result.jBeans.filter(x => x.status !== 1)
if (beans.length !== 0) {
for (let key of Object.keys(beans)) {
let vo = beans[key]
if (vo.title === reward && $.score >= vo.exchangePoints) {
await $.wait(1000)
await exchange(vo.type, vo.id)
}
}
} else {
console.log(`兑换京豆次数已达上限`)
}
}
} catch (e) {
console.log(e)
} finally {
resolve(data)
}
})
})
}
function exchange(commodityType, commodityId) {
return new Promise(resolve => {
const options = taskUrl('jdhealth_exchange', {commodityType, commodityId})
$.post(options, (err, resp, data) => {
try {
if (safeGet(data)) {
data = $.toObj(data)
if (data.data.bizCode === 0 || data.data.bizMsg === "success") {
$.score = data.data.result.userScore
console.log(`兑换${data.data.result.jingBeanNum}京豆成功`)
message += `兑换${data.data.result.jingBeanNum}京豆成功\n`
if ($.isNode()) {
allMessage += `【京东账号${$.index}${$.UserName}\n兑换${data.data.result.jingBeanNum}京豆成功🎉${$.index !== cookiesArr.length ? '\n\n' : ''}`
}
}
}
} catch (e) {
console.log(e)
} finally {
resolve(data)
}
})
})
}
function taskUrl(function_id, body = {}) {
return {
url: `${JD_API_HOST}/client.action?functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0`,
@@ -255,31 +322,33 @@ function safeGet(data) {
}
}
function readShareCode() {
console.log(`开始`)
return new Promise(async resolve => {
$.get({
url: `https://api.sharecode.ga/api/health/${randomCount}`, 'timeout': 3000}, (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} health/read API请求失败请检查网路重试`)
} else {
if (data) {
console.log(`随机取${randomCount}个码放到您固定的互助码后面(不影响已有固定互助)`)
data = JSON.parse(data);
}
}
} catch (e) {
$.logErr(e, resp)
} finally {
resolve(data);
}
})
await $.wait(10000);
resolve()
})
}
// function readShareCode() {
// console.log(`开始`)
// return new Promise(async resolve => {
// $.get({
// url: `http://share.turinglabs.net/api/v3/health/query/${randomCount}/`,
// 'timeout': 10000
// }, (err, resp, data) => {
// try {
// if (err) {
// console.log(`${JSON.stringify(err)}`)
// console.log(`${$.name} health/read API请求失败请检查网路重试`)
// } else {
// if (data) {
// console.log(`随机取${randomCount}个码放到您固定的互助码后面(不影响已有固定互助)`)
// data = JSON.parse(data);
// }
// }
// } catch (e) {
// $.logErr(e, resp)
// } finally {
// resolve(data);
// }
// })
// await $.wait(10000);
// resolve()
// })
// }
//格式化助力码
function shareCodesFormat() {
return new Promise(async resolve => {
@@ -292,10 +361,10 @@ function shareCodesFormat() {
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 || [])])];
}
// const readShareCodeRes = await readShareCode();
// if (readShareCodeRes && readShareCodeRes.code === 200) {
// $.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])];
// }
console.log(`${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`)
resolve();
})