Miao-Yunzai/apps/userAdmin.ts

61 lines
1.8 KiB
TypeScript

import { plugin } from 'yunzai/core'
import User from '../model/user.js'
import { MysInfo } from 'yunzai/mys'
export class userAdmin extends plugin {
User = null
button = null
constructor(e) {
/**
name: '用户管理',
dsc: 'CK用户管理',
*/
super({
event: 'message',
priority: 300,
rule: [{
reg: '^#用户统计$',
fnc: 'userAdmin',
permission: "master",
}, {
reg: '^#(刷新|重置)用户(缓存|统计|ck|Ck|CK)$',
fnc: 'resetCache',
permission: "master",
}, {
reg: '^#删除(无效|失效)(用户|ck|Ck|CK)$',
fnc: 'delDisable',
permission: "master",
}]
})
this.User = new User(e)
this.button = segment.button([
{ text: "用户统计", callback: "#用户统计" },
{ text: "删除无效", callback: "#删除无效用户" },
], [
{ text: "刷新统计", callback: "#刷新用户统计" },
{ text: "重置统计", callback: "#重置用户统计" },
])
}
/** #用户统计$ */
async userAdmin() {
let data = await new User(this.e).userAdmin()
if (!data) return true
/** 生成图片 */
this.reply([await this.renderImg('genshin', 'html/admin/userAdmin', data, { retType: "base64" }), this.button])
}
/** #刷新用户缓存 / #重置用户缓存 */
async resetCache() {
// 清空老数据
const clearData = /重置/.test(this.e.msg)
await MysInfo.initCache(true, clearData)
this.reply([`用户缓存已${clearData ? '重置' : '刷新'}...\n通过【#用户统计】命令可查看详情`, this.button])
}
async delDisable() {
let count = await MysInfo.delDisable()
this.reply([count > 0 ? `已删除${count}个无效用户` : '暂无无效用户...', this.button])
}
}