update
This commit is contained in:
@@ -2,11 +2,11 @@
|
|||||||
* @Author: LXK9301
|
* @Author: LXK9301
|
||||||
* @Date: 2020-11-03 20:35:07
|
* @Date: 2020-11-03 20:35:07
|
||||||
* @Last Modified by: LXK9301
|
* @Last Modified by: LXK9301
|
||||||
* @Last Modified time: 2021-4-23 13:27:09
|
* @Last Modified time: 2021-4-25 13:27:09
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
活动入口:京东APP首页-领京豆-摇京豆/京东APP首页-我的-京东会员-摇京豆
|
活动入口:京东APP首页-领京豆-摇京豆/京东APP首页-我的-京东会员-摇京豆
|
||||||
增加京东APP首页超级摇一摇(不定时有活动)(此功能部分京东API抓包自:https://github.com/i-chenzhe/qx/blob/main/jd_shake.js)
|
增加京东APP首页超级摇一摇(不定时有活动)
|
||||||
增加超级品牌日做任务及抽奖
|
增加超级品牌日做任务及抽奖
|
||||||
Modified from https://github.com/Zero-S1/JD_tools/blob/master/JD_vvipclub.py
|
Modified from https://github.com/Zero-S1/JD_tools/blob/master/JD_vvipclub.py
|
||||||
已支持IOS双京东账号,Node.js支持N个京东账号
|
已支持IOS双京东账号,Node.js支持N个京东账号
|
||||||
@@ -57,9 +57,6 @@ const JD_API_HOST = 'https://api.m.jd.com/client.action';
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
await welcomeHome()
|
await welcomeHome()
|
||||||
if (superShakeBeanConfig['superShakeUlr']) {
|
|
||||||
await getActInfo(superShakeBeanConfig['superShakeUlr']);
|
|
||||||
}
|
|
||||||
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];
|
||||||
@@ -115,6 +112,11 @@ const JD_API_HOST = 'https://api.m.jd.com/client.action';
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//账号内部助力后,继续抽奖
|
||||||
|
for (let i = 0; i < new Array(4).fill('').length; i++) {
|
||||||
|
await superBrandTaskLottery();
|
||||||
|
await $.wait(400);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (allMessage) {
|
if (allMessage) {
|
||||||
@@ -412,7 +414,7 @@ function shakeBean() {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
//超级摇一摇(此处功能部分京东API抓包自:https://github.com/i-chenzhe/qx/blob/main/jd_shake.js)
|
//新版超级本摇一摇
|
||||||
async function superShakeBean() {
|
async function superShakeBean() {
|
||||||
await superBrandMainPage();
|
await superBrandMainPage();
|
||||||
if ($.activityId && $.encryptProjectId) {
|
if ($.activityId && $.encryptProjectId) {
|
||||||
@@ -421,14 +423,6 @@ async function superShakeBean() {
|
|||||||
await superBrandMainPage();
|
await superBrandMainPage();
|
||||||
await lo();
|
await lo();
|
||||||
}
|
}
|
||||||
if ($.ActInfo) {
|
|
||||||
await fc_getHomeData($.ActInfo);//获取任务列表
|
|
||||||
await doShakeTask($.ActInfo);//做任务
|
|
||||||
await fc_getHomeData($.ActInfo, true);//做完任务后查询多少次摇奖次数
|
|
||||||
await superShakeLottery($.ActInfo);//开始摇奖
|
|
||||||
} else {
|
|
||||||
// console.log(`\n\n京东APP首页超级摇一摇:目前暂无活动\n\n`)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
function welcomeHome() {
|
function welcomeHome() {
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
@@ -709,194 +703,6 @@ function superBrandTaskLottery() {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
function getActInfo(url) {
|
|
||||||
return new Promise(resolve => {
|
|
||||||
$.get({
|
|
||||||
url,
|
|
||||||
headers:{
|
|
||||||
// 'Cookie': cookie,
|
|
||||||
'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"),
|
|
||||||
},
|
|
||||||
timeout: 10000
|
|
||||||
},async (err,resp,data)=>{
|
|
||||||
try {
|
|
||||||
if (err) {
|
|
||||||
console.log(`${JSON.stringify(err)}`)
|
|
||||||
console.log(`${$.name} API请求失败,请检查网路重试`)
|
|
||||||
} else {
|
|
||||||
data = data && data.match(/window\.__FACTORY__TAOYIYAO__STATIC_DATA__ = (.*)}/)
|
|
||||||
if (data) {
|
|
||||||
data = JSON.parse(data[1] + '}');
|
|
||||||
if (data['pageConfig']) superShakeBeanConfig['superShakeTitle'] = data['pageConfig']['htmlTitle'];
|
|
||||||
if (data['taskConfig']) {
|
|
||||||
$.ActInfo = data['taskConfig']['taskAppId'];
|
|
||||||
console.log(`\n获取【${superShakeBeanConfig['superShakeTitle']}】活动ID成功:${$.ActInfo}\n`);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
console.log(e)
|
|
||||||
}
|
|
||||||
finally {
|
|
||||||
resolve()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
function fc_getHomeData(appId, flag = false) {
|
|
||||||
return new Promise(resolve => {
|
|
||||||
const body = { appId }
|
|
||||||
const options = taskPostUrl('fc_getHomeData', body)
|
|
||||||
$.taskVos = [];
|
|
||||||
$.lotteryNum = 0;
|
|
||||||
$.post(options, async (err, resp, data) => {
|
|
||||||
try {
|
|
||||||
if (err) {
|
|
||||||
console.log(`${JSON.stringify(err)}`)
|
|
||||||
console.log(`${$.name} fc_getHomeData API请求失败,请检查网路重试`)
|
|
||||||
} else {
|
|
||||||
if (data) {
|
|
||||||
data = JSON.parse(data);
|
|
||||||
if (data && data['data']['bizCode'] === 0) {
|
|
||||||
const taskVos = data['data']['result']['taskVos'] || [];
|
|
||||||
if (flag && $.index === 1) {
|
|
||||||
superShakeBeanConfig['superShakeBeanFlag'] = true;
|
|
||||||
superShakeBeanConfig['taskVipName'] = taskVos.filter(vo => !!vo && vo['taskType'] === 21)[0]['taskName'];
|
|
||||||
}
|
|
||||||
$.taskVos = taskVos.filter(item => !!item && item['status'] === 1) || [];
|
|
||||||
$.lotteryNum = parseInt(data['data']['result']['lotteryNum']);
|
|
||||||
$.lotTaskId = parseInt(data['data']['result']['lotTaskId']);
|
|
||||||
} else if (data && data['data']['bizCode'] === 101) {
|
|
||||||
console.log(`京东APP首页超级摇一摇: ${data['data']['bizMsg']}`);
|
|
||||||
} else {
|
|
||||||
console.log(`获取超级摇一摇任务数据异常: ${JSON.stringify(data)}`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
$.logErr(e, resp);
|
|
||||||
} finally {
|
|
||||||
resolve();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
async function doShakeTask(appId) {
|
|
||||||
for (let vo of $.taskVos) {
|
|
||||||
if (vo['taskType'] === 21) {
|
|
||||||
console.log(`${vo['taskName']} 跳过`);
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if (vo['taskType'] === 9) {
|
|
||||||
console.log(`开始做 ${vo['taskName']},等10秒`);
|
|
||||||
const shoppingActivityVos = vo['shoppingActivityVos'];
|
|
||||||
for (let task of shoppingActivityVos) {
|
|
||||||
await fc_collectScore({
|
|
||||||
appId,
|
|
||||||
"taskToken": task['taskToken'],
|
|
||||||
"taskId": vo['taskId'],
|
|
||||||
"itemId": task['itemId'],
|
|
||||||
"actionType": 1
|
|
||||||
})
|
|
||||||
await $.wait(10000)
|
|
||||||
await fc_collectScore({
|
|
||||||
appId,
|
|
||||||
"taskToken": task['taskToken'],
|
|
||||||
"taskId": vo['taskId'],
|
|
||||||
"itemId": task['itemId'],
|
|
||||||
"actionType": 0
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (vo['taskType'] === 1) {
|
|
||||||
console.log(`开始做 ${vo['taskName']}, 等8秒`);
|
|
||||||
const followShopVo = vo['followShopVo'];
|
|
||||||
for (let task of followShopVo) {
|
|
||||||
await fc_collectScore({
|
|
||||||
appId,
|
|
||||||
"taskToken": task['taskToken'],
|
|
||||||
"taskId": vo['taskId'],
|
|
||||||
"itemId": task['itemId'],
|
|
||||||
"actionType": 1
|
|
||||||
})
|
|
||||||
await $.wait(9000)
|
|
||||||
await fc_collectScore({
|
|
||||||
appId,
|
|
||||||
"taskToken": task['taskToken'],
|
|
||||||
"taskId": vo['taskId'],
|
|
||||||
"itemId": task['itemId'],
|
|
||||||
"actionType": 0
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function fc_collectScore(body) {
|
|
||||||
return new Promise(resolve => {
|
|
||||||
const options = taskPostUrl('fc_collectScore', body)
|
|
||||||
$.post(options, (err, resp, data) => {
|
|
||||||
try {
|
|
||||||
if (err) {
|
|
||||||
console.log(`${JSON.stringify(err)}`)
|
|
||||||
console.log(`${$.name} fc_collectScore API请求失败,请检查网路重试`)
|
|
||||||
} else {
|
|
||||||
if (data) {
|
|
||||||
data = JSON.parse(data);
|
|
||||||
console.log(`${JSON.stringify(data)}`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
$.logErr(e, resp);
|
|
||||||
} finally {
|
|
||||||
resolve();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
async function superShakeLottery(appId) {
|
|
||||||
if ($.lotteryNum) console.log(`\n\n开始京东APP首页超级摇一摇 摇奖`);
|
|
||||||
for (let i = 0; i < new Array($.lotteryNum).fill('').length; i++) {
|
|
||||||
await fc_getLottery(appId);//抽奖
|
|
||||||
await $.wait(1000)
|
|
||||||
}
|
|
||||||
if ($.superShakeBeanNum > 0) {
|
|
||||||
message += `${message ? '\n' : ''}${superShakeBeanConfig['superShakeTitle']}:获得${$.superShakeBeanNum}京豆`
|
|
||||||
allMessage += `京东账号${$.index}${$.nickName || $.UserName}\n${superShakeBeanConfig['superShakeTitle']}:获得${$.superShakeBeanNum}京豆${$.index !== cookiesArr.length ? '\n\n' : ''}`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function fc_getLottery(appId) {
|
|
||||||
return new Promise(resolve => {
|
|
||||||
const body = {appId, "taskId": $.lotTaskId}
|
|
||||||
const options = taskPostUrl('fc_getLotteryResult', body)
|
|
||||||
$.post(options, (err, resp, data) => {
|
|
||||||
try {
|
|
||||||
if (err) {
|
|
||||||
console.log(`${JSON.stringify(err)}`)
|
|
||||||
console.log(`${$.name} fc_collectScore API请求失败,请检查网路重试`)
|
|
||||||
} else {
|
|
||||||
if (data) {
|
|
||||||
data = JSON.parse(data);
|
|
||||||
if (data && data['data']['bizCode'] === 0) {
|
|
||||||
$.myAwardVo = data['data']['result']['myAwardVo'];
|
|
||||||
if ($.myAwardVo) {
|
|
||||||
console.log(`超级摇一摇 抽奖结果:${JSON.stringify($.myAwardVo)}`)
|
|
||||||
if ($.myAwardVo['type'] === 2) {
|
|
||||||
$.superShakeBeanNum = $.superShakeBeanNum + parseInt($.myAwardVo['jBeanAwardVo']['quantity']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
console.log(`超级摇一摇 抽奖异常: ${JSON.stringify(data)}`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
$.logErr(e, resp);
|
|
||||||
} finally {
|
|
||||||
resolve();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//============超级品牌日==============
|
//============超级品牌日==============
|
||||||
async function superbrandShakeBean() {
|
async function superbrandShakeBean() {
|
||||||
$.bradCanLottery = true;
|
$.bradCanLottery = true;
|
||||||
@@ -1201,41 +1007,38 @@ function pg_interact_interface_invoke(body) {
|
|||||||
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://me-api.jd.com/user_new/info/GetJDUserInfoUnion",
|
||||||
"headers": {
|
headers: {
|
||||||
"Accept": "application/json,text/plain, */*",
|
Host: "me-api.jd.com",
|
||||||
"Content-Type": "application/x-www-form-urlencoded",
|
Accept: "*/*",
|
||||||
"Accept-Encoding": "gzip, deflate, br",
|
Connection: "keep-alive",
|
||||||
|
Cookie: cookie,
|
||||||
|
"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"),
|
||||||
"Accept-Language": "zh-cn",
|
"Accept-Language": "zh-cn",
|
||||||
"Connection": "keep-alive",
|
"Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&",
|
||||||
"Cookie": cookie,
|
"Accept-Encoding": "gzip, deflate, br"
|
||||||
"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")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$.post(options, (err, resp, data) => {
|
$.get(options, (err, resp, data) => {
|
||||||
try {
|
try {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log(`${JSON.stringify(err)}`)
|
$.logErr(err)
|
||||||
console.log(`${$.name} API请求失败,请检查网路重试`)
|
|
||||||
} else {
|
} else {
|
||||||
if (data) {
|
if (data) {
|
||||||
data = JSON.parse(data);
|
data = JSON.parse(data);
|
||||||
if (data['retcode'] === 13) {
|
if (data['retcode'] === "1001") {
|
||||||
$.isLogin = false; //cookie过期
|
$.isLogin = false; //cookie过期
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (data['retcode'] === 0) {
|
if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) {
|
||||||
$.nickName = (data['base'] && data['base'].nickname) || $.UserName;
|
$.nickName = data.data.userInfo.baseInfo.nickname;
|
||||||
} else {
|
|
||||||
$.nickName = $.UserName
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
console.log(`京东服务器返回空数据`)
|
$.log('京东服务器返回空数据');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
$.logErr(e, resp)
|
$.logErr(e)
|
||||||
} finally {
|
} finally {
|
||||||
resolve();
|
resolve();
|
||||||
}
|
}
|
||||||
|
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user