From c7cbb130442e44ded114d7cb77e597cb7c30e297 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=99=AF=E5=A4=A7=E4=BE=A0?= Date: Sun, 8 Jun 2025 11:30:33 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix=20=E6=8F=92=E4=BB=B6=E5=8D=B8=E8=BD=BD?= =?UTF-8?q?=E5=90=8E=E4=BB=8E=E7=B3=BB=E7=BB=9F=E6=A8=A1=E5=9D=97=E4=B8=AD?= =?UTF-8?q?=E7=A7=BB=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 避免分身时误报插件已存在 --- app/core/plugin.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/core/plugin.py b/app/core/plugin.py index aeb78e24..5455c0ca 100644 --- a/app/core/plugin.py +++ b/app/core/plugin.py @@ -307,6 +307,10 @@ class PluginManager(metaclass=Singleton): """ self.stop(plugin_id) + from sys import modules + + del modules[f"app.plugins.{plugin_id.lower()}"] + def reload_plugin(self, plugin_id: str): """ 将一个插件重新加载到内存 From 9656d6fbd008c0aad26fb7b5bc56577b14cc9450 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=99=AF=E5=A4=A7=E4=BE=A0?= Date: Sun, 8 Jun 2025 21:06:21 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix=20=E5=88=86=E8=BA=AB=E7=B1=BB=E5=90=8D?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=B0=8F=E5=86=99=E5=90=8E=E7=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 避免与分身ID不一致,导致误判没有安装 --- app/core/plugin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/core/plugin.py b/app/core/plugin.py index 5455c0ca..0dfb289d 100644 --- a/app/core/plugin.py +++ b/app/core/plugin.py @@ -1102,7 +1102,7 @@ class PluginManager(metaclass=Singleton): success, msg = self._modify_plugin_files( plugin_dir=clone_plugin_dir, original_id=plugin_id, - suffix=suffix, + suffix=suffix.lower(), name=name, description=description, version=version, From 931be9e6aa9f41d2abe253518833e905c97e189f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=99=AF=E5=A4=A7=E4=BE=A0?= Date: Mon, 9 Jun 2025 09:54:55 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix=20=E5=88=86=E8=BA=AB=E5=A4=8D=E7=94=A8?= =?UTF-8?q?=E5=8E=9F=E6=8F=92=E4=BB=B6=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/core/plugin.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/core/plugin.py b/app/core/plugin.py index 0dfb289d..12559339 100644 --- a/app/core/plugin.py +++ b/app/core/plugin.py @@ -416,13 +416,14 @@ class PluginManager(metaclass=Singleton): return {k: v for k, v in conf.items() if k} return {} - def save_plugin_config(self, pid: str, conf: dict) -> bool: + def save_plugin_config(self, pid: str, conf: dict, force = False) -> bool: """ 保存插件配置 :param pid: 插件ID :param conf: 配置 + :param force: 强制保存 """ - if not self._plugins.get(pid): + if not force and not self._plugins.get(pid): return False SystemConfigOper().set(self._config_key % pid, conf) return True @@ -1132,7 +1133,7 @@ class PluginManager(metaclass=Singleton): # 默认禁用分身插件,让用户手动配置 clone_config['enable'] = False clone_config['enabled'] = False - self.save_plugin_config(clone_id, clone_config) + self.save_plugin_config(clone_id, clone_config, force=True) logger.info(f"已为分身插件 {clone_id} 设置初始配置") else: logger.info(f"原插件 {plugin_id} 没有配置,分身插件 {clone_id} 将使用默认配置")