zhenxun_bot/plugins/web_ui/base_model.py
2023-12-30 05:27:45 +08:00

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