Merge pull request #4413 from cddjr/fix_plugin

修复分身的一些BUG
This commit is contained in:
jxxghp
2025-06-09 14:42:54 +08:00
committed by GitHub

View File

@@ -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):
"""
将一个插件重新加载到内存
@@ -412,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
@@ -1098,7 +1103,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,
@@ -1128,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} 将使用默认配置")