# NoneBot.drivers 模块

# 后端驱动适配基类

各驱动请继承以下基类

# class Driver

基类:abc.ABC

Driver 基类。

# _adapters

  • 类型

    Dict[str, Type[Bot]]

  • 说明

    已注册的适配器列表

# _bot_connection_hook

  • 类型

    Set[T_BotConnectionHook]

  • 说明

    Bot 连接建立时执行的函数

# _bot_disconnection_hook

  • 类型

    Set[T_BotDisconnectionHook]

  • 说明

    Bot 连接断开时执行的函数

# __init__(env, config)

  • 参数

    • env: Env: 包含环境信息的 Env 对象

    • config: Config: 包含配置信息的 Config 对象

# env

  • 类型

    str

  • 说明

    环境名称

# config

  • 类型

    Config

  • 说明

    配置对象

# _clients

  • 类型

    Dict[str, Bot]

  • 说明

    已连接的 Bot

# property bots

  • 类型

    Dict[str, Bot]

  • 说明

    获取当前所有已连接的 Bot

# register_adapter(name, adapter, **kwargs)

  • 说明

    注册一个协议适配器

  • 参数

    • name: str: 适配器名称,用于在连接时进行识别

    • adapter: Type[Bot]: 适配器 Class

    • **kwargs: 其他传递给适配器的参数

# abstract property type

驱动类型名称

# abstract property logger

驱动专属 logger 日志记录器

# abstract run(*args, **kwargs)

  • 说明

    启动驱动框架

  • 参数

    • *args

    • **kwargs

# abstract on_startup(func)

注册一个在驱动启动时运行的函数

# abstract on_shutdown(func)

注册一个在驱动停止时运行的函数

# on_bot_connect(func)

  • 说明

    装饰一个函数使他在 bot 通过 WebSocket 连接成功时执行。

  • 函数参数

    • bot: Bot: 当前连接上的 Bot 对象

# on_bot_disconnect(func)

  • 说明

    装饰一个函数使他在 bot 通过 WebSocket 连接断开时执行。

  • 函数参数

    • bot: Bot: 当前连接上的 Bot 对象

# _bot_connect(bot)

在 WebSocket 连接成功后,调用该函数来注册 bot 对象

# _bot_disconnect(bot)

在 WebSocket 连接断开后,调用该函数来注销 bot 对象

# class ForwardDriver

基类:nonebot.drivers.Driver

Forward Driver 基类。将客户端框架封装,以满足适配器使用。

# abstract setup_http_polling(setup)

  • 说明

    注册一个 HTTP 轮询连接,如果传入一个函数,则该函数会在每次连接时被调用

  • 参数

    • setup: Union[HTTPPollingSetup, Callable[[], Awaitable[HTTPPollingSetup]]]

# abstract setup_websocket(setup)

  • 说明

    注册一个 WebSocket 连接,如果传入一个函数,则该函数会在每次重连时被调用

  • 参数

    • setup: Union[WebSocketSetup, Callable[[], Awaitable[WebSocketSetup]]]

# class ReverseDriver

基类:nonebot.drivers.Driver

Reverse Driver 基类。将后端框架封装,以满足适配器使用。

# abstract property server_app

驱动 APP 对象

# abstract property asgi

驱动 ASGI 对象

# class HTTPConnection

基类:abc.ABC

# http_version

One of "1.0", "1.1" or "2".

# scheme

URL scheme portion (likely "http" or "https").

# path

HTTP request target excluding any query string, with percent-encoded sequences and UTF-8 byte sequences decoded into characters.

# query_string

URL portion after the ?, percent-encoded.

# headers

A dict of name-value pairs, where name is the header name, and value is the header value.

Order of header values must be preserved from the original HTTP request; order of header names is not important.

Header names must be lowercased.

# abstract property type

Connection type.

# class HTTPRequest

基类:nonebot.drivers.HTTPConnection

HTTP 请求封装。参考 asgi http scope (opens new window)

# method

The HTTP method name, uppercased.

# body

Body of the request.

Optional; if missing defaults to b"".

# property type

Always http

# class HTTPResponse

基类:object

HTTP 响应封装。参考 asgi http scope (opens new window)

# status

HTTP status code.

# body

HTTP body content.

Optional; if missing defaults to None.

# headers

A dict of name-value pairs, where name is the header name, and value is the header value.

Order must be preserved in the HTTP response.

Header names must be lowercased.

Optional; if missing defaults to an empty dict.

# property type

Always http

# class WebSocket

基类:nonebot.drivers.HTTPConnection, abc.ABC

WebSocket 连接封装。参考 asgi websocket scope (opens new window)

# property type

Always websocket

# abstract property closed

  • 类型

    bool

  • 说明

    连接是否已经关闭

# abstract async accept()

接受 WebSocket 连接请求

# abstract async close(code)

关闭 WebSocket 连接请求

# abstract async receive()

接收一条 WebSocket text 信息

# abstract async receive_bytes()

接收一条 WebSocket binary 信息

# abstract async send(data)

发送一条 WebSocket text 信息

# abstract async send_bytes(data)

发送一条 WebSocket binary 信息

# class HTTPPollingSetup

基类:object

# adapter

协议适配器名称

# self_id

机器人 ID

# url

URL

# method

HTTP method

# body

HTTP body

# headers

HTTP headers

# http_version

HTTP version

# poll_interval

HTTP 轮询间隔

# class WebSocketSetup

基类:object

# adapter

协议适配器名称

# self_id

机器人 ID

# url

URL

# headers

HTTP headers

# reconnect_interval

WebSocket 重连间隔