diff options
author | Kyomotoi <[email protected]> | 2022-10-13 21:49:20 +0800 |
---|---|---|
committer | Kyomotoi <[email protected]> | 2022-10-13 21:49:20 +0800 |
commit | 6098b1b82942ef7ac89bbe8d393ba12bfea684df (patch) | |
tree | 2ab9f04a7268d867119a37e4e220eb49cc05d9ff | |
parent | 7bef2293b2bc03984bbcd664be20867f4a268f00 (diff) | |
download | ATRI-6098b1b82942ef7ac89bbe8d393ba12bfea684df.tar.gz ATRI-6098b1b82942ef7ac89bbe8d393ba12bfea684df.tar.bz2 ATRI-6098b1b82942ef7ac89bbe8d393ba12bfea684df.zip |
🎨 优化长消息构造, 优化部分代码
-rw-r--r-- | ATRI/plugins/broadcast.py | 2 | ||||
-rw-r--r-- | ATRI/plugins/help/data_source.py | 62 | ||||
-rw-r--r-- | ATRI/plugins/repo.py | 9 |
3 files changed, 40 insertions, 33 deletions
diff --git a/ATRI/plugins/broadcast.py b/ATRI/plugins/broadcast.py index 10bfa03..83f1d23 100644 --- a/ATRI/plugins/broadcast.py +++ b/ATRI/plugins/broadcast.py @@ -92,7 +92,7 @@ async def _(bot: Bot, event: MessageEvent, s_msg: str = ArgPlainText("bc_msg")): fl_g=fl_g, f_g=", ".join(map(str, fl_g)), ) - await caster.finish(repo_msg) + await caster.finish(Message(repo_msg)) rej_broadcast = BroadCast().on_command( diff --git a/ATRI/plugins/help/data_source.py b/ATRI/plugins/help/data_source.py index a99b92e..b1d952e 100644 --- a/ATRI/plugins/help/data_source.py +++ b/ATRI/plugins/help/data_source.py @@ -5,23 +5,25 @@ from tabulate import tabulate from ATRI import __version__, conf from ATRI.rule import to_bot +from ATRI.message import MessageBuilder from ATRI.service import Service, SERVICES_DIR, ServiceTools -SERVICE_INFO_FORMAT = """ -服务名:{service} -说明:{docs} -可用命令:\n {cmd_list} -是否全局启用:{enabled} -Tip: @bot 帮助 [服务] [命令] 以查看对应命令详细信息 -""".strip() - -COMMAND_INFO_FORMAT = """ -命令:{cmd} -类型:{cmd_type} -说明:{docs} -更多触发方式:{aliases} -""".strip() +__SERVICE_INFO_FORMAT = ( + MessageBuilder("服务名:{service}") + .text("说明:{docs}") + .text("可用命令:\n{cmd_list}") + .text("是否全局启用:{enabled}") + .text("Tip: @bot 帮助 [服务] [命令] 以查看对应命令详细信息") + .done() +) +__COMMAND_INFO_FORMAT = ( + MessageBuilder("命令:{cmd}") + .text("类型:{cmd_type}") + .text("说明:{docs}") + .text("更多触发方式:{aliases}") + .done() +) class Helper(Service): @@ -31,11 +33,11 @@ class Helper(Service): @staticmethod def menu() -> str: return ( - "哦呀?~需要帮助?\n" - "关于 -查看bot基本信息\n" - "服务列表 -以查看所有可用服务\n" - "帮助 [服务] -以查看对应服务帮助\n" - "Tip: 均需要at触发。@bot 菜单 以打开此页面" + MessageBuilder("哦呀?~需要帮助?") + .text("关于 查看bot基本信息") + .text("服务列表 -以查看所有可用服务") + .text("帮助 [服务] -以查看对应服务帮助") + .text("Tip: 均需要at触发。@bot 菜单 以打开此页面") ) @staticmethod @@ -45,12 +47,12 @@ class Helper(Service): temp_list.append(i) nickname = "、".join(map(str, temp_list)) return ( - "唔...是来认识咱的么\n" - f"可以称呼咱:{nickname}\n" - f"咱的型号是:{__version__}\n" - "想进一步了解:\n" - "atri.imki.moe\n" - "进不去: project-atri-docs.vercel.app" + MessageBuilder("唔...是来认识咱的么") + .text(f"可以称呼咱:{nickname}") + .text(f"咱的型号是:{__version__}") + .text("想进一步了解:") + .text("atri.imki.moe") + .text("进不去: project-atri-docs.vercel.app") ) @staticmethod @@ -75,7 +77,11 @@ class Helper(Service): tablefmt="plain", ) repo = f"咱搭载了以下服务~\n{table}\n@bot 帮助 [服务] -以查看对应服务帮助" - return repo + return ( + MessageBuilder("咱搭载了以下服务~") + .text(table) + .text("@bot 帮助 [服务] -以查看对应服务帮助") + ) @staticmethod def service_info(service: str) -> str: @@ -91,7 +97,7 @@ class Helper(Service): _service_cmd_list = list(data.get("cmd_list", {"error"})) service_cmd_list = "\n".join(map(str, _service_cmd_list)) - repo = SERVICE_INFO_FORMAT.format( + repo = __SERVICE_INFO_FORMAT.format( service=service_name, docs=service_docs, cmd_list=service_cmd_list, @@ -114,7 +120,7 @@ class Helper(Service): docs = cmd_info.get("docs", "ignore") aliases = cmd_info.get("aliases", "ignore") - repo = COMMAND_INFO_FORMAT.format( + repo = __COMMAND_INFO_FORMAT.format( cmd=cmd, cmd_type=cmd_type, docs=docs, aliases=aliases ) return repo diff --git a/ATRI/plugins/repo.py b/ATRI/plugins/repo.py index 561e20b..2b0962f 100644 --- a/ATRI/plugins/repo.py +++ b/ATRI/plugins/repo.py @@ -6,6 +6,7 @@ from nonebot.adapters.onebot.v11 import Bot, MessageEvent, Message from nonebot.adapters.onebot.v11.helpers import Cooldown from ATRI import conf +from ATRI.rule import is_in_service from ATRI.service import Service from ATRI.message import MessageBuilder @@ -16,16 +17,16 @@ _repo_flmt_notice = choice(["慢...慢一..点❤", "冷静1下", "歇会歇会~ _REPO_FORMAT = ( MessageBuilder("来自用户{user}反馈:") .text("{msg}") + .text("- 如有类似 CQ 一类关键词出现") + .text("- 无需担心, 关注其它内容即可") .done() ) -class Repo(Service): - def __init__(self): - Service.__init__(self, "反馈", "向维护者发送消息") +repo = Service("反馈", "向维护者发送消息", rule=is_in_service("反馈")) -reporter = Repo().on_command("来杯红茶", "向维护者发送消息", aliases={"反馈", "报告"}) +reporter = repo.on_command("来杯红茶", "向维护者发送消息", aliases={"反馈", "报告"}) @reporter.handle([Cooldown(120, prompt=_repo_flmt_notice)]) |