-
Notifications
You must be signed in to change notification settings - Fork 6
Home
ieew edited this page Sep 17, 2022
·
12 revisions
该项目依赖 nonebot2
而存在, 因此使用之前必须先安装 nonebot2
我们推荐您在虚拟环境中使用, 这样可以防止干扰您的其他 python 项目的正常运行
python -m venv venv # 创建一个虚拟环境
source venv/bin/activate # win 请在 PowerShell 或 cmd 使用 venv/bin/activate.ps1 或 venv/bin/activate.bat # 进入虚拟环境
pip install nb-cli # 安装 nonebot2 脚手架(推荐)
# 当然你也可以不使用脚手架 → pip install nonebot2
nb create # 使用 nb-cli 创建一个最原始的 bot
nb adapter install mirai2 # 仅在上一条指令创建 bot 时没有选中 mirai2 的情况下才需要
# 退出虚拟环境请使用 deactivate
ENVIRONMENT=dev
VERIFY_KEY=QDTTEGYGfOGBVcX # MiraiApiHttp2 配置文件里的 token
driver=~fastapi+~websockets # nonebot_adapter_mirai2 需要使用 websockets 驱动所以需要加该行
MIRAI_HOST=127.0.0.1 # MiraiApiHttp2 的 ip
MIRAI_PORT=5700 # MiraiApiHttp2 的端口
MIRAI_QQ=["1234567890"] # Mirai 上已经登录的 qq 号
SUPERUSERS=[] # nonebot2 的超管(也可理解为bot的主人什么的)
需先启动 mirai 并登录 bot 账号,因为使用的是正向 ws
bot.py
中的内容
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import nonebot
from nonebot.adapters.mirai2 import Adapter as MIRAI2Adapter # 引用 nonebot_adapter_mirai2
nonebot.init()
app = nonebot.get_asgi()
driver = nonebot.get_driver()
driver.register_adapter(MIRAI2Adapter) # 将其塞入 nonebot2 中
nonebot.load_from_toml("pyproject.toml")
if __name__ == "__main__":
nonebot.logger.warning("Always use `nb run` to start the bot instead of manually running!")
nonebot.run(app="__mp_main__:app")
- 因
nonebot2.0.0b1
的adapter
相关api
存在变化,因此该adapter
很可能不兼容早于nonebot2.0.0b1
的版本号。 -
nonebot_adapter_mirai2
使用的是正向 ws, 因此需要用户首先启动mirai
并已登录bot
账号, 然后再启动nonebot2
- 如果想
Pull requests
请往dev
分支中提交pr
,我将在后续更新时合并到main
中 - 当你想 直接 调用
mah
的api
时,需要使用 小驼峰 法 显式 声明每个参数的参数名,才能正常调用
该配置位于 mirai
目录中的 config/net.mamoe.mirai-api-http/ setting.yml
(前提是你已经给 mirai
安装了MiraiApiHttp2
插件并且启动过一次)
adapters:
- ws
debug: false
enableVerify: true
verifyKey: INITKEYGfCYBVcX
singleMode: false
cacheSize: 2048
adapterSettings:
ws:
host: localhost
port: 5700 # 该端口务必不要和 nonebot2 相冲突, 因为 nonebot2 会默认监听 8080 端口。
# 如果 mirai 侧也监听 8080 端口则会导致其中一方的 web 服务启动失败