diff --git a/docs/SenSu 插件开发详细指南.md b/docs/SenSu 插件开发详细指南.md index c58a89e..2a86732 100644 --- a/docs/SenSu 插件开发详细指南.md +++ b/docs/SenSu 插件开发详细指南.md @@ -5075,4 +5075,63 @@ logger.error("错误信息", exc_info=True) - Stack Overflow:解决具体技术问题 - 开发者群组:实时交流和协作 -通过遵循本指南,您可以开发出高质量的SenSu插件,为用户提供有价值的功能,同时为插件生态系统做出贡献。祝您开发顺利! \ No newline at end of file +通过遵循本指南,您可以开发出高质量的SenSu插件,为用户提供有价值的功能,同时为插件生态系统做出贡献。祝您开发顺利! +--- + +## 九、v0.2.1 新增 API(已实现) + +### 9.1 PluginStatus 状态枚举 + +```python +from fmfuncs.plugin_status import PluginStatus + +# 插件生命周期状态 +PluginStatus.UNLOADED # "unloaded" +PluginStatus.LOADING # "loading" +PluginStatus.LOADED # "loaded" +PluginStatus.RUNNING # "running" +PluginStatus.ERROR # "error" +PluginStatus.STOPPING # "stopping" +PluginStatus.STOPPED # "stopped" +``` + +用法:`plugin_service.plugin_status["my_plugin"] = PluginStatus.RUNNING` + +### 9.2 PluginError 异常层级 + +```python +from fmfuncs.plugin_error import ( + PluginError, # 基础异常 + PluginLoadError, # 加载失败 + PluginConfigError, # 配置错误 + PluginPermissionError, # 权限不足 + PluginCommandError, # 命令执行错误 +) + +# 抛出 +raise PluginConfigError("缺少必需配置项: name", plugin_name="my_plugin") +``` + +### 9.3 PluginBridge.subscribe_plugin() + +```python +# 便捷订阅方法(同时注册到 CoreBridge 和插件订阅表) +self.bridge.subscribe_plugin("test.event", self._handler, "my_plugin") +``` + +### 9.4 PluginNetworkBridge 跨插件数据 + +```python +# 设置数据接收通道 +await self.network_bridge.setup_data_transfer("status_update", self._on_data) + +# 向其他插件发送数据 +await self.network_bridge.send_data("target_plugin", "status_update", {"key": "val"}) +``` + +### 9.5 配置验证 + +框架在插件加载时自动检查: +- `config.yaml` 必须存在且可解析 +- 必需字段:`name`, `version` +- 版本号格式建议遵循 semver diff --git a/docs/SenSu 框架基本架构.md b/docs/SenSu 框架基本架构.md index 7df75a5..7e51f3a 100644 --- a/docs/SenSu 框架基本架构.md +++ b/docs/SenSu 框架基本架构.md @@ -395,4 +395,33 @@ SenSu框架是一个设计精良、功能完整的Python后端框架,具有以 - 插件化应用的核心引擎 - 学习和研究现代Python框架设计的优秀案例 -对于想要基于此框架进行开发的开发者,建议从`example_plugin`入手,逐步理解框架的各个组件,然后根据业务需求开发定制插件。 \ No newline at end of file +对于想要基于此框架进行开发的开发者,建议从`example_plugin`入手,逐步理解框架的各个组件,然后根据业务需求开发定制插件。 +--- + +## 九、v0.2.1 新增:插件系统增强 + +### 9.1 PluginStatus 枚举 (`fmfuncs/plugin_status.py`) +统一的插件生命周期状态: +- `UNLOADED` → `LOADING` → `LOADED` → `INITIALIZING` → `RUNNING` +- 异常路径: `ERROR`, `STOPPING`, `STOPPED`, `UNLOADING` + +### 9.2 PluginError 异常层级 (`fmfuncs/plugin_error.py`) +``` +PluginError (基础) +├── PluginLoadError (加载失败) +├── PluginConfigError (配置错误) +├── PluginPermissionError (权限不足) +├── PluginCommandError (命令执行错误) +└── PluginNetworkError (网络操作错误) +``` + +### 9.3 PluginBridge 新方法 +- `subscribe_plugin(topic, handler, plugin_name)` — 便捷订阅,同时注册到 CoreBridge 和插件订阅表 + +### 9.4 PluginNetworkBridge 新方法 +- `setup_data_transfer(event_type, handler)` — 跨插件数据传输通道 +- `send_data(target_plugin, event_type, data)` — 向其他插件发送数据 + +### 9.5 PluginService 增强 +- 配置验证:加载时检查 `name`、`version` 必需字段 +- 状态追踪:`plugin_status` 字典跟踪每个插件的 `PluginStatus`