From 015809595b3fa8fc720d5cbcdd1f4d2b050043f4 Mon Sep 17 00:00:00 2001 From: molanp <104612722+molanp@users.noreply.github.com> Date: Wed, 2 Oct 2024 15:40:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8F=92=E4=BB=B6=E5=95=86?= =?UTF-8?q?=E5=BA=97=E6=95=B0=E6=8D=AE=E6=BA=90=E7=B1=BB=E7=9A=84=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E6=9F=A5=E8=AF=A2=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 简化了ShopManage类中查询插件信息的逻辑。通过新增的_resolve_plugin_key类方法来解析插件ID或模块名,如果解析失败则捕获ValueError异常并返回错误信息。这样可以更清晰地处理插件查询逻辑,并避免冗余代码。 --- .../builtin_plugins/plugin_store/data_source.py | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/zhenxun/builtin_plugins/plugin_store/data_source.py b/zhenxun/builtin_plugins/plugin_store/data_source.py index 50a5d133..d63309b8 100644 --- a/zhenxun/builtin_plugins/plugin_store/data_source.py +++ b/zhenxun/builtin_plugins/plugin_store/data_source.py @@ -185,17 +185,10 @@ class ShopManage: str: 返回消息 """ data: dict[str, StorePluginInfo] = await cls.get_data() - if isinstance(plugin_id, int) and (plugin_id < 0 or plugin_id >= len(data)): - return "插件ID不存在..." - elif isinstance(plugin_id, str) and plugin_id not in [ - v.module for k, v in data.items() - ]: - return "插件Module不存在..." - plugin_key = ( - list(data.keys())[plugin_id] - if isinstance(plugin_id, int) - else {v.module: k for k, v in data.items()}[plugin_id] - ) + try: + plugin_key = await cls._resolve_plugin_key(plugin_id) + except ValueError as e: + return str(e) plugin_list = await cls.get_loaded_plugins("module") plugin_info = data[plugin_key] if plugin_info.module in [p[0] for p in plugin_list]: