mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 14:22:55 +08:00
优化插件商店数据源类的插件查询逻辑
简化了ShopManage类中查询插件信息的逻辑。通过新增的_resolve_plugin_key类方法来解析插件ID或模块名,如果解析失败则捕获ValueError异常并返回错误信息。这样可以更清晰地处理插件查询逻辑,并避免冗余代码。
This commit is contained in:
parent
397c786b85
commit
015809595b
@ -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]:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user