主动模式最小示例
约 442 字大约 1 分钟
2025-04-28
源代码
import time
from ncatbot.core import BotClient
bot = BotClient()
bot.add_private_event_handler(lambda e: e.reply_sync("你好"))
api = bot.run_blocking(bt_uin="123456", root="1234567") # 启动 NcatBot, NcatBot 接口可用时返回 API 实例
api.post_private_msg_sync(12345678, "你好") # 此时 NcatBot 已经启动完成, 可以正常使用接口
time.sleep(1000)
bot.exit()
print("退出")
代码分析
添加回调函数(可选)
bot.add_private_event_handler(lambda e: e.reply_sync("你好"))
这里使用了 BotClient.add_private_event_handler
添加了一个私聊事件回调函数, 当收到私聊消息时, 会调用这个 lambda
匿名函数。
lambda
匿名函数中使用了同步接口。
也可以用修饰器语法来添加回调函数。
提示
两种添加方式都支持同步和异步回调函数,如果你不熟悉 Python 异步,可以先使用同步语法。同步接口的名称均为 <异步接口名>_sync
。
运行
api = bot.run_blocking(bt_uin="123456", root="1234567") # 启动 NcatBot, NcatBot 接口可用时返回 API 实例
api.post_private_msg_sync(12345678, "你好") # 此时 NcatBot 已经启动完成, 可以正常使用接口, 第一参数为目标 QQ 号。
time.sleep(1000)
这里使用了 BotClient.run_blocking
启动 NcatBot,它返回一个 BotAPI
实例 api
,可以通过 api
调用 NcatBot 接口。
返回 api
后,立刻调用 api.post_private_msg_sync(12345678, "你好")
向用户 12345678 发送一条 你好
私聊消息。
time.sleep(1000)
用于阻塞主线程,NcatBot 系统运行在另一个线程,可以监听事件,在收到私聊消息时调用回调函数回复 你好
。
退出
bot.exit()
主动模式需要自行调用 BotClient.exit
退出 NcatBot 系统。不正常退出会导致插件的可持久化数据无法保存。
版权所有
版权归属:huan-yp