This commit is contained in:
可达鸭 2025-02-26 23:59:40 +08:00
parent f7f65b8a0e
commit dad3455930
3 changed files with 1085 additions and 0 deletions

692
parse/jd/jd_task_farmNew.js Normal file
View File

@ -0,0 +1,692 @@
import {Template} from '../../template.js'
export class Main extends Template {
constructor() {
super()
this.profile = {
title: '京东新农场',
help: 'main',
prompt: {
'tenWater': '1 #每天只做20次浇水任务',
'stock': "200 #保留水滴数",
'tree': '1 #如果检测到没有种树,自动选择一个商品进行种植',
'inviteJson': 'true #使用自定义助力码'
},
headers: {
'x-rp-client': "h5_1.0.0",
referer: 'https://h5.m.jd.com/pb/015686010/Bc9WX7MpCW7nW9QjZ5N3fFeJXMH/index.html'
},
tempExpire: 86400000,
readme: `如要使用自定义助力码,请在框架目录/inviter创建jd_task_plantBean.json,按需修改[{"user":"a","inviteCode":"abc"},{"user":"b","inviteCode":"efg"}]`,
turn: 4,
crontab: 3,
interval: 1000
}
}
async prepare() {
}
async middle() {
if (this.turnCount == 3) {
for (let inviter of this.inviter) {
inviter.category = 'inviteCode'
inviter.times = 35
inviter.limit = 1
this.shareCode(inviter)
}
for (let user of this.help) {
let inviteCode = await this.getTemp(user)
if (inviteCode) {
this.shareCode({
user,
inviteCode,
category: 'inviteCode',
times: 35,
limit: 1
})
}
}
}
else if (this.turnCount == 1) {
this.shareCode({
task: 'main'
})
}
}
async main(p) {
let user = p.data.user;
let context = p.context;
if (this.turnCount == 0) {
p.context.complete = true
}
if (this.turnCount == 0) {
if (this.turnCount == 0) {
let signIn = await this.curl({
'url': `https://api.m.jd.com/client.action`,
'form': `functionId=dongDongFarmSignIn&body={"linkId":"LCH-fV7hSnChB-6i5f4ayw"}&t=1740546479554&appid=activities_platform&client=ios&clientVersion=15.0.20&&build=169736&screen=390*844&networkType=wifi&d_brand=iPhone&d_model=iPhone13,3&lang=zh_CN&osVersion=15.1.1&partner=-1&cthr=1`,
user, algo: {
appId: '65f9d'
}
}
)
if (this.haskey(signIn, 'success')) {
p.log('签到成功')
}
else {
p.log(this.haskey(signIn, 'errMsg') || '签到失败')
}
}
let farmHome = await this.curl({
'url': `https://api.m.jd.com/client.action`,
'form': `appid=signed_wh5&body={"version":9,"channelParam":"1"}&client=apple&clientVersion=15.0.11&functionId=farm_home`,
user,
algo: {
appId: 'c57f6',
expire: {
code: -30001
}
}
}
)
if (!farmHome) {
return
}
let home = this.haskey(farmHome, 'data.result') || {}
let bizCode = farmHome.data.bizCode
let treeFullStage = home.treeFullStage
if (bizCode == -1001) {
p.err('活动太火爆了, 请稍后再试~')
return
}
if (treeFullStage == 5) {
this.msg(`商品可兑换`)
}
if (treeFullStage == 5 && this.profile.tree) {
p.log('没有种树')
let board = await this.curl({
'url': `https://api.m.jd.com/client.action`,
'form': `appid=signed_wh5&body={"version":10,"channelParam":"1","boardType":"level"}&client=apple&clientVersion=15.0.11&functionId=farm_tree_board`,
user,
}
)
try {
let skus = board.data.result.farmTreeLevels[2].farmLevelTrees[0]
p.log("正在种树,选择商品:", skus.skuName)
await this.curl({
'url': `https://api.m.jd.com/client.action`,
'form': `appid=signed_wh5&body=${this.dumps({
"version": 10,
"channelParam": "1",
"uid": skus.uid,
"type": "plantSku"
})}&client=apple&clientVersion=15.0.11&functionId=farm_plant_tree`,
user,
}
)
if (this.haskey(tree, 'data.success')) {
farmHome = await this.curl({
'url': `https://api.m.jd.com/client.action`,
'form': `appid=signed_wh5&body={"version":10,"channelParam":"1"}&client=apple&clientVersion=15.0.11&functionId=farm_home`,
user,
algo: {
appId: 'c57f6',
}
}
)
if (!farmHome) {
return
}
home = this.haskey(farmHome, 'data.result') || {}
}
else {
p.log("种树失败")
return
}
} catch (e) {
console.log(e)
p.log("种树失败2")
}
}
let inviteCode = home.farmHomeShare.inviteCode
let bottleWater = home.bottleWater
p.log("当前进度:", home.waterTips)
let taskList = await this.curl({
'url': `https://api.m.jd.com/client.action`,
'form': `appid=signed_wh5&client=apple&clientVersion=15.0.15&screen=390*812&wqDefault=false&build=169720&osVersion=15.1.1&networkType=wifi&d_brand=iPhone&d_model=iPhone13,3&partner=&t=1740322939720&body={"version":10,"channelParam":"1","channel":0,"pushSwitch":false,"showSubscribe":true,"babelChannel":"ttt6","lbsSwitch":false}&functionId=farm_task_list&rfs=0000`,
user
}
)
let waterConut = 0
let status = 1
for (let i of this.haskey(taskList, 'data.result.taskList')) {
if (i.mainTitle.includes("助力")) {
}
else if (i.mainTitle.includes("通知")) {
}
else if (i.mainTitle.includes("下单")) {
}
else if (i.mainTitle.includes("浇水")) {
if (i.taskDoTimes != i.taskLimitTimes) {
let isOk = 1
status = 0
for (let n of Array(parseInt((i.taskLimitTimes - i.taskDoTimes) / 5))) {
let water = await this.curl({
'url': `https://api.m.jd.com/client.action`,
'form': `appid=signed_wh5&client=apple&clientVersion=15.0.20&screen=390*812&wqDefault=false&build=169736&osVersion=15.1.1&networkType=wifi&d_brand=iPhone&d_model=iPhone13,3&partner=&openudid=674ce0d97511f5ed054c3dc0af093b3b245ab68d&t=1740546580076&body={"version":10,"channelParam":"1","waterType":2,"babelChannel":"ttt6","lbsSwitch":false}&functionId=farm_water`,
user,
algo: {
appId: '28981'
}
}
)
let bottleWater = this.haskey(water, 'data.result.bottleWater')
if (bottleWater) {
p.log("浇水中,剩余水滴:", bottleWater)
if (bottleWater<10) {
isOk = 0
break
}
await this.wait(1000)
}
else {
p.log('浇水失败:', this.haskey(water, 'data.bizMsg'))
isOk = 0
status = 0
break
}
}
for (let n of Array(((i.taskLimitTimes - i.taskDoTimes) % 5))) {
let water = await this.curl({
'url': `https://api.m.jd.com/client.action`,
'form': `appid=signed_wh5&client=apple&clientVersion=15.0.20&screen=390*812&wqDefault=false&build=169736&osVersion=15.1.1&networkType=wifi&d_brand=iPhone&d_model=iPhone13,3&partner=&openudid=674ce0d97511f5ed054c3dc0af093b3b245ab68d&t=1740546580076&body={"version":10,"channelParam":"1","waterType":1,"babelChannel":"ttt6","lbsSwitch":false}&functionId=farm_water`,
user,
algo: {
appId: '28981'
}
}
)
let bottleWater = this.haskey(water, 'data.result.bottleWater')
if (bottleWater) {
p.log("浇水中,剩余水滴:", bottleWater)
if (bottleWater<10) {
isOk = 0
break
}
await this.wait(1000)
}
else {
p.log('浇水失败:', this.haskey(water, 'data.bizMsg'))
isOk = 0
break
}
}
if (isOk) {
let award = await this.curl({
'url': `https://api.m.jd.com/client.action`,
'form': `appid=signed_wh5&client=apple&clientVersion=15.0.15&screen=390*812&wqDefault=false&build=169720&osVersion=15.1.1&networkType=wifi&d_brand=iPhone&d_model=iPhone13,3&partner=&openudid=674ce0d97511f5ed054c3dc0af093b3b245ab68d&t=1740323796058&body={"version":10,"channelParam":"1","taskType":"${i.taskType}","taskId":${i.taskId},"channel":0}&functionId=farm_task_receive_award`,
user,
algo: {'appId': '33e0f'},
}
)
if (this.haskey(award, 'data.result.taskAward')) {
status = 1
// p.log("获得奖励:", award.data.result.taskAward)
for (let kk of award.data.result.taskAward) {
if (this.haskey(kk, 'awardType', 1)) {
bottleWater += kk.awardValue
p.log(`获得水滴:`, kk.awardValue)
}
}
}
else {
status = 0
p.err("获取失败:", this.haskey(award, 'data.bizMsg'))
}
}
}
}
else if (i.taskDoTimes != i.taskLimitTimes) {
status = 0
p.log("正在运行:", i.mainTitle)
let itemId = i.taskSourceUrl
let taskDetaiList = []
if (itemId) {
taskDetaiList.push({'itemId': itemId})
}
else {
let detail = await await this.curl({
'url': `https://api.m.jd.com/client.action`,
'form': `appid=signed_wh5&client=apple&clientVersion=15.0.15&screen=390*812&wqDefault=false&build=169720&osVersion=15.1.1&networkType=wifi&d_brand=iPhone&d_model=iPhone13,3&partner=&body={"version":10,"channelParam":"1","taskType":"${i.taskType}","taskId":${i.taskId},"channel":0}&functionId=farm_task_detail`,
user
}
)
if (this.haskey(detail, 'data.result.taskDetaiList')) {
taskDetaiList = detail.data.result.taskDetaiList
}
}
for (let kk of taskDetaiList) {
if (i.timePeriod) {
p.log("等待:", i.timePeriod, 's')
await this.wait(i.timePeriod * 1000)
}
let doTask = await this.curl({
'url': `https://api.m.jd.com/client.action`,
'form': `appid=signed_wh5&client=apple&clientVersion=15.0.15&screen=390*812&wqDefault=false&build=169720&osVersion=15.1.1&networkType=wifi&d_brand=iPhone&d_model=iPhone13,3&partner=&openudid=674ce0d97511f5ed054c3dc0af093b3b245ab68d&t=1740323572547&body={"version":10,"channelParam":"1","taskType":"${i.taskType}","taskId":${i.taskId},"taskInsert":${kk.taskInsert || false},"itemId":"${new Buffer.from(kk.itemId).toString('base64')}","channel":0}&functionId=farm_do_task`,
user,
algo: {
appId: '28981'
}
}
)
if (this.haskey(doTask, 'data.success')) {
let award = await this.curl({
'url': `https://api.m.jd.com/client.action`,
'form': `appid=signed_wh5&client=apple&clientVersion=15.0.15&screen=390*812&wqDefault=false&build=169720&osVersion=15.1.1&networkType=wifi&d_brand=iPhone&d_model=iPhone13,3&partner=&openudid=674ce0d97511f5ed054c3dc0af093b3b245ab68d&t=1740323796058&body={"version":10,"channelParam":"1","taskType":"${i.taskType}","taskId":${i.taskId},"channel":0}&functionId=farm_task_receive_award`,
user, algo: {'appId': '33e0f'},
}
)
if (this.haskey(award, 'data.result.taskAward')) {
status = 1
// p.log("获得奖励:", award.data.result.taskAward)
for (let kk of award.data.result.taskAward) {
if (this.haskey(kk, 'awardType', 1)) {
bottleWater += kk.awardValue
p.log(`获得水滴:`, kk.awardValue)
}
}
}
else {
p.err("获取失败:", this.haskey(award, 'data.bizMsg'))
}
}
else {
p.err("任务失败:", this.haskey(doTask, 'data.bizMsg'))
}
}
}
else if (i.taskStatus == 2) {
let award = await this.curl({
'url': `https://api.m.jd.com/client.action`,
'form': `appid=signed_wh5&client=apple&clientVersion=15.0.15&screen=390*812&wqDefault=false&build=169720&osVersion=15.1.1&networkType=wifi&d_brand=iPhone&d_model=iPhone13,3&partner=&openudid=674ce0d97511f5ed054c3dc0af093b3b245ab68d&t=1740323796058&body={"version":10,"channelParam":"1","taskType":"${i.taskType}","taskId":${i.taskId},"channel":0}&functionId=farm_task_receive_award`,
user,
algo: {'appId': '33e0f'},
}
)
if (this.haskey(award, 'data.result.taskAward')) {
status = 1
// p.log("获得奖励:", award.data.result.taskAward)
for (let kk of award.data.result.taskAward) {
if (this.haskey(kk, 'awardType', 1)) {
bottleWater += kk.awardValue
p.log(`获得水滴:`, kk.awardValue)
}
}
}
else {
status = 0
p.err("获取失败:", this.haskey(award, 'data.bizMsg'))
}
await this.wait(4000)
}
else {
p.log("任务已完成:", i.mainTitle)
status = 1
}
}
let s1 = 1
if (this.profile.tenWater) {
p.log("跳过浇水: 检测到配置了tenWater参数,跳过浇水")
}
else {
let stock = parseInt(this.profile.stock || 200)
p.log("剩余水滴:", bottleWater, '保留水滴数:', stock)
if (bottleWater>stock) {
while (true) {
s1 = 0
let water = await this.curl({
'url': `https://api.m.jd.com/client.action`,
'form':
`appid=signed_wh5&client=apple&clientVersion=15.0.20&screen=390*812&wqDefault=false&build=169736&osVersion=15.1.1&networkType=wifi&d_brand=iPhone&d_model=iPhone13,3&partner=&openudid=674ce0d97511f5ed054c3dc0af093b3b245ab68d&t=1740546580076&body={"version":10,"channelParam":"1","waterType":2,"babelChannel":"ttt6","lbsSwitch":false}&functionId=farm_water`,
user,
algo:
{
appId: '28981'
}
}
)
let bottleWater = this.haskey(water, 'data.result.bottleWater')
if (bottleWater) {
s1 = 1
p.log("浇水中,剩余水滴:", bottleWater)
if (bottleWater<stock) {
break
}
await this.wait(1000)
}
else {
s1 = 0
p.log('浇水失败:', this.haskey(water, 'data.bizMsg'))
break
}
}
}
}
if (status && s1) {
p.info.work = true
}
}
else if (this.turnCount == 3) {
if (context.user == user) {
p.log("不能助力自己")
}
else {
let help = await this.curl({
'url': `https://api.m.jd.com/client.action`,
'form': `appid=signed_wh5&body=${this.dumps({
"version": 9,
"inviteCode": context.inviteCode,
"shareChannel": "ttt7",
"assistChannel": ""
})}&client=apple&clientVersion=15.0.11&functionId=farm_assist`,
user,
algo: {
appId: '28981',
expire: {
"code": -30001,
}
}
}
)
let bizCode = this.haskey(help, 'data.bizCode')
if (bizCode == 5003) {
p.log("今天已经帮过TA啦")
p.info.help = true
}
else if (bizCode == 5004) {
p.info.complete = true
p.log("今天不能再助力啦")
}
else if (bizCode == 5005) {
p.log("助力满了,跳过助力")
p.context.finish = true
}
else if (bizCode == -1001) {
p.log("活动火爆")
p.info.jump = true
}
else if (this.haskey(help, 'data.success')) {
p.info.help = true
p.log(`助力成功: ${context.user || context.inviteCode}`)
}
else {
p.log(this.haskey(help, 'data') || help)
}
await this.wait(1000)
}
}
else if (this.turnCount == 2) {
p.lottery = function(lottery) {
let data = lottery.data
let prizeType = data.prizeType || data.rewardType
let amount = data.amount || data.rewardValue
if (prizeType == 0) {
p.log('没抽到奖品')
}
else if (prizeType == 1) {
p.log('优惠券:', data.codeDesc || data.prizeCode, data.prizeDesc || data.prizeName)
}
else if (prizeType == 2) {
p.draw(`红包: ${amount}`)
}
else if (prizeType == 3) {
p.draw(`京豆: ${amount}`)
}
else if (prizeType == 17) {
p.log('谢谢参与')
}
else if (prizeType == 18) {
p.log(`水滴: ${amount}`)
}
else if (prizeType == 22) {
p.draw(`超市卡: ${amount}`)
}
else if (prizeType) {
p.draw(`抽到类型: ${prizeType} ${data.codeDesc || data.prizeCode} ${data.prizeDesc || data.prizeName}`)
}
else {
p.log("什么也没有")
}
}
let linkId = "VssYBUKJOen7HZXpC8dRFA"
let apTask = await this.curl({
'url': `https://api.m.jd.com/api`,
'form': `functionId=apTaskList&body={"linkId":"${linkId}","channel":4}&t=1738479849113&appid=activities_platform&client=ios&clientVersion=15.0.11`,
user,
}
)
if (!apTask) {
p.err("没有获取到转盘数据...")
return
}
let isOk = 1
for (let i of this.haskey(apTask, 'data')) {
if (i.taskLimitTimes == i.taskDoTimes) {
p.log("任务已完成:", i.taskShowTitle)
}
else {
isOk = 0
p.log(`正在运行:`, i.taskTitle, i.taskType)
switch (i.taskType) {
case 'SIGN':
let sign = await this.curl({
'url': `https://api.m.jd.com/api?functionId=apsDoTask`,
'form': `functionId=apsDoTask&body={"taskType":"${i.taskType}","taskId":${i.id},"channel":4,"checkVersion":true,"linkId":"${linkId}","pipeExt":${this.dumps(i.pipeExt)}}&t=1738480459228&appid=activities_platform&client=ios&clientVersion=15.0.11&loginType=2&loginWQBiz=wegame`,
algo: {
appId: '54ed7'
},
user
}
)
if (this.haskey(sign, 'data.finished')) {
p.log("任务完成...")
}
case 'ORDER_MARK':
case 'SUBSCRIBE_WITH_RECEIVE':
break
case 'BROWSE_CHANNEL':
case 'BROWSE_PRODUCT':
case 'FOLLOW_SHOP':
if (i.taskSourceUrl) {
var doTask = await this.curl({
'url': `https://api.m.jd.com/api?functionId=apsDoTask`,
'form': `functionId=apsDoTask&body={"taskType":"${i.taskType}","taskId":${i.id},"channel":4,"checkVersion":true,"linkId":"${linkId}","pipeExt":${this.dumps(i.pipeExt)},"taskInsert":false,"itemId":"${encodeURIComponent(i.taskSourceUrl)}"}&t=1738480908001&appid=activities_platform&client=ios&clientVersion=15.0.11`,
algo: {'appId': '54ed7'},
user
}
)
if (this.haskey(doTask, 'success')) {
p.log("任务完成")
}
else {
p.log("任务失败:", this.haskey(doTask, 'errMsg') || doTask)
}
if (i.canDrawAwardNum) {
let award = await this.curl({
'url': `https://api.m.jd.com/api?functionId=apTaskDrawAward`,
'form': `functionId=apTaskDrawAward&body={"taskType":"${i.taskType}","taskId":${i.id},"channel":4,"checkVersion":true,"linkId":"${linkId}"}&t=1739360342034&appid=activities_platform&client=ios&clientVersion=15.0.11`,
user,
algo: {
appId: 'f0f3f'
}
}
)
if (this.haskey(award, 'data')) {
p.log(`抽奖次数+1`)
}
else {
p.err("抽奖领取失败")
}
}
}
else {
let apTaskDetail = await this.curl({
'url': `https://api.m.jd.com/api?functionId=apTaskDetail`,
'form': `functionId=apTaskDetail&body={"taskType":"${i.taskType}","taskId":${i.id},"channel":4,"checkVersion":true,"linkId":"${linkId}","pipeExt":${this.dumps(i.pipeExt)}}&t=1738480907628&appid=activities_platform&client=ios&clientVersion=15.0.11&`,
user
}
)
let taskItemList = this.haskey(apTaskDetail, 'data.taskItemList')
if (taskItemList) {
for (let j in Array.from(Array(i.taskLimitTimes - i.taskDoTimes), (_val, index) => index)) {
if (taskItemList[j] && taskItemList[j].itemId) {
if (i.timeLimitPeriod) {
let start = await this.curl({
'url': `https://api.m.jd.com/api?functionId=apStartTaskTime`,
'form': `functionId=apStartTaskTime&body={"taskType":"${i.taskType}","taskId":${i.id},"channel":4,"checkVersion":true,"linkId":"${linkId}","pipeExt":${this.dumps({
...i.pipeExt, ...taskItemList[j].pipeExt
})},"taskInsert":false,"itemId":"${encodeURIComponent(taskItemList[j].itemId)}"}&t=1738483884373&appid=activity_platform_se&client=ios&clientVersion=15.0.11&platform=3&loginType=2&loginWQBiz=wegame`,
user,
algo: {
appId: 'acb1e'
}
}
)
if (this.haskey(start, 'code', 1)) {
p.log("失败了")
break
}
p.log(`等待${i.timeLimitPeriod}秒...`)
await this.wait(i.timeLimitPeriod * 1000)
var doTask = await this.curl({
'url': `https://api.m.jd.com/api?functionId=apDoLimitTimeTask`,
'form': `functionId=apDoLimitTimeTask&body={"linkId":"${linkId}"}&t=1738483906048&appid=activities_platform&client=ios&clientVersion=15.0.11&platform=3&loginType=2&loginWQBiz=wegame`,
user,
algo: {
appId: 'ebecc'
}
})
}
else {
var doTask = await this.curl({
'url': `https://api.m.jd.com/api?functionId=apsDoTask`,
'form': `functionId=apsDoTask&body={"taskType":"${i.taskType}","taskId":${i.id},"channel":4,"checkVersion":true,"linkId":"${linkId}","pipeExt":${this.dumps({
...i.pipeExt, ...taskItemList[j].pipeExt
})},"taskInsert":false,"itemId":"${encodeURIComponent(taskItemList[j].itemId)}"}&t=1738480908001&appid=activities_platform&client=ios&clientVersion=15.0.11`,
algo: {'appId': '54ed7'},
user
}
)
}
if (this.haskey(doTask, 'success')) {
p.log("任务完成", `[${parseInt(j) + 1}/${i.taskLimitTimes - i.taskDoTimes}]`)
}
else {
p.log("任务失败:", this.haskey(doTask, 'errMsg') || doTask)
}
if (i.canDrawAwardNum) {
let award = await this.curl({
'url': `https://api.m.jd.com/api?functionId=apTaskDrawAward`,
'form': `functionId=apTaskDrawAward&body={"taskType":"${i.taskType}","taskId":${i.id},"channel":4,"checkVersion":true,"linkId":"${linkId}"}&t=1739360342034&appid=activities_platform&client=ios&clientVersion=15.0.11`,
user,
algo: {
appId: 'f0f3f'
}
}
)
if (this.haskey(award, 'data')) {
p.log(`抽奖次数+1`)
}
else {
p.err("抽奖领取失败")
}
}
await this.wait(3000)
}
}
}
}
break
}
}
}
let home = await this.curl({
'url': `https://api.m.jd.com/api`,
'form': `functionId=wheelsHome&body={"linkId":"${linkId}","inviteActId":"","inviterEncryptPin":"","inviteCode":""}&t=1739590571889&appid=activities_platform&client=ios&clientVersion=15.0.15&cthr=1&loginType=&loginWQBiz=wegame`,
user,
algo: {'appId': 'c06b7',},
}
)
let drawNum = this.haskey(home, 'data.lotteryChances') || 0
p.log("可抽奖次数:", drawNum)
for (let i of Array(drawNum)) {
try {
let lottery = await this.curl({
url: 'https://api.m.jd.com/api',
form: `functionId=wheelsLottery&body={"linkId":"${linkId}"}&t=1739590600753&appid=activities_platform&client=ios&clientVersion=15.0.15&cthr=1&loginType=&loginWQBiz=wegame`,
algo: {
'appId': 'bd6c8',
expire: {
code: 1000
},
status: true
},
referer: `https://lotterydraw-new.jd.com/?id=${linkId}`,
user
})
if (this.haskey(lottery, 'code', 4000)) {
p.log('抽奖机会用完啦')
break
}
if (this.haskey(lottery, 'data')) {
drawNum--
p.lottery(lottery)
}
else {
p.err("抽奖错误")
break
}
await this.wait(2000)
} catch (e) {
}
}
if (isOk && drawNum == 0) {
p.info.work = true
}
}
else if (this.turnCount == 1) {
let helpInfo = await this.curl({
'url': `https://api.m.jd.com/client.action`,
'form': `appid=signed_wh5&client=apple&clientVersion=15.0.11&screen=820*1110&wqDefault=false&build=169714&osVersion=16.6&networkType=wifi&d_brand=iPhone&d_model=iPad13,18&partner=&t=1740556273015&body={"version":10,"channelParam":"1"}&functionId=farm_assist_init_info`,
user
}
)
if (!helpInfo) {
p.err("没有获取到助力数据")
}
else {
p.log("正在领取助力奖励")
}
for (let i of this.haskey(helpInfo, 'data.result.assistStageList')) {
if (i.stageStaus == 2) {
let award = await this.curl({
'url': `https://api.m.jd.com/client.action`,
'form': `appid=signed_wh5&client=apple&clientVersion=15.0.11&screen=820*1110&wqDefault=false&build=169714&osVersion=16.6&networkType=wifi&d_brand=iPhone&d_model=iPad13,18&partner=&t=1740556273015&body={"version":10,"channelParam":"1"}&functionId=farm_assist_receive_award`,
user,
algo: {'appId': 'c4332'},
}
)
if (this.haskey(award, 'data.success')) {
p.log("获取助力奖励成功:", award.data.result.amount)
}
else {
p.log("获取助力奖励失败")
}
await this.wait(4000)
}
}
}
}
}

