diff --git a/src/nonebot_plugins/liteyuki_pacman/npm.py b/src/nonebot_plugins/liteyuki_pacman/npm.py index 4f9f731..24cf365 100644 --- a/src/nonebot_plugins/liteyuki_pacman/npm.py +++ b/src/nonebot_plugins/liteyuki_pacman/npm.py @@ -105,6 +105,7 @@ disable = "disable" Args["page", int, 1]["num", int, 10], Option( "-m|--markdown", + default=False, action=store_true, help_text="以 Markdown 交互形式显示列表", ), @@ -369,47 +370,7 @@ async def _(result: Arparma, event: T_MessageEvent, bot: T_Bot, npm: Matcher): page = clamp(result.subcommands["list"].args["page"], 1, total) markdown_mode = result.subcommands["list"].options["markdown"].value - if not markdown_mode: - # 文字显示模式 - reply = " - {} | {} -\n".format( - ulang.get("npm.loaded_plugins"), - ulang.get("npm.page", PAGE=page, TOTAL=total), - ) - for pi in range( - (page - 1) * num_per_page, - min(page * num_per_page, len(loaded_plugin_list)), - ): - # 遍历插件,通过插件编号 - storePlugin = loaded_plugin_list[pi] - store_plugin = await get_store_plugin(storePlugin.name) - session_enable = get_plugin_session_enable(event, storePlugin.name) - - if store_plugin: - show_name = store_plugin.name - elif storePlugin.metadata: - show_name = storePlugin.metadata.name - else: - show_name = storePlugin.name - ulang.get("npm.no_description") - - reply += "{}. {}".format(pi + 1, show_name) - - if not get_plugin_can_be_toggle(storePlugin.name): - reply += " [{}{}]".format(ulang.get('npm.cannot'), ulang.get( - "npm.disable" if session_enable else "npm.enable" - )) - - if not plugin_db.where_one( - InstalledPlugin(), "module_name = ?", storePlugin.name - ): - - reply += " [{}{}]".format(ulang.get('npm.cannot'), ulang.get("npm.uninstall")) - - reply += "\n>\t{}\n".format(storePlugin.name) - - await npm.send(reply) - - else: + if markdown_mode: # 已加载插件 | 总计10 | 第1/3页 reply = ( f"# {ulang.get('npm.loaded_plugins')} | " @@ -521,7 +482,47 @@ async def _(result: Arparma, event: T_MessageEvent, bot: T_Bot, npm: Matcher): reply += f"\n{btn_prev} {page}/{total} {btn_next}" img_bytes = await md_to_pic(reply) await UniMessage.send(UniMessage.image(raw=img_bytes)) + else: + + # 文字显示模式 + reply = " - {} | {} -\n".format( + ulang.get("npm.loaded_plugins"), + ulang.get("npm.page", PAGE=page, TOTAL=total), + ) + for pi in range( + (page - 1) * num_per_page, + min(page * num_per_page, len(loaded_plugin_list)), + ): + # 遍历插件,通过插件编号 + storePlugin = loaded_plugin_list[pi] + store_plugin = await get_store_plugin(storePlugin.name) + session_enable = get_plugin_session_enable(event, storePlugin.name) + if store_plugin: + show_name = store_plugin.name + elif storePlugin.metadata: + show_name = storePlugin.metadata.name + else: + show_name = storePlugin.name + ulang.get("npm.no_description") + + reply += "{}. {}".format(pi + 1, show_name) + + if not get_plugin_can_be_toggle(storePlugin.name): + reply += " [{}{}]".format(ulang.get('npm.cannot'), ulang.get( + "npm.disable" if session_enable else "npm.enable" + )) + + if not plugin_db.where_one( + InstalledPlugin(), "module_name = ?", storePlugin.name + ): + + reply += " [{}{}]".format(ulang.get('npm.cannot'), ulang.get("npm.uninstall")) + + reply += "\n>\t{}\n".format(storePlugin.name) + + await npm.send(reply) + else: if await SUPERUSER(bot, event): btn_enable_global = md.btn_cmd( diff --git a/src/nonebot_plugins/trimo_plugin_handle/__init__.py b/src/nonebot_plugins/trimo_plugin_handle/__init__.py index a86969d..b2732a7 100644 --- a/src/nonebot_plugins/trimo_plugin_handle/__init__.py +++ b/src/nonebot_plugins/trimo_plugin_handle/__init__.py @@ -315,7 +315,7 @@ handle_update_idiom = on_alconna( Option( "-e|--explanation", default="", - args=Args["explanation", str, "未提供该成语的解释说明"], + args=Args["explanation", str, ""], ), Option( "-d|--hard", @@ -341,16 +341,12 @@ async def _( ): if not (idiom := result.main_args["idiom"]): - await handle_update_idiom.finish("请在命令后带上你要增加的成语") + await handle_update_idiom.finish("用法:新成语 <成语> [-e|--explanation <释义>] [-d|--hard]") existance = idiom in HANDLE_LEGAL_PHRASES try: - explanation = ( - result.options["explanation"].args["explanation"] - if result.options["explanation"].args["explanation"] - else None - ) + explanation = result.options["explanation"].args["explanation"] or None except: explanation = None @@ -370,17 +366,26 @@ async def _( indent=4, sort_keys=True, ) - if (not (hard := result.options["hard"].value)) and ( - idiom not in HANDLE_COMMON_PHRASES - ): - HANDLE_COMMON_PHRASES.append(idiom) - json.dump( - HANDLE_COMMON_PHRASES, - handle_common_idiom_path.open("w", encoding="utf-8"), - ensure_ascii=False, - indent=4, - sort_keys=True, - ) + if hard := result.options["hard"].value: + if idiom in HANDLE_COMMON_PHRASES: + HANDLE_COMMON_PHRASES.remove(idiom) + json.dump( + HANDLE_COMMON_PHRASES, + handle_common_idiom_path.open("w", encoding="utf-8"), + ensure_ascii=False, + indent=4, + sort_keys=True, + ) + else: + if idiom not in HANDLE_COMMON_PHRASES: + HANDLE_COMMON_PHRASES.append(idiom) + json.dump( + HANDLE_COMMON_PHRASES, + handle_common_idiom_path.open("w", encoding="utf-8"), + ensure_ascii=False, + indent=4, + sort_keys=True, + ) HANDLE_ANSWER_PHRASES[idiom] = { "explanation": explanation, @@ -403,8 +408,9 @@ async def _( ) await handle_update_idiom.finish( - "成功{}:{}\n当前词库总数:{}个,普通模式成语:{}个\n当前成语信息如下:{}".format( + "成功{}:[{}词汇]{}\n当前词库总数:{}个,普通模式成语:{}个\n当前成语信息如下:{}".format( "修改" if existance else "新增", + "困难" if hard else "普通", idiom, len(HANDLE_LEGAL_PHRASES), len(HANDLE_COMMON_PHRASES),