Files
konabot/docs/subscribe.md

1.3 KiB

subscribe 模块

一套统一的接口,让用户可以订阅一些延迟或者定时消息。

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/ 下的文件。