From 00c97e4af2d36b46b10fe232ad46a80c0cb939df Mon Sep 17 00:00:00 2001 From: qinglong Date: Sun, 14 Jun 2026 10:24:08 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20PluginService=E8=87=AA=E5=8A=A8=E4=BB=8E?= =?UTF-8?q?.example=E6=A8=A1=E6=9D=BF=E5=88=9B=E5=BB=BAconfig.yaml=20(Wind?= =?UTF-8?q?ows=E5=85=BC=E5=AE=B9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因: Sentinel的config.yaml被gitignore, 首次运行时 load_plugin()要求config.yaml存在才能继续, 但Sentinel的 自动复制逻辑在initialize()中, 太晚了。 修复: PluginService.load_plugin()检测缺失时自动复制模板 Co-Authored-By: Claude --- plugins/sentinel/__init__.py | 1 + services/plugin_service.py | 14 ++++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/plugins/sentinel/__init__.py b/plugins/sentinel/__init__.py index 1dafd1b..06c860d 100644 --- a/plugins/sentinel/__init__.py +++ b/plugins/sentinel/__init__.py @@ -4,6 +4,7 @@ import logging import asyncio import os import time +import shutil import yaml import urllib.request import json as _json diff --git a/services/plugin_service.py b/services/plugin_service.py index 5b830e4..39c6d3a 100644 --- a/services/plugin_service.py +++ b/services/plugin_service.py @@ -312,12 +312,18 @@ class PluginService: logger.error(f"插件目录不存在: {plugin_path}") return False - # 检查插件配置文件 + # 检查插件配置文件 (自动从 .example 模板创建) config_file = plugin_path / "config.yaml" if not config_file.exists(): - logger.error(f"插件配置文件不存在: {config_file}") - return False - + template = plugin_path / "config.yaml.example" + if template.exists(): + import shutil as _shutil + _shutil.copy(template, config_file) + logger.info(f"📋 从模板创建插件配置: {config_file}") + else: + logger.error(f"插件配置文件不存在: {config_file}") + return False + # 加载插件配置 with open(config_file, 'r', encoding='utf-8') as f: plugin_config = yaml.safe_load(f)