mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 14:22:55 +08:00
140 lines
2.8 KiB
Python
140 lines
2.8 KiB
Python
from datetime import datetime
|
|
from logging import warning
|
|
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"""
|
|
warning: Optional[str] = None
|
|
"""警告信息"""
|
|
data: Any = None
|
|
"""返回数据"""
|
|
|
|
@classmethod
|
|
def warning_(cls, info: str, code: int = 200) -> "Result":
|
|
return cls(suc=True, warning=info, code=code)
|
|
|
|
@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 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
|