守护关卡偷红包
This commit is contained in:
178
jd_nian.js
178
jd_nian.js
@@ -89,18 +89,25 @@ const pkInviteCodes = [
|
||||
.finally(() => {
|
||||
$.done();
|
||||
})
|
||||
|
||||
async function jdNian() {
|
||||
try {
|
||||
await getHomeData()
|
||||
if (!$.secretp) return
|
||||
let hour = new Date().getUTCHours()
|
||||
if (1<=hour && hour<=14) {
|
||||
// 北京时间9点-22点做pk任务
|
||||
if (1 <= hour && hour < 12) {
|
||||
// 北京时间9点-20点
|
||||
$.hasGroup = false
|
||||
await pkTaskDetail()
|
||||
if ($.hasGroup) await pkInfo()
|
||||
await helpFriendsPK()
|
||||
}
|
||||
if (12 <= hour && hour < 14) {
|
||||
// 北京时间20点-22点
|
||||
$.hasGroup = false
|
||||
await pkTaskStealDetail()
|
||||
if ($.hasGroup) await pkInfo()
|
||||
}
|
||||
await $.wait(2000)
|
||||
await killCouponList()
|
||||
await $.wait(2000)
|
||||
@@ -119,6 +126,7 @@ async function jdNian() {
|
||||
$.logErr(e)
|
||||
}
|
||||
}
|
||||
|
||||
function encode(data, aa, extraData) {
|
||||
const temp = {
|
||||
"extraData": JSON.stringify(extraData),
|
||||
@@ -127,9 +135,11 @@ function encode(data, aa, extraData) {
|
||||
}
|
||||
return {"ss": (JSON.stringify(temp))};
|
||||
}
|
||||
|
||||
function getRnd() {
|
||||
return Math.floor(1e6 * Math.random()).toString();
|
||||
}
|
||||
|
||||
function showMsg() {
|
||||
return new Promise(resolve => {
|
||||
console.log('任务已做完!\n如有未完成的任务,请多执行几次。注:目前入会任务不会做')
|
||||
@@ -145,6 +155,7 @@ function showMsg() {
|
||||
resolve()
|
||||
})
|
||||
}
|
||||
|
||||
async function helpFriends() {
|
||||
for (let code of $.newShareCodes) {
|
||||
if (!code) continue
|
||||
@@ -152,6 +163,7 @@ async function helpFriends() {
|
||||
await $.wait(1000)
|
||||
}
|
||||
}
|
||||
|
||||
async function helpFriendsPK() {
|
||||
for (let code of $.newShareCodesPk) {
|
||||
if (!code) continue
|
||||
@@ -160,6 +172,7 @@ async function helpFriendsPK() {
|
||||
await $.wait(1000)
|
||||
}
|
||||
}
|
||||
|
||||
async function doTask() {
|
||||
for (let item of $.taskVos) {
|
||||
if (item.taskType === 14) {
|
||||
@@ -173,8 +186,7 @@ async function doTask() {
|
||||
} else if (item.status === 2) {
|
||||
console.log(`${item.taskName}已做完`)
|
||||
}
|
||||
}
|
||||
else if (item.taskType === 3 || item.taskType === 26) {
|
||||
} else if (item.taskType === 3 || item.taskType === 26) {
|
||||
if (item.shoppingActivityVos) {
|
||||
if (item.status === 1) {
|
||||
console.log(`准备做此任务:${item.taskName}`)
|
||||
@@ -188,8 +200,7 @@ async function doTask() {
|
||||
console.log(`${item.taskName}已做完`)
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (item.taskType === 9) {
|
||||
} else if (item.taskType === 9) {
|
||||
if (item.status === 1) {
|
||||
console.log(`准备做此任务:${item.taskName}`)
|
||||
for (let task of item.shoppingActivityVos) {
|
||||
@@ -201,8 +212,7 @@ async function doTask() {
|
||||
} else if (item.status === 2) {
|
||||
console.log(`${item.taskName}已做完`)
|
||||
}
|
||||
}
|
||||
else if (item.taskType === 7) {
|
||||
} else if (item.taskType === 7) {
|
||||
if (item.status === 1) {
|
||||
console.log(`准备做此任务:${item.taskName}`)
|
||||
for (let task of item.browseShopVo) {
|
||||
@@ -250,8 +260,7 @@ function getFeedDetail(body={}) {
|
||||
if (data.data.result.addProductVos) {
|
||||
for (let vo of data.data.result.addProductVos) {
|
||||
if (vo['status'] === 1) {
|
||||
for(let i=0;i<vo.productInfoVos.length&&i+vo['times']<vo['maxTimes'];++i)
|
||||
{
|
||||
for (let i = 0; i < vo.productInfoVos.length && i + vo['times'] < vo['maxTimes']; ++i) {
|
||||
let bo = vo.productInfoVos[i]
|
||||
await collectScore(vo['taskId'], bo['itemId'])
|
||||
await $.wait(2000)
|
||||
@@ -262,8 +271,7 @@ function getFeedDetail(body={}) {
|
||||
if (data.data.result.taskVos) {
|
||||
for (let vo of data.data.result.taskVos) {
|
||||
if (vo['status'] === 1) {
|
||||
for(let i=0;i<vo.productInfoVos.length&&i+vo['times']<vo['maxTimes'];++i)
|
||||
{
|
||||
for (let i = 0; i < vo.productInfoVos.length && i + vo['times'] < vo['maxTimes']; ++i) {
|
||||
let bo = vo.productInfoVos[i]
|
||||
await collectScore(vo['taskId'], bo['itemId'])
|
||||
await $.wait(2000)
|
||||
@@ -283,6 +291,7 @@ function getFeedDetail(body={}) {
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function getHomeData(info = false) {
|
||||
return new Promise((resolve) => {
|
||||
$.post(taskPostUrl('nian_getHomeData'), async (err, resp, data) => {
|
||||
@@ -316,8 +325,7 @@ function getHomeData(info=false) {
|
||||
await $.wait(2000)
|
||||
await raise()
|
||||
}
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
$.secretp = null
|
||||
console.log(`账号被风控,无法参与活动`)
|
||||
message += `账号被风控,无法参与活动\n`
|
||||
@@ -331,6 +339,7 @@ function getHomeData(info=false) {
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function collectProduceScore(taskId = "collectProducedCoin") {
|
||||
let temp = {
|
||||
"taskId": taskId,
|
||||
@@ -368,6 +377,7 @@ function collectProduceScore(taskId= "collectProducedCoin") {
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function collectScore(taskId, itemId, actionType = null, inviteId = null, shopSign = null) {
|
||||
let temp = {
|
||||
"taskId": taskId,
|
||||
@@ -416,8 +426,7 @@ function collectScore(taskId,itemId,actionType=null,inviteId=null,shopSign=null)
|
||||
}
|
||||
}
|
||||
// $.userInfo = data.data.result.userInfo;
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
console.log(data.data.bizMsg)
|
||||
}
|
||||
}
|
||||
@@ -431,6 +440,7 @@ function collectScore(taskId,itemId,actionType=null,inviteId=null,shopSign=null)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function pkCollectScore(taskId, itemId, actionType = null, inviteId = null, shopSign = null) {
|
||||
let temp = {
|
||||
"taskId": taskId,
|
||||
@@ -479,8 +489,7 @@ function pkCollectScore(taskId,itemId,actionType=null,inviteId=null,shopSign=nul
|
||||
}
|
||||
}
|
||||
// $.userInfo = data.data.result.userInfo;
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
console.log(data.data.bizMsg)
|
||||
}
|
||||
}
|
||||
@@ -494,6 +503,7 @@ function pkCollectScore(taskId,itemId,actionType=null,inviteId=null,shopSign=nul
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function doTask2(taskToken) {
|
||||
let body = {
|
||||
"dataSource": "newshortAward",
|
||||
@@ -523,6 +533,7 @@ function doTask2(taskToken) {
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function raise(taskId = "nian_raise") {
|
||||
let temp = {
|
||||
"taskId": taskId,
|
||||
@@ -560,6 +571,7 @@ function raise(taskId= "nian_raise") {
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function getTaskList(body = {}) {
|
||||
return new Promise(resolve => {
|
||||
$.post(taskPostUrl("nian_getTaskDetail", body, "nian_getTaskDetail"), async (err, resp, data) => {
|
||||
@@ -587,6 +599,7 @@ function getTaskList(body={}) {
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function getFriendData(inviteId) {
|
||||
return new Promise((resolve) => {
|
||||
$.post(taskPostUrl('nian_getHomeData', {"inviteId": inviteId}), async (err, resp, data) => {
|
||||
@@ -609,6 +622,7 @@ function getFriendData(inviteId) {
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function map() {
|
||||
return new Promise(resolve => {
|
||||
$.post(taskPostUrl("nian_myMap", {}, "nian_myMap"), async (err, resp, data) => {
|
||||
@@ -637,8 +651,15 @@ function map() {
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function queryMaterials() {
|
||||
let body = {"qryParam":"[{\"type\":\"advertGroup\",\"mapTo\":\"viewLogo\",\"id\":\"05149412\"},{\"type\":\"advertGroup\",\"mapTo\":\"bottomLogo\",\"id\":\"05149413\"}]","activityId":"2cKMj86srRdhgWcKonfExzK4ZMBy","pageId":"","reqSrc":"","applyKey":"21beast"}
|
||||
let body = {
|
||||
"qryParam": "[{\"type\":\"advertGroup\",\"mapTo\":\"viewLogo\",\"id\":\"05149412\"},{\"type\":\"advertGroup\",\"mapTo\":\"bottomLogo\",\"id\":\"05149413\"}]",
|
||||
"activityId": "2cKMj86srRdhgWcKonfExzK4ZMBy",
|
||||
"pageId": "",
|
||||
"reqSrc": "",
|
||||
"applyKey": "21beast"
|
||||
}
|
||||
return new Promise(resolve => {
|
||||
$.post(taskPostUrl("qryCompositeMaterials", body, "qryCompositeMaterials"), async (err, resp, data) => {
|
||||
try {
|
||||
@@ -688,8 +709,7 @@ function shopLotteryInfo(shopSign) {
|
||||
console.log(`去做${vo.taskName}任务`)
|
||||
await $.wait(2000)
|
||||
await collectScore(vo.taskId, vo.simpleRecordInfoVo.itemId, null, null, shopSign)
|
||||
}
|
||||
else if (vo.taskType === 3 || vo.taskType === 26) {
|
||||
} else if (vo.taskType === 3 || vo.taskType === 26) {
|
||||
if (vo.shoppingActivityVos) {
|
||||
if (vo.status === 1) {
|
||||
console.log(`准备做此任务:${vo.taskName}`)
|
||||
@@ -722,6 +742,7 @@ function shopLotteryInfo(shopSign) {
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function doShopLottery(shopSign) {
|
||||
let body = {"shopSign": shopSign}
|
||||
return new Promise(resolve => {
|
||||
@@ -769,9 +790,19 @@ function pkInfo() {
|
||||
if (data.code === 0 && data.data && data.data.bizCode === 0) {
|
||||
console.log(`\n您的好友PK助力码为${data.data.result.groupInfo.groupAssistInviteId}\n`)
|
||||
let info = data.data.result.groupPkInfo
|
||||
console.log(`当前关卡:${info.dayAward}元红包,完成进度 ${info.dayTotalValue}/${info.dayTargetSell}`)
|
||||
}
|
||||
if (info.dayAward)
|
||||
console.log(`白天关卡:${info.dayAward}元红包,完成进度 ${info.dayTotalValue}/${info.dayTargetSell}`)
|
||||
else {
|
||||
function secondToDate(result) {
|
||||
var h = Math.floor(result / 3600);
|
||||
var m = Math.floor((result / 60 % 60));
|
||||
var s = Math.floor((result % 60));
|
||||
return h + "小时" + m + "分钟" + s + "秒";
|
||||
}
|
||||
|
||||
console.log(`守护关卡:${info.guardAward}元红包,剩余守护时间:${secondToDate(info.guardTime / 5)}`)
|
||||
}
|
||||
} else {
|
||||
$.group = false
|
||||
console.log(`获取组队信息失败,请检查`)
|
||||
}
|
||||
@@ -785,6 +816,42 @@ function pkInfo() {
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function pkTaskStealDetail() {
|
||||
return new Promise(resolve => {
|
||||
$.post(taskPostUrl("nian_pk_getStealForms", {}, "nian_pk_getStealForms"), async (err, resp, data) => {
|
||||
try {
|
||||
if (err) {
|
||||
console.log(`${JSON.stringify(err)}`)
|
||||
console.log(`${$.name} API请求失败,请检查网路重试`)
|
||||
} else {
|
||||
if (safeGet(data)) {
|
||||
data = JSON.parse(data);
|
||||
if (data.code === 0 && data.data && data.data.bizCode === 0) {
|
||||
$.hasGroup = true
|
||||
await $.wait(2000)
|
||||
for (let i = 1; i < data.data.result.stealGroups.length; ++i) {
|
||||
let item = data.data.result.stealGroups[i]
|
||||
if (item.stolen === 0) {
|
||||
console.log(`去偷${item.name}的红包`)
|
||||
await pkStealGroup(item.id)
|
||||
await $.wait(2000)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
console.log(`组队尚未开启,请先去开启组队或是加入队伍!`)
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
$.logErr(e, resp)
|
||||
} finally {
|
||||
resolve();
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function pkTaskDetail() {
|
||||
return new Promise(resolve => {
|
||||
$.post(taskPostUrl("nian_pk_getTaskDetail", {}, "nian_pk_getTaskDetail"), async (err, resp, data) => {
|
||||
@@ -815,8 +882,7 @@ function pkTaskDetail() {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
console.log(`组队尚未开启,请先去开启组队或是加入队伍!`)
|
||||
}
|
||||
}
|
||||
@@ -829,6 +895,7 @@ function pkTaskDetail() {
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function pkAssignGroup(inviteId) {
|
||||
let temp = {
|
||||
"confirmFlag": 1,
|
||||
@@ -855,8 +922,7 @@ function pkAssignGroup(inviteId) {
|
||||
data = JSON.parse(data);
|
||||
if (data.data && data.data.bizMsg) {
|
||||
console.log(data.data.bizMsg)
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
console.log(`助力失败,未知错误:${JSON.stringify(data)}`)
|
||||
$.canhelp = false
|
||||
}
|
||||
@@ -870,6 +936,46 @@ function pkAssignGroup(inviteId) {
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function pkStealGroup(stealId) {
|
||||
let temp = {
|
||||
"stealId": stealId,
|
||||
}
|
||||
const extraData = {
|
||||
"jj": 6,
|
||||
"buttonid": "jmdd-react-smash_0",
|
||||
"sceneid": "homePageh5",
|
||||
"appid": '50073'
|
||||
}
|
||||
let body = {
|
||||
...encode(temp, $.secretp, extraData),
|
||||
stealId: stealId
|
||||
}
|
||||
return new Promise(resolve => {
|
||||
$.post(taskPostUrl("nian_pk_doSteal", body, "nian_pk_doSteal"), async (err, resp, data) => {
|
||||
try {
|
||||
if (err) {
|
||||
console.log(`${JSON.stringify(err)}`)
|
||||
console.log(`${$.name} API请求失败,请检查网路重试`)
|
||||
} else {
|
||||
if (safeGet(data)) {
|
||||
data = JSON.parse(data);
|
||||
if (data.data && data.data.bizMsg) {
|
||||
console.log(data.data.bizMsg)
|
||||
} else {
|
||||
console.log(`偷取失败,未知错误:${JSON.stringify(data)}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
$.logErr(e, resp)
|
||||
} finally {
|
||||
resolve();
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function killCouponList() {
|
||||
return new Promise(resolve => {
|
||||
$.post(taskPostUrl("nian_killCouponList", {}, "nian_killCouponList"), async (err, resp, data) => {
|
||||
@@ -900,6 +1006,7 @@ function killCouponList() {
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function killCoupon(skuId) {
|
||||
let temp = {
|
||||
"skuId": skuId,
|
||||
@@ -939,10 +1046,14 @@ function killCoupon(skuId) {
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function readShareCode() {
|
||||
console.log(`开始`)
|
||||
return new Promise(async resolve => {
|
||||
$.get({url: `https://code.chiang.fun/api/v1/jd/jdnian/read/${randomCount}/`, 'timeout': 10000}, (err, resp, data) => {
|
||||
$.get({
|
||||
url: `https://code.chiang.fun/api/v1/jd/jdnian/read/${randomCount}/`,
|
||||
'timeout': 10000
|
||||
}, (err, resp, data) => {
|
||||
try {
|
||||
if (err) {
|
||||
console.log(`${JSON.stringify(err)}`)
|
||||
@@ -963,10 +1074,14 @@ function readShareCode() {
|
||||
resolve()
|
||||
})
|
||||
}
|
||||
|
||||
function readShareCodePk() {
|
||||
console.log(`开始`)
|
||||
return new Promise(async resolve => {
|
||||
$.get({url: `http://jd.turinglabs.net/api/v2/jd/nian_pk/read/${randomCount}/`, 'timeout': 10000}, (err, resp, data) => {
|
||||
$.get({
|
||||
url: `http://jd.turinglabs.net/api/v2/jd/nian_pk/read/${randomCount}/`,
|
||||
'timeout': 10000
|
||||
}, (err, resp, data) => {
|
||||
try {
|
||||
if (err) {
|
||||
console.log(`${JSON.stringify(err)}`)
|
||||
@@ -987,6 +1102,7 @@ function readShareCodePk() {
|
||||
resolve()
|
||||
})
|
||||
}
|
||||
|
||||
//格式化助力码
|
||||
function shareCodesFormat() {
|
||||
return new Promise(async resolve => {
|
||||
@@ -1027,6 +1143,7 @@ function shareCodesFormatPk() {
|
||||
resolve();
|
||||
})
|
||||
}
|
||||
|
||||
function requireConfig() {
|
||||
return new Promise(resolve => {
|
||||
console.log(`开始获取${$.name}配置文件\n`);
|
||||
@@ -1087,6 +1204,7 @@ function taskPostUrl(function_id, body = {}, function_id2) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function TotalBean() {
|
||||
return new Promise(async resolve => {
|
||||
const options = {
|
||||
@@ -1127,6 +1245,7 @@ function TotalBean() {
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function safeGet(data) {
|
||||
try {
|
||||
if (typeof JSON.parse(data) == "object") {
|
||||
@@ -1138,6 +1257,7 @@ function safeGet(data) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function jsonParse(str) {
|
||||
if (typeof str == "string") {
|
||||
try {
|
||||
|
Reference in New Issue
Block a user