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