From 252d45c79bd58d92b1f2463414ed6a33116ff4e6 Mon Sep 17 00:00:00 2001 From: HibiKier <775757368@qq.com> Date: Fri, 3 Jun 2022 00:59:00 +0800 Subject: [PATCH] fix webui update plugin_shop --- README.md | 5 +++++ basic_plugins/plugin_shop/__init__.py | 2 +- basic_plugins/plugin_shop/data_source.py | 9 ++++++--- plugins/web_ui/api/plugins.py | 4 +--- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 1ba9907e..ceb691a9 100644 --- a/README.md +++ b/README.md @@ -243,6 +243,11 @@ __Docker 最新版本由 [Sakuracio](https://github.com/Sakuracio) 提供__ ## 更新 +### 2022/6/3 + +* 修复了webUI插件相关API问题 +* 插件仓库在已安装插件边上会提示\[已安装] + ### 2022/5/31 * 修复开启/关闭全部功能时帮助图片未重绘 [@pull/721](https://github.com/HibiKier/zhenxun_bot/pull/721) diff --git a/basic_plugins/plugin_shop/__init__.py b/basic_plugins/plugin_shop/__init__.py index 4d7de6b1..e4dc0b88 100644 --- a/basic_plugins/plugin_shop/__init__.py +++ b/basic_plugins/plugin_shop/__init__.py @@ -16,7 +16,7 @@ usage: 指令: 查看插件仓库 更新插件仓库 - 安装插件 [name/id] + 安装插件 [name/id] (重新安装等同于更新) 卸载插件 [name/id] """.strip() __plugin_des__ = "从真寻适配仓库中下载插件" diff --git a/basic_plugins/plugin_shop/data_source.py b/basic_plugins/plugin_shop/data_source.py index 37c959ce..41ae6ce2 100644 --- a/basic_plugins/plugin_shop/data_source.py +++ b/basic_plugins/plugin_shop/data_source.py @@ -3,6 +3,7 @@ import shutil import zipfile from pathlib import Path from typing import Union, Tuple +from utils.manager import plugins_manager import ujson as json @@ -76,7 +77,7 @@ async def install_plugin(name: str) -> str: os.system( f"poetry run pip install -r {(extensive_plugin_path / f'{name}' / 'requirements.txt').absolute()}" ) - with open(extensive_plugin_path / f'{name}' / "plugin_info.json", 'w') as f: + with open(extensive_plugin_path / f"{name}" / "plugin_info.json", "w") as f: json.dump(data[name], f, ensure_ascii=False, indent=4) logger.debug("移动插件文件夹完成...") logger.info(f"成功安装插件 {name} 成功!\n{tmp}") @@ -115,6 +116,7 @@ async def show_plugin_repo() -> Union[int, str]: if code != 200: return code plugin_info = json.load(open(plugin_json, "r", encoding="utf8")) + load_plugin_list = plugins_manager.get_data().keys() image_list = [] w, h = 0, 0 line_height = 10 @@ -129,8 +131,9 @@ async def show_plugin_repo() -> Union[int, str]: "github_url": plugin_info[key]["github_url"], } s = ( - f'id:{i+1}\n名称:{plugin_info[key]["plugin_name"]}\n' - f'模块:{key}\n' + f'id:{i+1}\n名称:{plugin_info[key]["plugin_name"]}' + f' \t\t{"[已安装]" if key in load_plugin_list else ""}\n' + f"模块:{key}\n" f'作者:{plugin_info[key]["author"]}\n' f'版本:{plugin_info[key]["version"]}\n' f'简介:{plugin_info[key]["introduction"]}\n' diff --git a/plugins/web_ui/api/plugins.py b/plugins/web_ui/api/plugins.py index d03abe32..dbadfd88 100644 --- a/plugins/web_ui/api/plugins.py +++ b/plugins/web_ui/api/plugins.py @@ -108,7 +108,7 @@ def _(plugin: Plugin, user: User = Depends(token_to_user)) -> Result: if str(c.value).lower() in ["true", "false"] and ( c.default_value is None or isinstance(c.default_value, bool) ): - c.value = True if str(c.value).lower() == "true" else False + c.value = str(c.value).lower() == "true" elif isinstance( Config.get_config(plugin.model, c.key, c.value), int ) or isinstance(c.default_value, int): @@ -127,8 +127,6 @@ def _(plugin: Plugin, user: User = Depends(token_to_user)) -> Result: else: if plugin.plugin_settings: for key, value in plugin.plugin_settings: - if plugin.plugin_settings.cmd: - plugin.plugin_settings.cmd = plugin.plugin_settings.cmd.split(',') plugins2settings_manager.set_module_data(plugin.model, key, value) if plugin.plugin_manager: for key, value in plugin.plugin_manager: