This commit is contained in:
Faker 2023-02-27 16:42:49 +08:00
parent b8e134366b
commit 730a2ab23a
4 changed files with 210 additions and 202 deletions

View File

@ -10,242 +10,242 @@ CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS;
let cookiesArr = [], cookie = ''; let cookiesArr = [], cookie = '';
if ($.isNode()) { if ($.isNode()) {
Object.keys(jdCookieNode).forEach((item) => { cookiesArr.push(jdCookieNode[item]) }) Object.keys(jdCookieNode).forEach((item) => { cookiesArr.push(jdCookieNode[item]) })
if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { };
} 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);
} }
!(async () => { !(async () => {
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;
} }
for (let i = 0; i < cookiesArr.length; i++) { for (let i = 0; i < cookiesArr.length; i++) {
if (cookiesArr[i]) { if (cookiesArr[i]) {
cookie = cookiesArr[i]; cookie = cookiesArr[i];
$.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1])
$.index = i + 1; $.index = i + 1;
$.isLogin = true; $.isLogin = true;
$.nickName = ''; $.nickName = '';
message = ''; message = '';
//await TotalBean(); //await TotalBean();
console.log(`\n******开始【京东账号${$.index}${$.nickName || $.UserName}*********\n`); console.log(`\n******开始【京东账号${$.index}${$.nickName || $.UserName}*********\n`);
if (!$.isLogin) { 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()) { if ($.isNode()) {
await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`);
} }
continue continue
} }
$.UUID = getUUID('xxxxxxxxxxxxxxxx'); $.UUID = getUUID('xxxxxxxxxxxxxxxx');
await main() await main()
}
} }
}
})().catch((e) => { $.log('', `${$.name}, 失败! 原因: ${e}!`, '') }).finally(() => { $.done(); }) })().catch((e) => { $.log('', `${$.name}, 失败! 原因: ${e}!`, '') }).finally(() => { $.done(); })
async function main() { async function main() {
$.log("去签到") $.log("去签到")
await usersign() await usersign()
await tasklist(); await tasklist();
if ($.tasklist) { if ($.tasklist) {
for (let i = 0; i < $.tasklist.length; i++) { for (let i = 0; i < $.tasklist.length; i++) {
console.log(`去领取${$.tasklist[i].taskDesc}任务`) console.log(`去领取${$.tasklist[i].taskDesc}任务`)
await taskrecord($.tasklist[i].id) await taskrecord($.tasklist[i].id)
await $.wait(3000); await $.wait(3000);
console.log(`去领取积分`) console.log(`去领取积分`)
await taskreceive($.tasklist[i].id) await taskreceive($.tasklist[i].id)
}
} }
}
} }
async function taskrecord(id) { async function taskrecord(id) {
enc = await sign(id + "1") enc = await sign(id + "1")
let body = { "id": id, "agentNum": "m", "taskType": 1, "followChannelStatus": "", ...enc } let body = { "id": id, "agentNum": "m", "taskType": 1, "followChannelStatus": "", ...enc }
return new Promise(resolve => { return new Promise(resolve => {
$.post(taskPostUrl("task/dwRecord", body), (err, resp, data) => { $.post(taskPostUrl("task/dwRecord", body), (err, resp, data) => {
try { try {
if (err) { if (err) {
console.log(`${err}`) console.log(`${err}`)
console.log(`${$.name} API请求失败请检查网路重试`) console.log(`${$.name} API请求失败请检查网路重试`)
} else { } else {
data = JSON.parse(data) data = JSON.parse(data)
if (data) { if (data) {
if (data.code === 200) { if (data.code === 200) {
if (data.data.dwUserTask) { if (data.data.dwUserTask) {
$.log(" 领取任务成功") $.log(" 领取任务成功")
} else { } else {
$.log(" 此任务已经领取过了") $.log(" 此任务已经领取过了")
} }
} else { } else {
console.log(JSON.stringify(data)) console.log(JSON.stringify(data))
}
}
}
} catch (e) {
$.logErr(e, resp)
} finally {
resolve(data);
} }
} })
}
} catch (e) {
$.logErr(e, resp)
} finally {
resolve(data);
}
}) })
})
} }
async function taskreceive(id) { async function taskreceive(id) {
enc = await sign(id) enc = await sign(id)
let body = { "id": id, ...enc } let body = { "id": id, ...enc }
return new Promise(resolve => { return new Promise(resolve => {
$.post(taskPostUrl("task/dwReceive", body), (err, resp, data) => { $.post(taskPostUrl("task/dwReceive", body), (err, resp, data) => {
try { try {
if (err) { if (err) {
console.log(`${err}`) console.log(`${err}`)
console.log(`${$.name} API请求失败请检查网路重试`) console.log(`${$.name} API请求失败请检查网路重试`)
} else { } else {
data = JSON.parse(data) data = JSON.parse(data)
if (data) { if (data) {
if (data.code === 200 && data.data.success) { if (data.code === 200 && data.data.success) {
console.log(` 领取任务积分:获得${data.data.giveScoreNum}`) console.log(` 领取任务积分:获得${data.data.giveScoreNum}`)
} else if (data.code === 200 && !data.data.success) { } else if (data.code === 200 && !data.data.success) {
console.log(" 积分已经领取完了") console.log(" 积分已经领取完了")
} else { } else {
console.log(JSON.stringify(data)) console.log(JSON.stringify(data))
}
}
}
} catch (e) {
$.logErr(e, resp)
} finally {
resolve(data);
} }
} })
}
} catch (e) {
$.logErr(e, resp)
} finally {
resolve(data);
}
}) })
})
} }
async function usersign() { async function usersign() {
body = await sign() body = await sign()
return new Promise(resolve => { return new Promise(resolve => {
$.post(taskPostUrl("dwSign", body), (err, resp, data) => { $.post(taskPostUrl("dwSign", body), (err, resp, data) => {
try { try {
if (err) { if (err) {
console.log(`${err}`) console.log(`${err}`)
console.log(`${$.name} API请求失败请检查网路重试`) console.log(`${$.name} API请求失败请检查网路重试`)
} else { } else {
data = JSON.parse(data) data = JSON.parse(data)
if (data) { if (data) {
if (data.code === 200) { if (data.code === 200) {
console.log(`签到成功:获得积分${data.data.signInfo.signNum}\n`) console.log(`签到成功:获得积分${data.data.signInfo.signNum}\n`)
} else { } else {
console.log("似乎签到完成了\n") console.log("似乎签到完成了\n")
}
}
}
} catch (e) {
$.logErr(e, resp)
} finally {
resolve(data);
} }
} })
}
} catch (e) {
$.logErr(e, resp)
} finally {
resolve(data);
}
}) })
})
} }
async function tasklist() { async function tasklist() {
body = await sign() body = await sign()
return new Promise(resolve => { return new Promise(resolve => {
$.post(taskPostUrl("task/dwList", body), (err, resp, data) => { $.post(taskPostUrl("task/dwList", body), (err, resp, data) => {
try { try {
if (err) { if (err) {
console.log(`${err}`) console.log(`${err}`)
console.log(`${$.name} API请求失败请检查网路重试`) console.log(`${$.name} API请求失败请检查网路重试`)
} else { } else {
data = JSON.parse(data) data = JSON.parse(data)
if (data) { if (data) {
$.tasklist = data.data $.tasklist = data.data
} }
} }
} catch (e) { } catch (e) {
$.logErr(e, resp) $.logErr(e, resp)
} finally { } finally {
resolve(data); resolve(data);
} }
})
}) })
})
} }
function taskPostUrl(function_id, body) { function taskPostUrl(function_id, body) {
return { return {
url: `https://dwapp.jd.com/user/${function_id}`, url: `https://dwapp.jd.com/user/${function_id}`,
body: JSON.stringify(body), body: JSON.stringify(body),
headers: { headers: {
"Host": "dwapp.jd.com", "Host": "dwapp.jd.com",
"Origin": "https://prodev.m.jd.com", "Origin": "https://prodev.m.jd.com",
"Connection": "keep-alive", "Connection": "keep-alive",
"Accept": "*/*", "Accept": "*/*",
"User-Agent": `jdapp;iPhone;10.1.0;13.5;${$.UUID};network/wifi;model/iPhone11,6;addressid/4596882376;appBuild/167774;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, "User-Agent": `jdapp;iPhone;10.1.0;13.5;${$.UUID};network/wifi;model/iPhone11,6;addressid/4596882376;appBuild/167774;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`,
"Accept-Language": "zh-cn", "Accept-Language": "zh-cn",
"Referer": "https://prodev.m.jd.com/mall/active/eEcYM32eezJB7YX4SBihziJCiGV/index.html", "Referer": "https://prodev.m.jd.com/mall/active/eEcYM32eezJB7YX4SBihziJCiGV/index.html",
"Accept-Encoding": "gzip, deflate, br", "Accept-Encoding": "gzip, deflate, br",
"Content-Type": "application/json", "Content-Type": "application/json",
"Cookie": cookie, "Cookie": cookie,
}
} }
}
} }
function TotalBean() { function TotalBean() {
return new Promise(async resolve => { return new Promise(async resolve => {
const options = { const options = {
"url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`,
"headers": { "headers": {
"Accept": "application/json,text/plain, */*", "Accept": "application/json,text/plain, */*",
"Content-Type": "application/x-www-form-urlencoded", "Content-Type": "application/x-www-form-urlencoded",
"Accept-Encoding": "gzip, deflate, br", "Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-cn", "Accept-Language": "zh-cn",
"Connection": "keep-alive", "Connection": "keep-alive",
"Cookie": cookie, "Cookie": cookie,
"Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2",
"User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1")
}
}
$.post(options, (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
if (data) {
data = JSON.parse(data);
if (data['retcode'] === 13) {
$.isLogin = false; //cookie过期
return
} }
if (data['retcode'] === 0) {
$.nickName = (data['base'] && data['base'].nickname) || $.UserName;
} else {
$.nickName = $.UserName
}
} else {
console.log(`京东服务器返回空数据`)
}
} }
} catch (e) { $.post(options, (err, resp, data) => {
$.logErr(e, resp) try {
} finally { if (err) {
resolve(); console.log(`${JSON.stringify(err)}`)
} console.log(`${$.name} API请求失败请检查网路重试`)
} else {
if (data) {
data = JSON.parse(data);
if (data['retcode'] === 13) {
$.isLogin = false; //cookie过期
return
}
if (data['retcode'] === 0) {
$.nickName = (data['base'] && data['base'].nickname) || $.UserName;
} else {
$.nickName = $.UserName
}
} else {
console.log(`京东服务器返回空数据`)
}
}
} catch (e) {
$.logErr(e, resp)
} finally {
resolve();
}
})
}) })
})
} }
function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) {
return format.replace(/[xy]/g, function (c) { return format.replace(/[xy]/g, function (c) {
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
if (UpperCase) { if (UpperCase) {
uuid = v.toString(36).toUpperCase(); uuid = v.toString(36).toUpperCase();
} else { } else {
uuid = v.toString(36) uuid = v.toString(36)
} }
return uuid; return uuid;
}); });
} }
async function sign(en) { async function sign(en) {
time = new Date().getTime(); time = new Date().getTime();
let encStr = en || ''; let encStr = en || '';
const encTail = `${time}e9c398ffcb2d4824b4d0a703e38yffdd`; const encTail = `${time}e9c398ffcb2d4824b4d0a703e38yffdd`;
encStr = CryptoJS.MD5(encStr + encTail).toString() encStr = CryptoJS.MD5(encStr + encTail).toString()
return { "t": time, "encStr": encStr } return { "t": time, "encStr": encStr }
} }
// prettier-ignore // prettier-ignore

9
jd_joymatch.js Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long