miao-plugin/models/player-lib/EnkaApi.js

72 lines
1.8 KiB
JavaScript
Raw Normal View History

import lodash from 'lodash'
2023-02-08 20:55:54 +00:00
import { Data } from '../../components/index.js'
2023-02-09 16:57:25 +00:00
import EnkaData from './EnkaData.js'
import MiaoData from './MiaoData.js'
let HttpsProxyAgent = ''
2023-02-09 16:57:25 +00:00
export default {
2022-08-18 10:13:42 +00:00
id: 'enka',
cfgKey: 'enkaApi',
// 处理请求参数
async request (api) {
let params = {
headers: { 'User-Agent': this.getCfg('userAgent') }
}
2022-08-18 10:13:42 +00:00
let proxy = this.getCfg('proxyAgent')
if (proxy) {
if (HttpsProxyAgent === '') {
HttpsProxyAgent = await import('https-proxy-agent').catch((err) => {
logger.error(err)
})
HttpsProxyAgent = HttpsProxyAgent ? HttpsProxyAgent.default : undefined
}
if (HttpsProxyAgent) {
params.agent = new HttpsProxyAgent(proxy)
}
}
2022-08-18 10:13:42 +00:00
return { api, params }
},
// 处理服务返回
async response (data, req) {
2022-06-14 22:07:24 +00:00
if (!data.playerInfo) {
if (data.error) {
console.log(`Enka ReqErr: ${data.error}`)
}
2022-08-22 13:38:34 +00:00
return req.err('error', 60)
2022-06-14 22:07:24 +00:00
}
2022-07-27 18:36:49 +00:00
let details = data.avatarInfoList
2022-06-14 22:07:24 +00:00
if (!details || details.length === 0 || !details[0].propMap) {
return req.err('empty', 5 * 60)
2022-06-14 22:07:24 +00:00
}
return data
},
2023-02-09 16:57:25 +00:00
updatePlayer (player, data) {
player.setBasicData(Data.getData(data, 'name:nickname,face:profilePicture.avatarID,card:nameCardID,level,word:worldLevel,sign:signature'))
lodash.forEach(data.avatarInfoList, (ds) => {
let ret = EnkaData.setAvatar(player, ds)
if (ret) {
player._update.push(ret.id)
}
})
},
profileData (data) {
let ret = {}
lodash.forEach(data.avatarInfoList, (ds) => {
let profile = EnkaData.getProfile(ds)
if (profile && profile.id) {
ret[profile.id] = profile
}
})
return ret
},
// 获取冷却时间
cdTime (data) {
return data.ttl || 60
2022-06-14 22:07:24 +00:00
}
2023-02-09 16:57:25 +00:00
}