优化天赋请求的逻辑及日志输出

This commit is contained in:
yoimiya-kokomi 2022-10-21 22:48:19 +08:00
parent 8033383b91
commit 9dbaad5e6a
9 changed files with 70 additions and 39 deletions

View File

@ -5,12 +5,6 @@ import { Format, Cfg, Common, App } from '../components/index.js'
import { Character } from '../models/index.js' import { Character } from '../models/index.js'
import CharWiki from './wiki/CharWiki.js' import CharWiki from './wiki/CharWiki.js'
// eslint-disable-next-line no-unused-vars
let action = {
wiki: {
keyword: '命座|天赋|技能|资料|照片|写真|图片|插画'
}
}
let wikiReg = /^(?:#|喵喵)?(.*)(天赋|技能|命座|命之座|资料|图鉴|照片|写真|图片|图像)$/ let wikiReg = /^(?:#|喵喵)?(.*)(天赋|技能|命座|命之座|资料|图鉴|照片|写真|图片|图像)$/
let app = App.init({ let app = App.init({
@ -35,7 +29,6 @@ function checkCharacter (e) {
return false return false
} }
let ret = wikiReg.exec(msg) let ret = wikiReg.exec(msg)
console.log(msg, ret)
if (!ret || !ret[1] || !ret[2]) { if (!ret || !ret[1] || !ret[2]) {
return false return false
} }
@ -66,7 +59,6 @@ function checkCharacter (e) {
} }
async function wiki (e) { async function wiki (e) {
let mode = e.wikiMode let mode = e.wikiMode
let char = e.char let char = e.char

View File

@ -4,7 +4,7 @@ import { artiIdx, artiSetMap, attrMap } from './miao-meta.js'
let MiaoData = { let MiaoData = {
key: 'miao', key: 'miao',
name: 'MiaoApi', name: '喵喵Api',
getData (uid, data) { getData (uid, data) {
let ret = { let ret = {

View File

@ -5,7 +5,7 @@ import MiaoData from './miao-data.js'
export default new ProfileServ({ export default new ProfileServ({
key: 'miao', key: 'miao',
name: 'MiaoApi', name: '喵喵Api',
cfgKey: 'miaoApi', cfgKey: 'miaoApi',
async response (data, req) { async response (data, req) {
if (data.status !== 0) { if (data.status !== 0) {

View File

@ -44,7 +44,7 @@ export const reqInterval = {
} }
/* /*
* MiaoApi私有的面板更新服务 * 喵喵Api私有的面板更新服务
* 供Yunzai开发者及有投喂的老板们小范围使用 * 供Yunzai开发者及有投喂的老板们小范围使用
* 需要具备Token才会启用~ * 需要具备Token才会启用~
* */ * */

View File

@ -1,11 +1,12 @@
import { User } from './index.js' import { User } from './index.js'
import MysInfo from './mys-lib/MysInfo.js' import YzMysInfo from './mys-lib/YzMysInfo.js'
import YzMysApi from './mys-lib/YzMysApi.js'
export default class MysApi { export default class MysApi {
constructor (e, uid, MysApi) { constructor (e, uid, mysInfo) {
this.e = e this.e = e
this.MysApi = MysApi this.mysInfo = mysInfo
this.ckInfo = MysApi.ckInfo this.ckInfo = mysInfo.ckInfo
this.uid = uid this.uid = uid
e.targetUser = this.targetUser e.targetUser = this.targetUser
e.selfUser = this.selfUser e.selfUser = this.selfUser
@ -17,7 +18,7 @@ export default class MysApi {
cfg = { auth: cfg } cfg = { auth: cfg }
} }
let { auth = 'all' } = cfg let { auth = 'all' } = cfg
let mys = await MysInfo.init(e, 'roleIndex') let mys = await YzMysInfo.init(e, 'roleIndex')
if (!mys) { if (!mys) {
return false return false
} }
@ -37,7 +38,7 @@ export default class MysApi {
if (typeof (cfg) === 'string') { if (typeof (cfg) === 'string') {
cfg = { auth: cfg } cfg = { auth: cfg }
} }
let uid = await MysInfo.getUid(e) let uid = await YzMysInfo.getUid(e)
if (uid) { if (uid) {
return new User({ id: e.user_id, uid: uid }) return new User({ id: e.user_id, uid: uid })
} }
@ -45,7 +46,7 @@ export default class MysApi {
} }
get isSelfCookie () { get isSelfCookie () {
return this.uid * 1 === this.ckUid * 1 || this?.MysApi?.isSelf return this.uid * 1 === this.ckUid * 1 || this?.mysInfo?.isSelf
} }
get ckUid () { get ckUid () {
@ -64,11 +65,20 @@ export default class MysApi {
return new User({ id: this.e.user_id, uid: this.uid }) 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) { async getData (api, data) {
if (!this.MysApi) { if (!this.mysInfo) {
return false return false
} }
let e = this.e let e = this.e
let mys = this.getMysApi(e)
// 暂时先在plugin侧阻止错误防止刷屏 // 暂时先在plugin侧阻止错误防止刷屏
e._original_reply = e._original_reply || e.reply e._original_reply = e._original_reply || e.reply
e._reqCount = e._reqCount || 0 e._reqCount = e._reqCount || 0
@ -81,7 +91,7 @@ export default class MysApi {
} }
} }
e._reqCount++ e._reqCount++
let ret = await MysInfo.get(this.e, api, data) let ret = await mys.getData(api, data)
e._reqCount-- e._reqCount--
if (e._reqCount === 0) { if (e._reqCount === 0) {
e.reply = e._original_reply e.reply = e._original_reply

View File

@ -129,7 +129,7 @@ export default class ProfileData extends Base {
get dataSourceName () { get dataSourceName () {
return { return {
enka: 'Enka.Network', enka: 'Enka.Network',
miao: 'MiaoApi', miao: '喵喵Api',
input: 'Input' input: 'Input'
}[this.dataSource] || 'Enka.NetWork' }[this.dataSource] || 'Enka.NetWork'
} }

View File

@ -0,0 +1,38 @@
import { Data } from '../../components/index.js'
let YzMysApi = false
async function init () {
let mys = await Data.importModule('plugins/genshin/model/mys/mysApi.js', 'root')
if (mys && mys.default) {
YzMysApi = mys.default
return
}
}
await init()
if (!YzMysApi) {
// v2兼容处理
YzMysApi = class {
constructor (uid, ck, { e }) {
this.e = e
}
async getData (api, data) {
this.mysApi = this.mysApi || await this.e.getMysApi({
auth: 'all',
targetType: 'all',
cookieType: 'all'
})
if (!this.mysApi) {
return false
}
let ret = await this.mysApi.getData(api, data)
if (ret) {
return { data: ret }
}
return false
}
}
}
export default YzMysApi

View File

@ -1,12 +1,12 @@
import { Data, Version } from '../../components/index.js' import { Data } from '../../components/index.js'
let MysInfo = false let YzMysInfo = false
let MysUser = false let MysUser = false
async function init () { async function init () {
let mys = await Data.importModule('plugins/genshin/model/mys/mysInfo.js', 'root') let mys = await Data.importModule('plugins/genshin/model/mys/mysInfo.js', 'root')
if (mys && mys.default) { if (mys && mys.default) {
MysInfo = mys.default YzMysInfo = mys.default
} else { } else {
let module = await Data.importModule('lib/components/models/MysUser.js', 'root') let module = await Data.importModule('lib/components/models/MysUser.js', 'root')
if (module && module.default) { if (module && module.default) {
@ -17,14 +17,14 @@ async function init () {
await init() await init()
if (!MysInfo) { if (!YzMysInfo) {
// v2 MysInfo // v2 MysInfo
const apiCfg = { const apiCfg = {
auth: 'all', auth: 'all',
targetType: 'all', targetType: 'all',
cookieType: 'all', cookieType: 'all'
} }
MysInfo = class { YzMysInfo = class {
constructor (e, uid, cookieUser) { constructor (e, uid, cookieUser) {
if (e) { if (e) {
this.e = e this.e = e
@ -40,7 +40,7 @@ if (!MysInfo) {
static async init (e) { static async init (e) {
let MysApi = await e.getMysApi(apiCfg) // V2兼容 let MysApi = await e.getMysApi(apiCfg) // V2兼容
let { selfUser, targetUser, cookieUser } = MysApi let { selfUser, targetUser, cookieUser } = MysApi
let mys = new MysInfo(e, targetUser.uid || selfUser.uid, cookieUser) let mys = new YzMysInfo(e, targetUser.uid || selfUser.uid, cookieUser)
mys._MysApi = MysApi mys._MysApi = MysApi
return mys return mys
} }
@ -61,16 +61,7 @@ if (!MysInfo) {
let mysUser = await user.getMysUser() let mysUser = await user.getMysUser()
return mysUser ? mysUser.uid : false return mysUser ? mysUser.uid : false
} }
static async get (e, api, data) {
let MysApi = await e.getMysApi(apiCfg) // V2兼容
let ret = await MysApi.getData(api, data)
if (ret) {
return { data: ret }
}
return false
}
} }
} }
export default MysInfo export default YzMysInfo

View File

@ -42,7 +42,7 @@
</ul> </ul>
<div class="data-info"> <div class="data-info">
{{if data.dataSource}} {{if data.dataSource}}
<span>数据源:{{ {miao:"MiaoApi",enka:"Enka.Network",input:"手工录入"}[data.dataSource]||data.dataSource }}</span> <span>数据源:{{ {miao:"喵喵Api",enka:"Enka.Network",input:"手工录入"}[data.dataSource]||data.dataSource }}</span>
{{/if}} {{/if}}
{{if data.updateTime}} {{if data.updateTime}}
<span class="time">{{data.updateTime}}</span> <span class="time">{{data.updateTime}}</span>