out of box
开箱即用
使用 NB-CLI 快速构建属于你的机器人
Installation
$ pipx install nb-cli
$ nb
[?] What do you want to do?
❯ Create a NoneBot project.
Run the bot in current folder.
Manage bot driver.
Manage bot adapters.
Manage bot plugins.
...
plugin system
插件系统
插件化开发,模块化管理
import nonebot
# 加载一个插件
nonebot.load_plugin("path.to.your.plugin")
# 从文件夹加载插件
nonebot.load_plugins("plugins")
# 从配置文件加载多个插件
nonebot.load_from_json("plugins.json")
nonebot.load_from_toml("pyproject.toml")
cross-platform support
跨平台支持
支持多种平台,以及多样的事件响应方式
import nonebot
# OneBot
from nonebot.adapters.onebot.v11 import Adapter as OneBotAdapter
# QQ 机器人
from nonebot.adapters.qq import Adapter as QQAdapter
driver = nonebot.get_driver()
driver.register_adapter(OneBotAdapter)
driver.register_adapter(QQAdapter)
asynchronous first
异步开发
异步优先式开发,提高运行效率
from nonebot import on_message
# 注册一个消息响应器
matcher = on_message()
# 注册一个消息处理器
# 并重复收到的消息
@matcher.handle()
async def handler(event: Event) -> None:
await matcher.send(event.get_message())
builtin dependency injection system
依赖注入
简单清晰的依赖注入系统,内置依赖函数减少用户代码
from nonebot import on_command
# 注册一个命令响应器
matcher = on_command("help", alias={"帮助"})
# 注册一个命令处理器
# 通过依赖注入获得命令名以及参数
@matcher.handle()
async def handler(cmd = Command(), arg = CommandArg()) -> None:
await matcher.finish()