nonebot2/website/versioned_docs/version-2.0.0rc2/api/drivers/index.md
github-actions[bot] d83866f03b 🔖 Release 2.0.0rc2
2022-11-24 03:55:37 +00:00

9.3 KiB

sidebar_position description
0 nonebot.drivers 模块

nonebot.drivers

本模块定义了驱动适配器基类。

各驱动请继承以下基类。

abstract class Driver(env, config)

  • 说明

    Driver 基类。

  • 参数

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

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

property bots

  • 类型: dict[str, Bot]

  • 说明: 获取当前所有已连接的 Bot

abstract property logger

  • 类型:

  • 说明: 驱动专属 logger 日志记录器

abstract property type

  • 类型: str

  • 说明: 驱动类型名称

classmethod on_bot_connect(cls, func)

  • 说明

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

    钩子函数参数:

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

    • func ((*Any, **Any) -> Any | (*Any, **Any) -> Awaitable[Any])
  • 返回

    • (*Any, **Any) -> Any | (*Any, **Any) -> Awaitable[Any]

classmethod on_bot_disconnect(cls, func)

  • 说明

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

    钩子函数参数:

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

    • func ((*Any, **Any) -> Any | (*Any, **Any) -> Awaitable[Any])
  • 返回

    • (*Any, **Any) -> Any | (*Any, **Any) -> Awaitable[Any]

abstract method on_shutdown(self, func)

  • 说明

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

  • 参数

    • func (Callable)
  • 返回

    • Callable

abstract method on_startup(self, func)

  • 说明

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

  • 参数

    • func (Callable)
  • 返回

    • Callable

method register_adapter(self, adapter, **kwargs)

  • 说明

    注册一个协议适配器

  • 参数

    • adapter (Type[Adapter]): 适配器类

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

  • 返回

    • None

abstract method run(self, *args, **kwargs)

  • 说明

    启动驱动框架

  • 参数

    • *args

    • **kwargs

  • 返回

    • Unknown

class Cookies(cookies=None)

  • 参数

    • cookies (NoneType | Cookies | http.cookiejar.CookieJar | dict[str, str] | list[tuple[str, str]])

method clear(self, domain=None, path=None)

  • 参数

    • domain (str | None)

    • path (str | None)

  • 返回

    • None

method delete(self, name, domain=None, path=None)

  • 参数

    • name (str)

    • domain (str | None)

    • path (str | None)

  • 返回

    • None

method get(self, name, default=None, domain=None, path=None)

  • 参数

    • name (str)

    • default (str | None)

    • domain (str | None)

    • path (str | None)

  • 返回

    • str | None

method set(self, name, value, domain='', path='/')

  • 参数

    • name (str)

    • value (str)

    • domain (str)

    • path (str)

  • 返回

    • None

method update(self, cookies=None)

  • 参数

    • cookies (NoneType | Cookies | http.cookiejar.CookieJar | dict[str, str] | list[tuple[str, str]])
  • 返回

    • None

class Request(method, url, *, params=None, headers=None, cookies=None, content=None, data=None, json=None, files=None, version=HTTPVersion.H11, timeout=None, proxy=None)

  • 参数

    • method (str | bytes)

    • url (URL | str | tuple[bytes, bytes, int | None, bytes])

    • params (NoneType | str | Mapping[str, str | int | float | list[str | int | float]] | list[tuple[str, str | int | float | list[str | int | float]]])

    • headers (NoneType | multidict._multidict.CIMultiDict[str] | dict[str, str] | list[tuple[str, str]])

    • cookies (NoneType | Cookies | http.cookiejar.CookieJar | dict[str, str] | list[tuple[str, str]])

    • content (str | bytes | NoneType)

    • data (dict | None)

    • json (Any)

    • files (dict[str, IO[bytes] | bytes | tuple[str | None, IO[bytes] | bytes] | tuple[str | None, IO[bytes] | bytes, str | None]] | list[tuple[str, IO[bytes] | bytes | tuple[str | None, IO[bytes] | bytes] | tuple[str | None, IO[bytes] | bytes, str | None]]] | NoneType)

    • version (str | nonebot.internal.driver.model.HTTPVersion)

    • timeout (float | None)

    • proxy (str | None)

