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