miao-plugin/components/models/HutaoApi.js

76 lines
1.7 KiB
JavaScript

/*
* 胡桃API Miao-Plugin 封装
* https://github.com/DGP-Studio/DGP.Genshin.HutaoAPI
*
* */
import fetch from 'node-fetch'
const host = 'http://49.232.91.210:88/miaoPlugin/hutaoApi'
function getApi (api) {
return `${host}?api=${api}`
}
let HutaoApi = {
async req (url, param = {}) {
let cacheData = await redis.get(`hutao:${url}`)
if (cacheData && param.method !== 'POST') {
return JSON.parse(cacheData)
}
let response = await fetch(getApi(`${url}`), {
...param,
method: param.method || 'GET'
})
let retData = await response.json()
if (retData && retData.data && param.method !== 'POST') {
let d = new Date()
retData.lastUpdate = `${d.toLocaleDateString()} ${d.toTimeString().substr(0, 5)}`
await redis.set(`hutao:${url}`, JSON.stringify(retData), { EX: 3600 })
}
return retData
},
// 角色持有及命座分布
async getCons () {
return await HutaoApi.req('/Statistics/Constellation')
},
async getAbyssPct () {
return await HutaoApi.req('/Statistics/AvatarParticipation')
},
async getAbyssUse () {
return await HutaoApi.req('/Statistics2/AvatarParticipation')
},
async getAbyssTeam () {
return await HutaoApi.req('/Statistics/TeamCombination')
},
async upload (data) {
let body = JSON.stringify(data)
return await HutaoApi.req('/Record/Upload', {
method: 'POST',
headers: {
'Content-Type': 'text/json; charset=utf-8'
},
body
})
},
async uploadData (data = {}) {
let body = JSON.stringify(data)
return await HutaoApi.req('/Record/UploadData', {
method: 'POST',
headers: {
'Content-Type': 'text/json; charset=utf-8'
},
body
})
}
}
export default HutaoApi