mirror of
https://github.com/yoimiya-kokomi/miao-plugin.git
synced 2024-11-16 04:35:42 +00:00
ed21546e82
微调部分角色圣遗物评分权重
135 lines
2.9 KiB
JavaScript
135 lines
2.9 KiB
JavaScript
import { User } from './index.js'
|
||
import YzMysInfo from './mys-lib/YzMysInfo.js'
|
||
import YzMysApi from './mys-lib/YzMysApi.js'
|
||
|
||
export default class MysApi {
|
||
constructor (e, uid, mysInfo) {
|
||
this.e = e
|
||
this.mysInfo = mysInfo
|
||
this.ckInfo = mysInfo.ckInfo
|
||
this.uid = uid
|
||
e.targetUser = this.targetUser
|
||
e.selfUser = this.selfUser
|
||
e.isSelfCookie = this.isSelfCookie
|
||
}
|
||
|
||
static async init (e, cfg = 'all') {
|
||
if (typeof (cfg) === 'string') {
|
||
cfg = { auth: cfg }
|
||
}
|
||
let { auth = 'all' } = cfg
|
||
let mys = false
|
||
if (e.runtime) {
|
||
mys = await e.runtime.getMysInfo(auth)
|
||
} else {
|
||
mys = await YzMysInfo.init(e, auth === 'cookie' ? 'detail' : 'roleIndex')
|
||
}
|
||
if (!mys) {
|
||
return false
|
||
}
|
||
let uid = mys.uid
|
||
e._mys = new MysApi(e, uid, mys)
|
||
return e._mys
|
||
}
|
||
|
||
static async initUser (e, cfg = 'all') {
|
||
if (typeof (cfg) === 'string') {
|
||
cfg = { auth: cfg }
|
||
}
|
||
let uid = await YzMysInfo.getUid(e)
|
||
if (uid) {
|
||
return new User({ id: e.user_id, uid: uid })
|
||
}
|
||
return false
|
||
}
|
||
|
||
get isSelfCookie () {
|
||
return this.uid * 1 === this.ckUid * 1 || this?.mysInfo?.isSelf
|
||
}
|
||
|
||
get ckUid () {
|
||
return this.ckInfo.uid
|
||
}
|
||
|
||
get ck () {
|
||
return this.ckInfo.ck
|
||
}
|
||
|
||
get selfUser () {
|
||
return new User({ id: this.e.user_id, uid: this.uid })
|
||
}
|
||
|
||
get targetUser () {
|
||
return new User({ id: this.e.user_id, uid: this.uid })
|
||
}
|
||
|
||
getMysApi (e) {
|
||
if (this.mys) {
|
||
return this.mys
|
||
}
|
||
this.mys = new YzMysApi(this.uid, this.ck, { log: false, e })
|
||
return this.mys
|
||
}
|
||
|
||
async getData (api, data) {
|
||
if (!this.mysInfo) {
|
||
return false
|
||
}
|
||
let e = this.e
|
||
let mys = this.getMysApi(e)
|
||
// 暂时先在plugin侧阻止错误,防止刷屏
|
||
e._original_reply = e._original_reply || e.reply
|
||
e._reqCount = e._reqCount || 0
|
||
e.reply = function (msg) {
|
||
if (!e._isReplyed) {
|
||
e._isReplyed = true
|
||
return e._original_reply(msg)
|
||
} else {
|
||
// console.log('请求错误')
|
||
}
|
||
}
|
||
e._reqCount++
|
||
let ret = await mys.getData(api, data)
|
||
e._reqCount--
|
||
if (e._reqCount === 0) {
|
||
e.reply = e._original_reply
|
||
}
|
||
if (!ret) {
|
||
return false
|
||
}
|
||
return ret.data || ret
|
||
}
|
||
|
||
// 获取角色信息
|
||
async getCharacter () {
|
||
return await this.getData('character')
|
||
}
|
||
|
||
// 获取角色详情
|
||
async getAvatar (id) {
|
||
return await this.getData('detail', { avatar_id: id })
|
||
}
|
||
|
||
// 首页宝箱信息
|
||
async getIndex () {
|
||
return await this.getData('index')
|
||
}
|
||
|
||
// 获取深渊信息
|
||
async getSpiralAbyss (type = 1) {
|
||
return await this.getData('spiralAbyss', { schedule_type: type })
|
||
}
|
||
|
||
async getDetail (id) {
|
||
return await this.getData('detail', { avatar_id: id })
|
||
}
|
||
|
||
async getCompute (data) {
|
||
return await this.getData('compute', data)
|
||
}
|
||
|
||
async getAvatarSkill (id) {
|
||
return await this.getData('avatarSkill', { avatar_id: id })
|
||
}
|
||
}
|