Miao-Yunzai/model/blueprint.ts

62 lines
1.7 KiB
TypeScript
Raw Normal View History

2024-06-14 10:44:18 +08:00
import base from './base.js'
import { MysInfo, MysApi } from 'yunzai/mys'
export default class blueprint extends base {
constructor(e) {
super(e)
}
model = 'blueprint'
checkMsg = '设置尘歌壶模数有误\n指令#尘歌壶模数\n示例#尘歌壶模数123456\n参数为模数id(10-15位数字)'
async get(role) {
/** 获取绑定uid */
let uid = await MysInfo.getUid(this.e, false)
if (!uid) return false
/** 判断是否绑定了ck */
let ck = await MysInfo.checkUidBing(uid, this.e)
if (!ck) {
await this.e.reply(MysInfo.tips)
return false
}
this.mysApi = new MysApi(ck.uid, ck.ck, { log: true })
/** 获取角色数据 */
let blueprint = await this.mysApi.getData('blueprint', { share_code: role, headers: 'https://webstatic.mihoyo.com/ys/event/e20200923adopt_calculator/index.html?bbs_presentation_style=fullscreen&bbs_auth_required=true&mys_source=GameRecord' })
/** 获取计算参数 */
let body = await this.getBody(blueprint)
if (!body) return false
/** 计算 */
let computes = await this.computes(body)
if (!computes) return false
return {
saveId: uid,
uid,
share_code: role[0],
blueprint,
computes,
...this.screenData
}
}
async getBody(data) {
if (!data?.data?.list?.length) return false
let newData = []
for (let item of data?.data?.list) {
newData.push({
cnt: item.num * 1,
id: item.id * 1
})
}
return { list: newData }
}
async computes(body) {
let computes = await this.mysApi.getData('blueprintCompute', { body })
if (!computes || computes.retcode !== 0) return false
computes = computes.data?.list
return computes
}
}