class Response(status_code, *, headers=None, content=None, request=None)

  • 参数

    • status_code (int)

    • headers (NoneType | multidict._multidict.CIMultiDict[str] | dict[str, str] | list[tuple[str, str]])

    • content (str | bytes | NoneType)

    • request (nonebot.internal.driver.model.Request | None)

abstract class WebSocket(*, request)

  • 参数

    • request (nonebot.internal.driver.model.Request)

abstract property closed

  • 类型: bool

  • 说明: 连接是否已经关闭

abstract async method accept(self)

  • 说明

    接受 WebSocket 连接请求

  • 返回

    • None

abstract async method close(self, code=1000, reason='')

  • 说明

    关闭 WebSocket 连接请求

  • 参数

    • code (int)

    • reason (str)

  • 返回

    • None

abstract async method receive(self)

  • 说明

    接收一条 WebSocket text/bytes 信息

  • 返回

    • str | bytes

abstract async method receive_bytes(self)

  • 说明

    接收一条 WebSocket binary 信息

  • 返回

    • bytes

abstract async method receive_text(self)

  • 说明

    接收一条 WebSocket text 信息

  • 返回

    • str

async method send(self, data)

  • 说明

    发送一条 WebSocket text/bytes 信息

  • 参数

    • data (str | bytes)
  • 返回

    • None

abstract async method send_bytes(self, data)

  • 说明

    发送一条 WebSocket binary 信息

  • 参数

    • data (bytes)
  • 返回

    • None

abstract async method send_text(self, data)

  • 说明

    发送一条 WebSocket text 信息

  • 参数

    • data (str)
  • 返回

    • None

enum HTTPVersion

  • 说明

    An enumeration.

  • 枚举成员

    • H10

    • H11

    • H2

abstract class ForwardMixin()

  • 说明

    客户端混入基类。

abstract property type

  • 类型: str

  • 说明: 客户端驱动类型名称

abstract async method request(self, setup)

  • 说明

    发送一个 HTTP 请求

  • 参数

    • setup (nonebot.internal.driver.model.Request)
  • 返回

    • nonebot.internal.driver.model.Response

abstract method websocket(self, setup)

  • 说明

    发起一个 WebSocket 连接

  • 参数

    • setup (nonebot.internal.driver.model.Request)
  • 返回

    • AsyncGenerator[nonebot.internal.driver.model.WebSocket, NoneType]

abstract class ForwardDriver(env, config)

  • 说明

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

  • 参数

abstract class ReverseDriver(env, config)

  • 说明

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

  • 参数

abstract property asgi

  • 类型: Any

  • 说明: 驱动 ASGI 对象

abstract property server_app

  • 类型: Any

  • 说明: 驱动 APP 对象

abstract method setup_http_server(self, setup)

  • 说明

    设置一个 HTTP 服务器路由配置

  • 参数

    • setup (HTTPServerSetup)
  • 返回

    • None

abstract method setup_websocket_server(self, setup)

  • 说明

    设置一个 WebSocket 服务器路由配置

  • 参数

    • setup (WebSocketServerSetup)
  • 返回

    • None

def combine_driver(driver, *mixins)

  • 说明

    将一个驱动器和多个混入类合并。

  • 参数

    • driver (Type[nonebot.internal.driver.driver.Driver])

    • *mixins (Type[nonebot.internal.driver.driver.ForwardMixin])

  • 返回

    • Type[nonebot.internal.driver.driver.Driver]

class HTTPServerSetup(path, method, name, handle_func)

  • 说明

    HTTP 服务器路由配置。

  • 参数

    • path (yarl.URL)

    • method (str)

    • name (str)

    • handle_func ((nonebot.internal.driver.model.Request) -> Awaitable[nonebot.internal.driver.model.Response])

class WebSocketServerSetup(path, name, handle_func)

  • 说明

    WebSocket 服务器路由配置。

  • 参数

    • path (yarl.URL)

    • name (str)

    • handle_func ((nonebot.internal.driver.model.WebSocket) -> Awaitable[Any])

library-attr URL

三方库 API