miao-plugin/components/profile-data/enka.js
yoimiya-kokomi 5c94304c70 enka请求增加proxy配置,按需引入
#更新面板会基于enka服务返回的ttl设置cd
2022-08-05 04:22:51 +08:00

37 lines
1.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import fetch from 'node-fetch'
import EnkaData from './enka-data.js'
import Data from '../Data.js'
let Enka = {
key: 'enka',
cd: 5,
async request ({ e, uid, avatar, diyCfg, sysCfg, setCd }) {
let url = diyCfg?.enkaApi?.url || sysCfg.enkaApi.url
let profileApi = diyCfg?.enkaApi?.listApi || sysCfg.enkaApi.listApi
let api = profileApi({ url, uid, avatar })
if (diyCfg?.enkaApi?.apiKey) {
api += '?key=' + diyCfg.enkaApi.apiKey
}
let config = { headers: { 'User-Agent': diyCfg?.enkaApi?.userAgent || sysCfg.enkaApi.userAgent } }
if (diyCfg?.enkaApi?.proxyAgent) {
let { HttpsProxyAgent } = await Data.importModule('./plugins/miao-plugin/components/profile-data/', 'enka-proxy.js')
config.agent = new HttpsProxyAgent(diyCfg.enkaApi.proxyAgent)
}
let req = await fetch(api, config)
let data = await req.json()
if (!data.playerInfo) {
e.reply(`请求失败:${data.msg || '可能是面板服务并发过高,请稍后重试'}`)
return false
}
let details = data.avatarInfoList
if (!details || details.length === 0 || !details[0].propMap) {
e.reply('请打开游戏内角色展柜的【显示详情】后等待5分钟重新获取面板')
await setCd(uid, 5 * 60)
return false
}
return EnkaData.getData(uid, data)
}
}
export default Enka