mirror of
https://github.com/qitoqito/psyduck.git
synced 2026-01-12 21:20:43 +08:00
Create jd_task_wanyiwan.js
This commit is contained in:
parent
4d98f0ff42
commit
1fe219c778
231
parse/jd/jd_task_wanyiwan.js
Normal file
231
parse/jd/jd_task_wanyiwan.js
Normal file
@ -0,0 +1,231 @@
|
||||
import {Template} from '../../template.js'
|
||||
|
||||
export class Main extends Template {
|
||||
constructor() {
|
||||
super()
|
||||
this.profile = {
|
||||
title: '京东玩一玩',
|
||||
prompt: {
|
||||
turnNum: ' #翻倍奖票数,默认10',
|
||||
turnDouble: ' #翻倍奖票次数,默认1',
|
||||
turnJump: " #部分号翻倍一直失败,可以只做任务跳过翻倍,pin1|pin2"
|
||||
},
|
||||
model: 'shuffle',
|
||||
headers: {
|
||||
referer: 'https://pro.m.jd.com/mall/active/3fcyrvLZALNPWCEDRvaZJVrzek8v/index.html',
|
||||
},
|
||||
turn: 2,
|
||||
crontab: 8,
|
||||
tempKey: 8640000000
|
||||
}
|
||||
}
|
||||
|
||||
async prepare() {
|
||||
}
|
||||
|
||||
async main(p) {
|
||||
let user = p.data.user;
|
||||
let context = p.context;
|
||||
let home = await this.curl({
|
||||
'url': `https://api.m.jd.com/client.action`,
|
||||
'form': `functionId=wanyiwan_home&appid=signed_wh5&body={"outsite":0,"firstCall":0,"version":7,"babelChannel":"ttt10"}&rfs=0000&screen=390*844&build=169480&osVersion=15.1.1&networkType=wifi&d_brand=iPhone&d_model=iPhone13%2C3&client=apple&clientVersion=13.2.2`,
|
||||
user,
|
||||
algo: {
|
||||
appId: 'c81ad',
|
||||
expire: {
|
||||
'data.result.isLogin': false
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
let result = this.haskey(home, 'data.result')
|
||||
if (!result) {
|
||||
p.info.jump = true
|
||||
p.err("没有获取到数据...")
|
||||
return
|
||||
}
|
||||
let oldScore = this.haskey(home, 'data.result.score') || 0
|
||||
p.log("当前奖票:", oldScore)
|
||||
if (this.turnCount == 0) {
|
||||
let status = 1
|
||||
let taskList = await this.curl({
|
||||
'url': `https://api.m.jd.com/client.action`,
|
||||
'form': `functionId=wanyiwan_task_list&appid=signed_wh5&body={"showShortcut":true,"version":7,"lbsSwitch":true}&rfs=0000`,
|
||||
user,
|
||||
}
|
||||
)
|
||||
for (let i of this.haskey(taskList, 'data.result.taskList')) {
|
||||
if (i.status == 3) {
|
||||
status = 1
|
||||
p.log("任务完成:", i.title)
|
||||
}
|
||||
else {
|
||||
if (i.title.includes('下单')) {
|
||||
}
|
||||
else {
|
||||
status = 0
|
||||
p.log("正在运行:", i.title)
|
||||
let d = await this.curl({
|
||||
'url': `https://api.m.jd.com/client.action`,
|
||||
'form': `functionId=wanyiwan_do_task&appid=signed_wh5&body={"itemId":"${this.haskey(i, 'taskDetail.0.itemId') || 0}","taskType":${i.taskType},"assignmentId":"${i.encryptAssignmentId}","actionType":1,"version":1}&rfs=0000&openudid=de21c6604748f97dd3977153e51a47f4efdb9a47&screen=390*844&build=168960&osVersion=15.1.1&networkType=wifi&d_brand=iPhone&d_model=iPhone13%2C3&client=apple&clientVersion=13.2.2`,
|
||||
user,
|
||||
algo: {
|
||||
appId: '89db2'
|
||||
}
|
||||
}
|
||||
)
|
||||
if (i.limitTime) {
|
||||
await this.wait(i.limitTime * 1000)
|
||||
}
|
||||
let r = await this.curl({
|
||||
'url': `https://api.m.jd.com/client.action`,
|
||||
'form': `functionId=wanyiwan_do_task&appid=signed_wh5&body={"itemId":"${this.haskey(i, 'taskDetail.0.itemId') || 0}","taskType":${i.taskType},"assignmentId":"${i.encryptAssignmentId}","actionType":0,"version":1}&rfs=0000&openudid=de21c6604748f97dd3977153e51a47f4efdb9a47&screen=390*844&build=168858&osVersion=15.1.1&networkType=wifi&d_brand=iPhone&d_model=iPhone13%2C3&client=apple&clientVersion=13.2.2`,
|
||||
user,
|
||||
algo: {
|
||||
appId: '89db2'
|
||||
}
|
||||
}
|
||||
)
|
||||
// p.log(r.data)
|
||||
let a = await this.curl({
|
||||
'url': `https://api.m.jd.com/client.action`,
|
||||
'form': `functionId=wanyiwan_task_receive_award&appid=signed_wh5&body={"taskType":${i.taskType},"assignmentId":"${i.encryptAssignmentId}","version":1}&rfs=0000&openudid=de21c6604748f97dd3977153e51a47f4efdb9a47&screen=390*844&build=168960&osVersion=15.1.1&networkType=wifi&d_brand=iPhone&d_model=iPhone13%2C3&client=apple&clientVersion=13.2.2`,
|
||||
user,
|
||||
algo: {
|
||||
appId: 'd12dd'
|
||||
},
|
||||
}
|
||||
)
|
||||
p.log(a.data)
|
||||
if (this.haskey(a, 'data.result')) {
|
||||
status = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (status) {
|
||||
p.info.work = true
|
||||
}
|
||||
}
|
||||
else if (this.turnCount == 1) {
|
||||
if (this.profile.turnJump && this.profile.turnJump.includes(user)) {
|
||||
p.log("该账号跳过翻倍")
|
||||
}
|
||||
else {
|
||||
let turn = await this.curl({
|
||||
'url': `https://api.m.jd.com/client.action`,
|
||||
'form': `functionId=turnHappyHome&body={"linkId":"-EMTEb8A0id6HvUY2qV7xQ","turnNum":"10"}&t=1715954317613&appid=activities_platform&client=apple&clientVersion=13.2.2`,
|
||||
user,
|
||||
algo: {
|
||||
appId: '614f1'
|
||||
}
|
||||
}
|
||||
)
|
||||
if (this.haskey(turn, 'data.leftTime')) {
|
||||
p.log("剩余翻倍时间:", parseInt(turn.data.leftTime / 1000))
|
||||
}
|
||||
else if (this.haskey(turn, 'data.reachDayLimit')) {
|
||||
p.log("翻倍次数上限")
|
||||
p.info.complete = true
|
||||
}
|
||||
else {
|
||||
let num = this.profile.turnNum || 10
|
||||
if (oldScore && num>oldScore) {
|
||||
num = oldScore
|
||||
}
|
||||
p.log("开始翻倍,使用奖票数量:", num)
|
||||
let count = this.profile.turnDouble || 1
|
||||
let ok = 1
|
||||
for (let _ = 1; _<=count; _++) {
|
||||
var turnNum = (_ == 1) ? num : "-1"
|
||||
let double = await this.curl({
|
||||
'url': `https://api.m.jd.com/client.action`,
|
||||
'form': `functionId=turnHappyDouble&body={"linkId":"-EMTEb8A0id6HvUY2qV7xQ","turnNum":"${turnNum}"}&t=1715954317613&appid=activities_platform&client=apple&clientVersion=13.2.2`,
|
||||
user,
|
||||
algo: {
|
||||
appId: '614f1'
|
||||
}
|
||||
}
|
||||
)
|
||||
p.log("翻倍中...", this.haskey(double, 'data.rewardValue'))
|
||||
if (this.haskey(double, 'data.rewardState', 3)) {
|
||||
p.log("翻倍失败...")
|
||||
ok = 0
|
||||
break
|
||||
}
|
||||
else if (this.haskey(double, 'code', 220001)) {
|
||||
p.log("今日参与已达上限...")
|
||||
break
|
||||
}
|
||||
await this.wait(3000)
|
||||
}
|
||||
if (ok) {
|
||||
let rec = await this.curl({
|
||||
'url': `https://api.m.jd.com/client.action`,
|
||||
'form': `functionId=turnHappyReceive&body={"linkId":"-EMTEb8A0id6HvUY2qV7xQ"}&t=1715954317613&appid=activities_platform&client=apple&clientVersion=13.2.2`,
|
||||
user,
|
||||
algo: {
|
||||
appId: '25fac'
|
||||
}
|
||||
}
|
||||
)
|
||||
p.log("结束翻倍...", this.haskey(rec, 'data.rewardValue'))
|
||||
}
|
||||
}
|
||||
}
|
||||
for (let i of Array(3)) {
|
||||
home = await this.curl({
|
||||
'url': `https://api.m.jd.com/client.action`,
|
||||
'form': `functionId=wanyiwan_home&appid=signed_wh5&body={"outsite":0,"firstCall":0,"version":7,"babelChannel":"ttt10"}&rfs=0000&openudid=674ce0d97511f5ed054c3dc0af093b3b245ab68d&screen=390*844&build=169480&osVersion=15.1.1&networkType=wifi&d_brand=iPhone&d_model=iPhone13%2C3&client=apple&clientVersion=13.2.2`,
|
||||
user,
|
||||
algo: {
|
||||
appId: 'c81ad'
|
||||
}
|
||||
}
|
||||
)
|
||||
if (this.haskey(home, 'data.result')) {
|
||||
break
|
||||
}
|
||||
else {
|
||||
await this.wait(1000)
|
||||
}
|
||||
}
|
||||
let score = this.haskey(home, 'data.result.score') || 0
|
||||
if (score) {
|
||||
if (oldScore) {
|
||||
let diff = score - oldScore
|
||||
if (diff) {
|
||||
p.msg(`本轮${diff>0 ? '增加' : "损失"}: ${diff}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
let record = await this.curl({
|
||||
'url': `https://api.m.jd.com/client.action`,
|
||||
'form': `functionId=wanyiwan_point_record&appid=signed_wh5&body={"pageNum":1,"version":1}&rfs=0000`,
|
||||
user
|
||||
}
|
||||
)
|
||||
let now = new Date();
|
||||
let year = now.getFullYear();
|
||||
let month = (now.getMonth() + 1).toString().padStart(2, '0');
|
||||
let day = now.getDate().toString().padStart(2, '0');
|
||||
let ymd = `${year}-${month}-${day}`;
|
||||
let ymd2 = `${year}.${month}.${day}`;
|
||||
let report = (this.haskey(record, 'data.result.pointsRecords') || []).filter(d => d.sendTime == ymd || d.sendTime == ymd2).filter(d => d.pointName == '1002')
|
||||
let use = report.filter(d => d.operateType == '3')
|
||||
let suc = report.filter(d => d.operateType == '1')
|
||||
let x = use.reduce((v, k) => {
|
||||
v += k.pointValue
|
||||
return v
|
||||
}, 0)
|
||||
let y = suc.reduce((v, k) => {
|
||||
v += k.pointValue
|
||||
return v
|
||||
}, 0)
|
||||
// console.log(x,y)
|
||||
let z = y - x
|
||||
p.msg(`当前奖票: ${score} \n翻倍次数: ${use.length}, 消耗奖票: ${x}, 获得奖票: ${y}, ${z>0 ? '增加' : "损失"}奖票: ${z} \n盈亏占比: ${suc.length}/${use.length - suc.length}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user