Version: Next

nonebot

本模块主要定义了 NoneBot 启动所需函数,供 bot 入口文件调用。

快捷导入

为方便使用,本模块从子模块导入了部分内容,以下内容可以直接通过本模块导入:

def get_driver()

  • 说明

    获取全局 Driver 实例。

    可用于在计划任务的回调等情形中获取当前 Driver 实例。

  • 参数

    empty

  • 返回

  • 异常

  • 用法

    driver = nonebot.get_driver()

def get_adapter(name)

  • 说明: 获取已注册的 Adapter 实例。

  • 重载

    1. (name) -> Adapter

    • 参数

      • name (str): 适配器名称
    • 返回

    2. (name) -> A

    • 参数

      • name (type[A]): 适配器类型
    • 返回

  • 异常

  • 用法

    from nonebot.adapters.console import Adapter
    adapter = nonebot.get_adapter(Adapter)

def get_adapters()

  • 说明: 获取所有已注册的 Adapter 实例。

  • 参数

    empty

  • 返回

  • 异常

  • 用法

    adapters = nonebot.get_adapters()

def get_app()

  • 说明: 获取全局 ASGIMixin 对应的 Server App 对象。

  • 参数

    empty

  • 返回

    • Any: Server App 对象
  • 异常

  • 用法

    app = nonebot.get_app()

def get_asgi()

  • 说明: 获取全局 ASGIMixin 对应 ASGI 对象。

  • 参数

    empty

  • 返回

    • Any: ASGI 对象
  • 异常

  • 用法

    asgi = nonebot.get_asgi()

def get_bot(self_id=None)

  • 说明

    获取一个连接到 NoneBot 的 Bot 对象。

    当提供 self_id 时,此函数是 get_bots()[self_id] 的简写; 当不提供时,返回一个 Bot

  • 参数

  • 返回

  • 异常

    • KeyError: 对应 self_id 的 Bot 不存在

    • ValueError: 没有传入 self_id 且没有 Bot 可用

    • ValueError: 全局 Driver 对象尚未初始化 (nonebot.init 尚未调用)

  • 用法

    assert nonebot.get_bot("12345") == nonebot.get_bots()["12345"]

    another_unspecified_bot = nonebot.get_bot()

def get_bots()

  • 说明: 获取所有连接到 NoneBot 的 Bot 对象。

  • 参数

    empty

  • 返回

  • 异常

  • 用法

    bots = nonebot.get_bots()

def init(*, _env_file=None, **kwargs)

  • 说明

    初始化 NoneBot 以及 全局 Driver 对象。

    NoneBot 将会从 .env 文件中读取环境信息,并使用相应的 env 文件配置。

    也可以传入自定义的 _env_file 来指定 NoneBot 从该文件读取配置。

  • 参数

    • _env_file (DotenvType | None): 配置文件名,默认从 .env.{env_name} 中读取配置

    • **kwargs (Any): 任意变量,将会存储到 Driver.config 对象里

  • 返回

    • None
  • 用法

    nonebot.init(database=Database(...))

def run(*args, **kwargs)

  • 说明: 启动 NoneBot,即运行全局 Driver 对象。

  • 参数

  • 返回

    • None
  • 用法

    nonebot.run(host="127.0.0.1", port=8080)