summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyomotoi <[email protected]>2022-10-13 21:49:20 +0800
committerKyomotoi <[email protected]>2022-10-13 21:49:20 +0800
commit6098b1b82942ef7ac89bbe8d393ba12bfea684df (patch)
tree2ab9f04a7268d867119a37e4e220eb49cc05d9ff
parent7bef2293b2bc03984bbcd664be20867f4a268f00 (diff)
downloadATRI-6098b1b82942ef7ac89bbe8d393ba12bfea684df.tar.gz
ATRI-6098b1b82942ef7ac89bbe8d393ba12bfea684df.tar.bz2
ATRI-6098b1b82942ef7ac89bbe8d393ba12bfea684df.zip
🎨 优化长消息构造, 优化部分代码
-rw-r--r--ATRI/plugins/broadcast.py2
-rw-r--r--ATRI/plugins/help/data_source.py62
-rw-r--r--ATRI/plugins/repo.py9
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)])