View File

@ -0,0 +1,105 @@
import {Template} from '../../template.js'
export class Main extends Template {
constructor() {
super()
this.profile = {
title: '京东关注店铺领京豆',
sync: 1,
display: true,
tempExpire: 8640000,
verify: 1,
crontab: `${this.rand(5, 10)},${this.rand(35, 40)} 9-23 * * *`
}
}
async prepare() {
}
async main(p) {
let user = p.data.user;
let context = p.context;
let shopId = context.shopId
let venderId = context.venderId
let headers = context.headers || {}
let algo = context.algo || {range: 6}
let body = {
"source": "app-shop",
"displayWidth": "1098.000000",
"sourceRpc": "shop_app_home_home",
venderId,
shopId
}
let activityId = context.activityId || await this.getTemp(context.venderId)
let status = 0
if (!activityId) {
var s = await this.curl({
'url': `https://api.m.jd.com/client.action?functionId=getShopHomeActivityInfo`,
'form': `avifSupport=0&body=${this.dumps(body)}&build=169736&client=apple&clientVersion=15.0.20&d_brand=apple`,
user,
algo: {
sign: true
}
}
)
activityId = this.haskey(s, 'result.giftBagDataResult.activityId') || this.haskey(s, 'result.activityId')
if (activityId) {
await this.setTemp(venderId, activityId)
}
}
if (activityId) {
let body2 = {
"follow": 0,
"activityId": activityId.toString(),
"sourceRpc": "shop_app_home_window",
shopId: shopId.toString(),
venderId: venderId.toString()
}
let drawShopGift = await this.curl({
'url': 'https://api.m.jd.com/client.action?g_ty=ls&g_tk=518274330',
'form': `functionId=whx_drawShopGift&body=${this.dumps(body2)}&t=1670345201521&appid=wx_mini_app&clientVersion=11.0.0&client=wh5&uuid=0040a1e96b5d357ae888a0f18bb23968`,
user,
headers: {
'referer': 'https://servicewechat.com/wx91d27dbf599dff74/747/page-frame.html',
'user-agnet': 'wechat'
}
})
if (drawShopGift) {
status = 1
p.log("正在关注", this.haskey(drawShopGift, 'result.giftDesc') || '没有领取到')
for (let g of this.haskey(drawShopGift, 'result.alreadyReceivedGifts') || []) {
if (g.prizeType == 4) {
this.msg(`京豆: ${g.redWord}`)
}
}
await this.curl({
'url': 'https://api.m.jd.com/client.action?g_ty=ls&g_tk=518274330',
'form': `functionId=whx_followShop&body={"shopId":"${context.shopId}","follow":"false"}&t=1670345201521&appid=wx_mini_app&clientVersion=11.0.0&client=wh5&uuid=0040a1e96b5d357ae888a0f18bb23968`,
user,
algo,
headers: {
'referer': 'https://servicewechat.com/wx91d27dbf599dff74/747/page-frame.html',
'user-aget': 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_1_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.28(0x18001c2e) NetType/WIFI Language/zh_CN'
}
})
}
}
else {
p.log("没获取到...")
let unfollow = await this.curl({
'url': 'https://api.m.jd.com/client.action?g_ty=ls&g_tk=518274330',
'form': `functionId=whx_followShop&body={"shopId":"${context.shopId}","follow":"false"}&t=1670345201521&appid=wx_mini_app&clientVersion=11.0.0&client=wh5&uuid=0040a1e96b5d357ae888a0f18bb23968`,
user,
algo,
headers: {
'referer': 'https://servicewechat.com/wx91d27dbf599dff74/747/page-frame.html',
'user-aget': 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_1_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.28(0x18001c2e) NetType/WIFI Language/zh_CN'
}
})
}
if (status) {
p.info.work = true
}
}
}

