task-svr/src/tasks/TwitterFollow.ts
CounterFire2023 7d3cd73afc reformat code
2024-01-17 11:07:48 +08:00

38 lines
1.0 KiB
TypeScript

import { ITask } from './base/ITask'
import { TaskStatusEnum } from 'models/ActivityUser'
import { ZError } from 'common/ZError'
import { TaskCfg } from 'models/ActivityInfo'
export default class TwitterFollow extends ITask {
static desc = 'twitter follow'
static show: boolean = true
async execute(data: any) {
const { task } = data
let cfg = this.activity.tasks.find((t: TaskCfg) => t.id === task.id)
let time = cfg.params.time
if (Date.now() - task.timeStart < time * 1000) {
throw new ZError(11, 'follow failed')
}
let num = Math.random() * 100
if (num < cfg.params.failRate) {
throw new ZError(12, 'follow failed')
}
task.status = TaskStatusEnum.SUCCESS
task.timeFinish = Date.now()
task.data = {}
try {
await this.user.save()
} catch (err) {
throw new ZError(100, 'save failed')
}
if (cfg.autoclaim) {
try {
await this.claimReward(task)
} catch (err) {
console.log(err)
}
}
return true
}
}