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()