From bb61f8197cdd2dbf0c9e7d1d55adee35f807316c Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sun, 12 Nov 2023 19:01:25 +0800 Subject: [PATCH] fix #1110 --- app/core/plugin.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/core/plugin.py b/app/core/plugin.py index 5636c6f4..a2475d94 100644 --- a/app/core/plugin.py +++ b/app/core/plugin.py @@ -44,7 +44,6 @@ class PluginManager(metaclass=Singleton): """ 启动加载插件 """ - # 扫描插件目录 plugins = ModuleHelper.load( "app.plugins", @@ -117,7 +116,7 @@ class PluginManager(metaclass=Singleton): # 支持更新的插件自动更新 for plugin in online_plugins: # 只处理已安装的插件 - if plugin.get("id") in install_plugins and not plugin.get("installed"): + if plugin.get("id") in install_plugins and not self.is_plugin_exists(plugin.get("id")): # 下载安装 state, msg = self.pluginhelper.install(pid=plugin.get("id"), repo_url=plugin.get("repo_url")) @@ -372,3 +371,13 @@ class PluginManager(metaclass=Singleton): # 汇总 all_confs.append(conf) return all_confs + + @staticmethod + def is_plugin_exists(pid: str) -> bool: + """ + 判断插件是否存在 + """ + if not pid: + return False + plugin_dir = settings.ROOT_PATH / "app" / "plugins" / pid.lower() + return plugin_dir.exists()