From 6a84ce2cd817b32f564aac9e9f764a8427d097df Mon Sep 17 00:00:00 2001 From: passthem Date: Mon, 9 Mar 2026 14:56:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BE=9B=E8=AE=A2=E9=98=85=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E7=9A=84=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/subscribe.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 docs/subscribe.md diff --git a/docs/subscribe.md b/docs/subscribe.md new file mode 100644 index 0000000..4d7f8b8 --- /dev/null +++ b/docs/subscribe.md @@ -0,0 +1,37 @@ +# subscribe 模块 + +一套统一的接口,让用户可以订阅一些延迟或者定时消息。 + +```python +import asyncio + +from pathlib import Path + +from konabot.common.subscribe import register_poster_info, broadcast, PosterInfo +from nonebot_plugin_alconna import UniMessage + +# 注册了服务信息,用户可以用「查询可用订阅」指令了解可用的订阅清单。 +# 用户可以使用「订阅 某某服务通知」或者「订阅 某某服务」来订阅消息。 +# 如果用户在群聊发起订阅,则会在 QQ 群订阅,不然会在私聊订阅 +register_poster_info("某某服务通知", PosterInfo( + aliases={"某某服务"}, + description="告诉你关于某某的最新资讯等信息", +)) + +async def main(): + while True: + # 这里的服务 channel 名字必须填写该服务的名字,不可以是 alias + # 这会给所有订阅了该通道的用户发送「向大家发送纯文本通知」 + await broadcast("某某服务通知", "向大家发送纯文本通知") + + # 也可以发送 UniMessage 对象,可以构造包含图片的通知等 + data = Path('image.png').read_bytes() + await broadcast( + "某某服务通知", + UniMessage.text("很遗憾告诉大家,我们倒闭了:").image(raw=data), + ) + + await asyncio.sleep(114.514) +``` + +该模块的代码请查阅 `/konabot/common/subscribe/` 下的文件。