From 3e4256f870058bf4bf6fb27e1e50d412c03caaf8 Mon Sep 17 00:00:00 2001 From: molanp <104612722+molanp@users.noreply.github.com> Date: Thu, 17 Jul 2025 13:13:09 +0800 Subject: [PATCH] =?UTF-8?q?fix(plugin=5Fstore):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E9=80=92=E4=BB=A3=E9=94=99=E8=AF=AF=20-=20=E5=9C=A8=E6=9F=A5?= =?UTF-8?q?=E6=89=BE=E6=8F=92=E4=BB=B6=E6=97=B6=E4=BD=BF=E7=94=A8=20next()?= =?UTF-8?q?=20=E5=87=BD=E6=95=B0=E7=9A=84=E9=BB=98=E8=AE=A4=E5=80=BC=20Non?= =?UTF-8?q?e=EF=BC=8C=E9=81=BF=E5=85=8D=E6=8A=9B=E5=87=BA=20StopIteration?= =?UTF-8?q?=20=E5=BC=82=E5=B8=B8=20-=20=E5=A2=9E=E5=8A=A0=E5=AF=B9?= =?UTF-8?q?=E6=9C=AA=E6=89=BE=E5=88=B0=E6=8F=92=E4=BB=B6=E7=9A=84=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E5=A4=84=E7=90=86=EF=BC=8C=E8=BF=94=E5=9B=9E=E7=9B=B8?= =?UTF-8?q?=E5=BA=94=E7=9A=84=E9=94=99=E8=AF=AF=E4=BF=A1=E6=81=AF=20-=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BA=86=E6=8F=92=E4=BB=B6=E6=9F=A5=E6=89=BE?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=8C=E6=8F=90=E9=AB=98=E4=BA=86=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=9A=84=E5=81=A5=E5=A3=AE=E6=80=A7=E5=92=8C=E5=8F=AF?= =?UTF-8?q?=E8=AF=BB=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zhenxun/builtin_plugins/plugin_store/data_source.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/zhenxun/builtin_plugins/plugin_store/data_source.py b/zhenxun/builtin_plugins/plugin_store/data_source.py index b2dc96dc..58fab1a1 100644 --- a/zhenxun/builtin_plugins/plugin_store/data_source.py +++ b/zhenxun/builtin_plugins/plugin_store/data_source.py @@ -198,7 +198,9 @@ class StoreManager: except ValueError as e: return str(e) db_plugin_list = await cls.get_loaded_plugins("module") - plugin_info = next(p for p in plugin_list if p.module == plugin_key) + plugin_info = next((p for p in plugin_list if p.module == plugin_key), None) + if plugin_info is None: + return f"未找到插件 {plugin_key}" if plugin_info.module in [p[0] for p in db_plugin_list]: return f"插件 {plugin_info.name} 已安装,无需重复安装" is_external = True @@ -307,7 +309,9 @@ class StoreManager: plugin_key = await cls._resolve_plugin_key(plugin_id) except ValueError as e: return str(e) - plugin_info = next(p for p in plugin_list if p.module == plugin_key) + plugin_info = next((p for p in plugin_list if p.module == plugin_key), None) + if plugin_info is None: + return f"未找到插件 {plugin_key}" path = BASE_PATH if plugin_info.github_url: path = BASE_PATH / "plugins" @@ -383,7 +387,9 @@ class StoreManager: plugin_key = await cls._resolve_plugin_key(plugin_id) except ValueError as e: return str(e) - plugin_info = next(p for p in plugin_list if p.module == plugin_key) + plugin_info = next((p for p in plugin_list if p.module == plugin_key), None) + if plugin_info is None: + return f"未找到插件 {plugin_key}" logger.info(f"尝试更新插件 {plugin_info.name}", LOG_COMMAND) db_plugin_list = await cls.get_loaded_plugins("module", "version") suc_plugin = {p[0]: (p[1] or "Unknown") for p in db_plugin_list}