本文档仅用于灰度测试,接口可能变动,请随时关注群内通知。
# 解压灰度包
unzip dist-5.0.0-dev.0.zip
cd bot-sdk
# 安装依赖(仅需一次)
pip install -r requirements.txt
# 启动
python -m src \
-u ws://localhost:3001 \
-t <你的token> \
-p napcat \
--plugin-dir ./pluginsIM.py 是用户面向的对象层,已帮你把协议细节封装成直观类:
| 类 | 作用 | 常用示例 |
|---|---|---|
User |
任何用户 | user.send_text("hello") |
Group |
任何群 | group.send_text("@all 开工") |
Message |
单条消息 | msg.reply_text("收到") |
MessageContent |
富文本容器 | 见下方“发富文本” |
这些对象只在事件回调里拿到,不要自己 new。
plugins/demo.py
from src.plugins_system import Plugin
from src import Event # 事件对象
class DemoPlugin(Plugin):
name = "demo"
version = "0.1"
async def on_load(self):
# 注册事件:群消息
self.register_handler("message.group", self.on_group_msg)
async def on_group_msg(self, event: Event):
data = event.data
text: str = data["message"][0]["data"]["text"]
if text == "你好":
# 拿到群对象
from src import IMClient
client = IMClient.get_current()
group = await client.get_group(data["group_id"])
await group.send_text("你好,灰度测试!")把 demo.py 丢进启动时 --plugin-dir 指定的文件夹即可,无需重启会自动加载。
| 场景 | 代码 |
|---|---|
| 回复文本 | await msg.reply_text("ok") |
| 发富文本 | await user.send_message(MessageContent([TextNode("文字"), ImageNode("http://i.jpg")])) |
| 获取发送者 | sender = await msg.get_sender() |
| 取好友列表 | friends = await client.get_friends() |
| 撤回自己消息 | await msg.recall() |
-
打开
logs/bot.log看实时日志。 -
插件里任意地方打印:
self.logger.info("任意信息")
-
改完代码保存即热重载(灰度版已开 dev 模式)。
- 仅支持
napcat协议。 - 灰度阶段 API 可能 breaking,请锁定版本号。
- 可以直接实例化
User/Group使用