nonebot2/website/docs/tutorial/register-adapter.md
2022-01-30 18:26:26 +08:00

2.4 KiB
Raw Blame History

sidebar_position description options
6 协议适配器的功能与使用
menu
weight category
23 guide

使用适配器

:::tip 提示 如何安装协议适配器请参考 安装协议适配器 :::

协议适配器的功能

由于 NoneBot 的跨平台特性,需要支持不同的协议,因此需要对特定的平台协议编写一个转换器。

协议适配器即是充当中间人的转换器,它将驱动器所收到的数据转换为可以被 NoneBot 处理的事件 Event并将事件传递给 NoneBot。

同时,协议适配器还会处理 API 调用,转换为可以被驱动器处理的数据发送出去。

注册协议适配器

NoneBot 在默认情况下并不会加载任何协议适配器,需要自己手动注册。下方是个加载协议适配器的例子:

import nonebot
from your_adapter_package import Adapter

nonebot.init()
driver = nonebot.get_driver()
driver.register_adapter(Adapter)

nonebot.run()

加载步骤如下:

导入协议适配器

首先从你需要的协议适配器的包中导入适配器类,通常为 Adapter

import nonebot
from your_adapter_package import Adapter

nonebot.init()
driver = nonebot.get_driver()
driver.register_adapter(Adapter)

nonebot.run()

获得驱动器实例

加载协议适配器需要通过驱动器来进行,因此,你需要先初始化 NoneBot并获得驱动器实例。

import nonebot
from your_adapter_package import Adapter

nonebot.init()
driver = nonebot.get_driver()
driver.register_adapter(Adapter)

nonebot.run()

注册

获得驱动器实例后,你需要调用 register_adapter 方法来注册协议适配器。NoneBot 会通过协议适配器的 get_name 方法来获得协议适配器的名字。

:::warning 注意 你可以多次调用来注册多个协议适配器,但不能注册多次相同的协议适配器,发生这种情况时 NoneBot 会给出一个警告并忽略这次注册。 :::

import nonebot
from your_adapter_package import Adapter

nonebot.init()
driver = nonebot.get_driver()
driver.register_adapter(Adapter)

nonebot.run()

:::danger 警告 协议适配器需要在 NoneBot 启动前进行注册,即 nonebot.run() 之前,否则会出现未知的错误。 :::