优化插件商店数据源类的插件查询逻辑

简化了ShopManage类中查询插件信息的逻辑。通过新增的_resolve_plugin_key类方法来解析插件ID或模块名,如果解析失败则捕获ValueError异常并返回错误信息。这样可以更清晰地处理插件查询逻辑,并避免冗余代码。
This commit is contained in:
molanp 2024-10-02 15:40:33 +08:00
parent 397c786b85
commit 015809595b

View File

@ -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]: