mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 06:12:53 +08:00
fix(plugin_store): 修复递代错误 (#1986)
- 在查找插件时使用 next() 函数的默认值 None,避免抛出 StopIteration 异常 - 增加对未找到插件的错误处理,返回相应的错误信息 - 优化了插件查找逻辑,提高了代码的健壮性和可读性 Co-authored-by: HibiKier <45528451+HibiKier@users.noreply.github.com>
This commit is contained in:
parent
91f35ad63a
commit
3cf7c1d237
@ -198,7 +198,9 @@ class StoreManager:
|
|||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
return str(e)
|
return str(e)
|
||||||
db_plugin_list = await cls.get_loaded_plugins("module")
|
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]:
|
if plugin_info.module in [p[0] for p in db_plugin_list]:
|
||||||
return f"插件 {plugin_info.name} 已安装,无需重复安装"
|
return f"插件 {plugin_info.name} 已安装,无需重复安装"
|
||||||
is_external = True
|
is_external = True
|
||||||
@ -307,7 +309,9 @@ class StoreManager:
|
|||||||
plugin_key = await cls._resolve_plugin_key(plugin_id)
|
plugin_key = await cls._resolve_plugin_key(plugin_id)
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
return str(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
|
path = BASE_PATH
|
||||||
if plugin_info.github_url:
|
if plugin_info.github_url:
|
||||||
path = BASE_PATH / "plugins"
|
path = BASE_PATH / "plugins"
|
||||||
@ -383,7 +387,9 @@ class StoreManager:
|
|||||||
plugin_key = await cls._resolve_plugin_key(plugin_id)
|
plugin_key = await cls._resolve_plugin_key(plugin_id)
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
return str(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)
|
logger.info(f"尝试更新插件 {plugin_info.name}", LOG_COMMAND)
|
||||||
db_plugin_list = await cls.get_loaded_plugins("module", "version")
|
db_plugin_list = await cls.get_loaded_plugins("module", "version")
|
||||||
suc_plugin = {p[0]: (p[1] or "Unknown") for p in db_plugin_list}
|
suc_plugin = {p[0]: (p[1] or "Unknown") for p in db_plugin_list}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user