本次提交对核心模块进行了深度重构,引入 Pydantic 增强配置管理的类型安全性,并全面优化了插件管理系统。 主要变更详情: 1. 核心架构与配置 - 重构配置加载模块:引入 Pydantic 模型 (`core/config_models.py`),提供严格的配置项类型检查、验证及默认值管理。 - 统一模块结构:规范化模块导入路径,移除冗余的 `__init__.py` 文件,提升项目结构的清晰度。 - 性能优化:集成 Redis 缓存支持 (`RedisManager`),有效降低高频 API 调用开销,提升响应速度。 2. 插件系统升级 - 实现热重载机制:新增插件文件变更监听功能,支持开发过程中自动重载插件,提升开发效率。 - 优化生命周期管理:改进插件加载与卸载逻辑,支持精确卸载指定插件及其关联的命令、事件处理器和定时任务。 3. 功能特性增强 - 新增媒体 API:引入 `MediaAPI` 模块,封装图片、语音等富媒体资源的获取与处理接口。 - 完善权限体系:重构权限管理系统,实现管理员与操作员的分级控制,支持更细粒度的命令权限校验。 4. 代码质量与稳定性 - 全面类型修复:解决 `mypy` 静态类型检查发现的大量类型错误(包括 `CommandManager`、`EventFactory` 及 `Bot` API 签名不匹配问题)。 - 增强错误处理:优化消息处理管道的异常捕获机制,完善关键路径的日志记录,提升系统运行稳定性。
61 lines
1.4 KiB
Python
61 lines
1.4 KiB
Python
"""
|
|
Pydantic 配置模型模块
|
|
|
|
该模块使用 Pydantic 定义了与 `config.toml` 文件结构完全对应的配置模型。
|
|
这使得配置的加载、校验和访问都变得类型安全和健壮。
|
|
"""
|
|
from typing import List, Optional
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class NapCatWSModel(BaseModel):
|
|
"""
|
|
对应 `config.toml` 中的 `[napcat_ws]` 配置块。
|
|
"""
|
|
uri: str
|
|
token: str
|
|
reconnect_interval: int = 5
|
|
|
|
|
|
class BotModel(BaseModel):
|
|
"""
|
|
对应 `config.toml` 中的 `[bot]` 配置块。
|
|
"""
|
|
command: List[str] = Field(default_factory=lambda: ["/"])
|
|
ignore_self_message: bool = True
|
|
permission_denied_message: str = "权限不足,需要 {permission_name} 权限"
|
|
|
|
|
|
class RedisModel(BaseModel):
|
|
"""
|
|
对应 `config.toml` 中的 `[redis]` 配置块。
|
|
"""
|
|
host: str
|
|
port: int
|
|
db: int
|
|
password: str
|
|
|
|
|
|
class DockerModel(BaseModel):
|
|
"""
|
|
对应 `config.toml` 中的 `[docker]` 配置块。
|
|
"""
|
|
base_url: Optional[str] = None
|
|
sandbox_image: str = "python-sandbox:latest"
|
|
timeout: int = 10
|
|
concurrency_limit: int = 5
|
|
tls_verify: bool = False
|
|
ca_cert_path: Optional[str] = None
|
|
client_cert_path: Optional[str] = None
|
|
client_key_path: Optional[str] = None
|
|
|
|
|
|
class ConfigModel(BaseModel):
|
|
"""
|
|
顶层配置模型,整合了所有子配置块。
|
|
"""
|
|
napcat_ws: NapCatWSModel
|
|
bot: BotModel
|
|
redis: RedisModel
|
|
docker: DockerModel
|