| import logging | |
| from typing import Optional | |
| from .core import JsonContentExtractorCore | |
| logger = logging.getLogger(__name__) | |
| class JsonContentExtractorPlugin: | |
| """从JSON文件中提取content字段的插件""" | |
| def __init__(self): | |
| self.name = "json" | |
| self.version = "1.0.0" | |
| self.enabled = False | |
| self.core: Optional[JsonContentExtractorCore] = None | |
| def on_enable(self): | |
| """启用插件并初始化核心逻辑""" | |
| self.enabled = True | |
| self.core = JsonContentExtractorCore() | |
| self._sync_api_core(self.core) | |
| logger.info(f"JSON内容提取插件 {self.version} 已启用") | |
| def on_disable(self): | |
| """禁用插件并释放资源""" | |
| self.enabled = False | |
| self._sync_api_core(None) | |
| self.core = None | |
| logger.info(f"JSON内容提取插件 {self.version} 已禁用") | |
| def get_status(self) -> dict: | |
| """获取插件运行状态""" | |
| return { | |
| "name": self.name, | |
| "version": self.version, | |
| "enabled": self.enabled, | |
| "message": "运行正常" if self.enabled else "已禁用", | |
| } | |
| def _sync_api_core(self, core: Optional[JsonContentExtractorCore]) -> None: | |
| """同步API模块的插件实例和核心实例""" | |
| try: | |
| from . import api | |
| api.set_plugin_instance(self) | |
| api.set_core_instance(core) | |
| except ImportError as e: | |
| logger.warning(f"同步JSON内容提取插件API实例失败: {e}") | |
| plugin = JsonContentExtractorPlugin() | |