288
parse/jd/jd_task_videoHb.js Normal file
View File

@ -0,0 +1,288 @@
import {Template} from '../../template.js'
export class Main extends Template {
constructor() {
super()
this.profile = {
title: '京东视频红包',
interval: 3000,
round: 4,
verify: 2,
crontab: 3
}
}
async prepare() {
let html = await this.curl({
'url': `https://pro.m.jd.com/mall/active/4VRY8pVY1KRhYkVPgywV5Qa9Rovp/index.html?tttparams=i2c4MeyJnTGF0IjoiMjMuOTM5MTkyIiwidW5fYXJlYSI6IjE2XzEzNDFfMTM0N180NDc1MCIsImRMYXQiOiIiLCJwcnN0YXRlIjoiMCIsImFkZHJlc3NJZCI6Ijc2NTc3NTQ4ODIiLCJsYXQiOiIiLCJwb3NMYXQiOiIyMy45MzkxOTIiLCJwb3NMbmciOiIxMTcuNjExMjMiLCJncHNfYXJlYSI6IjBfMF8wXzAiLCJsbmciOiIiLCJ1ZW1wcyI6IjAtMC0yIiwiZ0xuZyI6IjExNy42MTEyMyIsIm1vZGVsIjoiaVBob25lMTMsMyIsImRMbmciOiIifQ5%3D%3D`,
user: this.tester()
}
)
// console.log(html)
let code = this.matchAll(/"scanTaskCode(?:_\d+)*"\s*:\s*"(\w+)"/g, html)
if (code) {
this.code = code.map(d => {
return {
"type": "20",
"assignmentId": d,
"scanTaskCodeIndex": "2",
"activitySource": "1",
"realClient": "ios",
"taskRewardType": "1"
}
})
// for (let d of this.matchAll(/"signInTaskCode(?:_\d+)*"\s*:\s*"(\w+)"/g, html)) {
// this.code.push({
// "type": "21",
// "assignmentId": d,
// "activitySource": "1", "realClient": "ios", "floatType": "1"
// })
// }
for (let d of this.matchAll(/"liveFollowTaskCode(?:_\d+)*"\s*:\s*"(\w+)"/g, html)) {
this.code.push({
"type": "24",
"assignmentId": d,
"activitySource": "1",
"realClient": "ios",
"floatType": "1",
"subPlayType": "-100"
})
}
for (let d of this.matchAll(/"secondsTaskCode(?:_\d+)*"\s*:\s*"(\w+)"/g, html)) {
this.code.push({
"type": "25",
"assignmentId": d,
"activitySource": "1",
"realClient": "ios",
"floatType": "1",
"subPlayType": "-100"
})
}
for (let d of this.matchAll(/"fissionTaskCode(?:_\d+)*"\s*:\s*"(\w+)"/g, html)) {
this.code.push({
"type": "29", "assignmentId": d, "activitySource": "1", "realClient": "ios", "floatType": "1"
})
}
}
}
async main(p) {
let user = p.data.user;
let context = p.context;
let status = 1
p.info.list = p.info.list || []
if (context.round == 0) {
let info = await this.curl({
'url': `https://api.m.jd.com/videoRedPacketHomePage_info`,
'form': `functionId=videoRedPacketHomePage_info&appid=video-redbag-h5&body=${this.dumps(this.code)}&client=wh5&t=1699156906324&clientVersion=12.3.1`,
user,
algo: {
appId: 'd51cc',
expire: {
busiCode: '3'
}
}
}
)
let sign = await this.curl({
'url': `https://api.m.jd.com/videoHb_sign`,
'form': `functionId=videoHb_sign&appid=video-redbag-h5&body={}&client=wh5&t=1704344655057&clientVersion=12.3.1`,
user,
algo: {appId: '2023f'}
}
)
for (let i of this.haskey(info, 'data')) {
if (i.status == 2) {
p.log("已完成:", i.assignmentName)
}
else {
status = 0
p.log("正在运行:", i.assignmentName)
let accept = await this.curl({
'url': `https://api.m.jd.com/videoRedPacketHomePage_accept`,
'form': `functionId=videoRedPacketHomePage_accept&appid=video-redbag-h5&body={"type":"20","assignmentId":"${i.assignmentId}","itemId":"${i.itemId}"}&client=wh5&t=1699157368652&clientVersion=12.3.1`,
user,
algo: {appId: '57a9c'}
}
)
if (this.haskey(accept, 'success')) {
if (i.waitDuration) {
p.log("预等待:", i.waitDuration)
}
p.info.list.push({
"assignmentId": i.assignmentId, "itemId": i.itemId,
'time': new Date().getTime() / 1000 + parseInt(i.waitDuration),
'title': i.assignmentName
})
await this.wait(1000)
}
else {
if (this.haskey(accept, 'busiCode', '8014')) {
p.log('活动太火爆,等会再来吧~')
p.info.jump = 1
return
}
p.log(accept)
}
}
}
if (status) {
p.info.work = true
}
}
else if (context.round == 1) {
for (let i of p.info.list) {
let wait = i.time - new Date().getTime() / 1000
p.log("正在获取:", i.title)
if (wait>0) {
p.log("正在等待:", wait)
await this.wait(wait * 1000)
}
let done = await this.curl({
'url': `https://api.m.jd.com/videoRedPacketHomePage_done`,
'form': `functionId=videoRedPacketHomePage_done&appid=video-redbag-h5&body={"type":"20","assignmentId":"${i.assignmentId}","itemId":"${i.itemId}"}&client=wh5&t=1699157368652&clientVersion=12.3.1`,
user,
algo: {appId: '12bf2'}
}
)
if (this.haskey(done, 'success')) {
p.log(done.data.rewardMsg)
status = 1
}
else {
status = 0
p.log(done)
}
await this.wait(1000)
}
if (p.info.list.length && status) {
p.info.work = true
}
else {
p.log("没有可执行的任务")
p.info.work = true
}
}
else if (context.round == 2) {
let exchange = await this.curl({
'url': `https://api.m.jd.com/videoRedPacketHomePage_exchangeCash`,
'form': `functionId=videoRedPacketHomePage_exchangeCash&appid=video-redbag-h5&body={}&client=wh5&t=1699157963924&clientVersion=12.3.1`,
user,
algo: {appId: "8c80c"}
}
)
if (this.haskey(exchange, 'success')) {
p.log('金币兑换成功')
}
let home = await this.curl({
'url': `https://api.m.jd.com/videoHbCw_homePage`,
'form': `functionId=videoHbCw_homePage&appid=video-redbag-h5&body=%7B%7D&client=wh5&t=1699156595761&clientVersion=12.3.1`,
user,
algo: {appId: '7f9c4'}
}
)
if (this.haskey(home, 'success')) {
let data = this.haskey(home, 'data')
let amount = data.cashBalanceFloor.amount
p.log('现有奖金:', amount)
let status = 1
for (let i of data.cwCardFloor.cards.reverse()) {
if (i.topDesc == '已连续来访0天' && i.amount == 0.88) {
let init = await this.curl(this.modules.jdUrl.app('videoHb_newCustomerHbLayer', {}, 'post', user)
)
p.log(init)
if (this.haskey(init, 'data.popAlertInfo.hbAmount')) {
p.log("初始化成功,获得:", init.data.popAlertInfo.hbAmount)
}
}
if (i.cwStatus == 0) {
p.log("正在提款至京东余额:", i.amountStr)
let cash = await this.curl({
'url': `https://api.m.jd.com/videoHbCw_doCw`,
'form': `functionId=videoHbCw_doCw&appid=video-redbag-h5&body={"bizTraceId":"${i.bizTraceId}","amount":${i.amountStr}}&client=wh5&t=1699156604242&clientVersion=12.3.1`,
user,
algo: {appId: 'c5b74'}
}
)
if (this.haskey(cash, 'success')) {
p.msg(`提款成功: ${i.amountStr}`)
}
else {
status = 0
p.log(cash)
}
await this.wait(5000)
}
else if (i.cwStatus == 1) {
status = 1
}
}
if (status) {
p.info.work = true
}
}
else {
p.log(home)
}
}
else {
var lists = ['740963579',
'419744560', '419744560', '419744560', '419744560', '419744560', '590181549', '626885205'
]
if (!context.list) {
let videoDetail = await this.curl({
'url': `https://api.m.jd.com/video_videoDetail?g_ty=ls&g_tk=2107606655`,
'form': `appid=mini_content&body={"id":"711886908","offset":"5_41","playtype":"9999","modeid":"1","style":"11","projectid":"100967","adid":"","pi":"","mpplaytype":"11","extParam":"{\\"activityId\\":\\"BPC-20240513-0019\\"}","skuId":""}&client=wxapp&clientVersion=10.14.200&functionId=video_videoDetail`,
user,
algo: {
appId: 'd734e'
}
}
)
if (this.haskey(videoDetail, 'list')) {
lists = this.column(videoDetail.list, 'id')
context.list = lists
}
}
else {
lists = context.list
}
let jsLable = [
"Q/g3kHW+Z0OYavMQtYHrNA7LYwslHVatolqZKq0h/nbpuOtrMZKpsSx6AY1fvblBiQLM/X3mONW05GImZM/KBH7CINMd/iXLDxurzYcNmVVPsPYyuq6ZgPn/28UD24t+rY08yVLZu6yhlhVUjWCjkg==", "4Nc6P/zwB+60A2aTvNSx9w7LYwslHVatolqZKq0h/nbpuOtrMZKpsSx6AY1fvblBiQLM/X3mONW05GImZM/KBH7CINMd/iXLDxurzYcNmVVPsPYyuq6ZgPn/28UD24t+rY08yVLZu6yhlhVUjWCjkg==", "gF1/9jdFDopw6w6LGhzbeQ7LYwslHVatolqZKq0h/nbpuOtrMZKpsSx6AY1fvblBiQLM/X3mONW05GImZM/KBH7CINMd/iXLDxurzYcNmVVPsPYyuq6ZgPn/28UD24t+rY08yVLZu6yhlhVUjWCjkg==", "27ulfi2CH8N0JwjosX1ulg7LYwslHVatolqZKq0h/nbpuOtrMZKpsSx6AY1fvblBiQLM/X3mONW05GImZM/KBH7CINMd/iXLDxurzYcNmVVPsPYyuq6ZgPn/28UD24t+rY08yVLZu6yhlhVUjWCjkg==", "zM36K2DPt0ARtmy6GComUQ7LYwslHVatolqZKq0h/nbpuOtrMZKpsSx6AY1fvblBiQLM/X3mONW05GImZM/KBH7CINMd/iXLDxurzYcNmVVPsPYyuq6ZgPn/28UD24t+rY08yVLZu6yhlhVUjWCjkg==",
"VStpTFFcPyNVMZXHhdgYdQ7LYwslHVatolqZKq0h/nbpuOtrMZKpsSx6AY1fvblBdFtCn/2sVW4/51duXMv5DX7CINMd/iXLDxurzYcNmVVPsPYyuq6ZgPn/28UD24t+rY08yVLZu6yhlhVUjWCjkg==",
"t6XttZjgZni/znFvFXvlUg7LYwslHVatolqZKq0h/nbpuOtrMZKpsSx6AY1fvblBdFtCn/2sVW4/51duXMv5DX7CINMd/iXLDxurzYcNmVVPsPYyuq6ZgPn/28UD24t+rY08yVLZu6yhlhVUjWCjkg==",
"78kfI5MBs8LDtC0gTr7Xdw7LYwslHVatolqZKq0h/nbpuOtrMZKpsSx6AY1fvblBdFtCn/2sVW4/51duXMv5DX7CINMd/iXLDxurzYcNmVVPsPYyuq6ZgPn/28UD24t+rY08yVLZu6yhlhVUjWCjkg==",
"Vnwf2U7YFC71f6bqRet05A7LYwslHVatolqZKq0h/nbpuOtrMZKpsSx6AY1fvblBdFtCn/2sVW4/51duXMv5DX7CINMd/iXLDxurzYcNmVVPsPYyuq6ZgPn/28UD24t+rY08yVLZu6yhlhVUjWCjkg==",
"iQX3z0f5Gt9z3+kVgwKnSQ7LYwslHVatolqZKq0h/nbpuOtrMZKpsSx6AY1fvblBdFtCn/2sVW4/51duXMv5DX7CINMd/iXLDxurzYcNmVVPsPYyuq6ZgPn/28UD24t+rY08yVLZu6yhlhVUjWCjkg==", "m0M0jZT19vGManJFn6JUtw7LYwslHVatolqZKq0h/nbpuOtrMZKpsSx6AY1fvblBM4R7PDP6fNrkpORnefS1PX7CINMd/iXLDxurzYcNmVVPsPYyuq6ZgPn/28UD24t+rY08yVLZu6yhlhVUjWCjkg==",
"AjmJ8sS/Z9lcMhvwONeMGw7LYwslHVatolqZKq0h/nbpuOtrMZKpsSx6AY1fvblBM4R7PDP6fNrkpORnefS1PX7CINMd/iXLDxurzYcNmVVPsPYyuq6ZgPn/28UD24t+rY08yVLZu6yhlhVUjWCjkg==",
"ZBQB4MvvDkmjDdq2n5qX2Q7LYwslHVatolqZKq0h/nbpuOtrMZKpsSx6AY1fvblBM4R7PDP6fNrkpORnefS1PX7CINMd/iXLDxurzYcNmVVPsPYyuq6ZgPn/28UD24t+rY08yVLZu6yhlhVUjWCjkg==",
"DYG1oqdj0YcKMrFS+Uj3OQ7LYwslHVatolqZKq0h/nbpuOtrMZKpsSx6AY1fvblBM4R7PDP6fNrkpORnefS1PX7CINMd/iXLDxurzYcNmVVPsPYyuq6ZgPn/28UD24t+rY08yVLZu6yhlhVUjWCjkg==",
"lDbJke38X/LYwQ4NXzjcXw7LYwslHVatolqZKq0h/nbpuOtrMZKpsSx6AY1fvblBM4R7PDP6fNrkpORnefS1PX7CINMd/iXLDxurzYcNmVVPsPYyuq6ZgPn/28UD24t+rY08yVLZu6yhlhVUjWCjkg==",
"m0M0jZT19vGManJFn6JUtw7LYwslHVatolqZKq0h/nbpuOtrMZKpsSx6AY1fvblBM4R7PDP6fNrkpORnefS1PX7CINMd/iXLDxurzYcNmVVPsPYyuq6ZgPn/28UD24t+rY08yVLZu6yhlhVUjWCjkg==",
]
for (let i of lists.slice(0, 5)) {
let coin = await this.curl({
'url': `https://api.m.jd.com/client.action?functionId=videoHbGoldCoin_done`,
'form': `avifSupport=0&body={"contentId":"${i}","playType":"163","jsLabel":"${this.random(jsLable)}","activitySource":"1"}&build=169736&client=apple&clientVersion=15.0.20`,
user,
algo: {
sign: true
}
}
)
if (this.haskey(coin, 'success')) {
p.log('获得金币:', coin.data.rewardValue)
if (!coin.data.rewardValue) {
break
}
}
else {
p.log(coin)
break
}
await this.wait(2000)
}
}
}
}