mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 14:22:55 +08:00
224 lines
4.1 KiB
Python
224 lines
4.1 KiB
Python
from datetime import datetime
|
|
from typing import Any, Dict, List, Optional, TypeVar, Union
|
|
|
|
from nonebot.adapters.onebot.v11 import Bot
|
|
from pydantic import BaseModel
|
|
|
|
from configs.utils import Config
|
|
from utils.manager.models import Plugin as PluginManager
|
|
from utils.manager.models import PluginBlock, PluginCd, PluginCount, PluginSetting
|
|
|
|
|
|
class User(BaseModel):
|
|
username: str
|
|
password: str
|
|
|
|
|
|
class Token(BaseModel):
|
|
access_token: str
|
|
token_type: str
|
|
|
|
|
|
class Result(BaseModel):
|
|
"""
|
|
总体返回
|
|
"""
|
|
|
|
suc: bool
|
|
"""调用状态"""
|
|
code: int = 200
|
|
"""code"""
|
|
info: str = "操作成功"
|
|
"""info"""
|
|
data: Any = None
|
|
"""返回数据"""
|
|
|
|
@classmethod
|
|
def fail(cls, info: str = "异常错误", code: int = 500) -> "Result":
|
|
return cls(suc=False, info=info, code=code)
|
|
|
|
@classmethod
|
|
def ok(cls, data: Any = None, info: str = "操作成功", code: int = 200) -> "Result":
|
|
return cls(suc=True, info=info, code=code, data=data)
|
|
|
|
|
|
class PluginConfig(BaseModel):
|
|
"""
|
|
插件配置项
|
|
"""
|
|
|
|
module: str
|
|
key: str
|
|
value: Optional[Any]
|
|
help: Optional[str]
|
|
default_value: Optional[Any]
|
|
has_type: bool
|
|
|
|
|
|
class Plugin(BaseModel):
|
|
"""
|
|
插件
|
|
"""
|
|
|
|
model: str
|
|
"""模块名称"""
|
|
plugin_settings: Optional[PluginSetting]
|
|
"""settings"""
|
|
plugin_manager: Optional[PluginManager]
|
|
"""manager"""
|
|
plugin_config: Optional[Dict[str, PluginConfig]]
|
|
"""配置项"""
|
|
cd_limit: Optional[PluginCd]
|
|
"""cd限制"""
|
|
block_limit: Optional[PluginBlock]
|
|
"""阻断限制"""
|
|
count_limit: Optional[PluginCount]
|
|
"""次数限制"""
|
|
|
|
|
|
class Group(BaseModel):
|
|
"""
|
|
群组信息
|
|
"""
|
|
|
|
group_id: int
|
|
group_name: str
|
|
member_count: int
|
|
max_member_count: int
|
|
|
|
|
|
class Task(BaseModel):
|
|
"""
|
|
被动技能
|
|
"""
|
|
|
|
name: str
|
|
nameZh: str
|
|
status: bool
|
|
|
|
|
|
class GroupResult(BaseModel):
|
|
"""
|
|
群组返回数据
|
|
"""
|
|
|
|
group: Group
|
|
level: int
|
|
status: bool
|
|
close_plugins: List[str]
|
|
task: List[Task]
|
|
|
|
|
|
class RequestResult(BaseModel):
|
|
"""
|
|
好友/群组请求管理
|
|
"""
|
|
|
|
oid: str
|
|
id: int
|
|
flag: str
|
|
nickname: Optional[str]
|
|
level: Optional[int]
|
|
sex: Optional[str]
|
|
age: Optional[int]
|
|
from_: Optional[str]
|
|
comment: Optional[str]
|
|
invite_group: Optional[int]
|
|
group_name: Optional[str]
|
|
|
|
|
|
class SystemStatus(BaseModel):
|
|
"""
|
|
系统状态
|
|
"""
|
|
|
|
cpu: float
|
|
memory: float
|
|
disk: float
|
|
check_time: datetime
|
|
|
|
|
|
class SystemNetwork(BaseModel):
|
|
"""
|
|
系统网络状态
|
|
"""
|
|
|
|
baidu: int
|
|
google: int
|
|
|
|
|
|
class SystemFolderSize(BaseModel):
|
|
"""
|
|
资源文件占比
|
|
"""
|
|
|
|
font_dir_size: float
|
|
image_dir_size: float
|
|
text_dir_size: float
|
|
record_dir_size: float
|
|
temp_dir_size: float
|
|
data_dir_size: float
|
|
log_dir_size: float
|
|
check_time: datetime
|
|
|
|
|
|
class SystemStatusList(BaseModel):
|
|
"""
|
|
状态记录
|
|
"""
|
|
|
|
cpu_data: List[Dict[str, Union[float, str]]]
|
|
memory_data: List[Dict[str, Union[float, str]]]
|
|
disk_data: List[Dict[str, Union[float, str]]]
|
|
|
|
|
|
class SystemResult(BaseModel):
|
|
"""
|
|
系统api返回
|
|
"""
|
|
|
|
status: SystemStatus
|
|
network: SystemNetwork
|
|
disk: SystemFolderSize
|
|
check_time: datetime
|
|
|
|
|
|
class BotInfo(BaseModel):
|
|
"""
|
|
Bot基础信息
|
|
"""
|
|
|
|
bot: Bot
|
|
"""Bot"""
|
|
self_id: str
|
|
"""SELF ID"""
|
|
nickname: str
|
|
"""昵称"""
|
|
ava_url: str
|
|
"""头像url"""
|
|
friend_count: int = 0
|
|
"""好友数量"""
|
|
group_count: int = 0
|
|
"""群聊数量"""
|
|
received_messages: int = 0
|
|
"""累计接收消息"""
|
|
received_messages_day: int = 0
|
|
"""今日累计接收消息"""
|
|
received_messages_week: int = 0
|
|
"""一周内累计接收消息"""
|
|
received_messages_month: int = 0
|
|
"""一月内累计接收消息"""
|
|
|
|
plugin_count: int = 0
|
|
"""加载插件数量"""
|
|
success_plugin_count: int = 0
|
|
"""加载成功插件数量"""
|
|
fail_plugin_count: int = 0
|
|
"""加载失败插件数量"""
|
|
|
|
is_select: bool = False
|
|
"""当前选择"""
|
|
|
|
class Config:
|
|
arbitrary_types_allowed = True
|