🐱🤖 一个以娱乐功能为主的QQ机器人,基于Nonebot2开发。
![]() |
4 days ago | |
---|---|---|
plugins | 5 days ago | |
util | 4 days ago | |
.gitignore | 1 month ago | |
LICENSE | 1 year ago | |
README.md | 6 months ago | |
bot.py | 6 months ago | |
pdm.lock | 2 weeks ago | |
pyproject.toml | 2 weeks ago |
部分功能需要可选依赖:
/sys/class/drm
读取,因此只支持Linux你可以使用 pdm install -G 上述提到的名称
来安装上述依赖,如:pdm install -G opencv
部分功能需安装第三方软件:
本项目使用Linux + Python 3.10开发,未在Windows或MacOS上测试过,理论上也兼容3.8、3.9和3.11,但测试不不如3.10充分。 (部分可选依赖不兼容3.11:libzim和wordcloud)
# 以ArchLinux为例,请自行换成你的发行版的包管理器
sudo pacman -S cairo pango gobject-introspection python-pdm
git clone https://github.com/su226/IdhagnBot.git
cd IdhagnBot
# 只安装基础功能
pdm install
# 或者安装全部功能
# 编译 python-libzim 时需要安装 libzim,但使用 PyPI 上的二进制包时不需要,可自行去除
sudo pacman -S libyaml bubblewrap nodejs npm libqalculate libzim
pdm install -G :all
你需要先安装一个OneBot V11(原CQHTTP)实现,并且选择一个NoneBot2驱动器,这里以go-cqhttp和AIOHTTP(正向WebSocket连接)为例。(AIOHTTP也作为部分插件的HTTP库使用,因此使用其他适配器也必须安装)
可参照Nonebot2的文档:
你可以使用 .env
来配置 Nonebot2,或者你希望Nonebot2 配置文件和其他配置文件一样使用 YAML 的话,你也可以使用 configs/nonebot.yaml
:
driver: ~aiohttp
onebot_ws_urls: # 端口号要与协议端一致
- ws://127.0.0.1:6700
superusers: # 超管用户 QQ 号,可以指定多个,将会接收到出错等消息
- 123456789
- 987654321
默认情况下,机器人只会响应私聊,如需响应群聊,请修改 configs/contexts.yaml
groups:
123456789: [别名] # 替换为群号,别名也可以指定多个或不指定
987654321: [] # 可指定多个群
private_limit: [1234567890] # 私聊黑名单
private_limit_whitelist: true # 将私聊黑名单反转为白名单
timeout: 600 # 运行/ctx命令后,几秒内不操作,自动运行/ctx exit
# 可指定一部分命令只能在特定群聊内触发,如果要在私聊使用这些命令,有两种情况
# 命令若指定为has_group,机器人会自动检测私聊用户是否在群聊中,适合娱乐命令
# 命令若指定为in_group,需要私聊用户输入/ctx 群号(或者/ctx 别名)手动指定群,适合管理命令
所有配置文件,以及配置文件内的选项都是可选的,当配置文件不存在时会在日志中提示,而选项会使用默认值 以后会完善其他配置文件的文档(翻译:🕊️🕊️🕊️)
本项目不使用nb-cli,因此配置完成后直接使用 pdm start
运行机器人即可
安装完成后的 IdhagnBot 有如下的目录结构,其中带 ⚠️ 的在 .gitignore 内并且可能需要自行创建。
📁IdhagnBot
|-📁⚠️ configs 配置目录,如果对应插件没有配置,会在日志中提示
| |-📁 * 插件群配置
| | |-📄 群号.yaml
| | \-📄 default.yaml 在创建不存在的群配置且default.yaml存在时,会自动复制一份
| |-📄 *.yaml 插件共享配置
| \-📄 nonebot.yaml 另一种Nonebot2配置文件
|-📁 plugins Nonebot2插件(含所需的资源)
| |-📁 * 较为复杂,包含资源文件或分多个模块的插件为文件夹
| \-📄 *.py 一些简单的插件通常是单文件
|-📁⚠️ resources 用户自定义资源
|-📁⚠️ states 状态文件,用于记录缓存、统计数据等,可能被自动修改,而配置一定只能手动修改(不建议手动编辑)
| |-📁 * 插件群状态
| | |-📄 群号.yaml
| | \-📄 default.yaml 尽管状态也支持default.yaml,但并不建议使用
| \-📄 *.yaml 插件共享状态
|-📁⚠️ user_plugins 用户插件,可以根据自己的需要拓展机器人功能
|-📁 util 插件之间共用的代码
|-📄⚠️ .env* Nonebot2配置文件(也可使用configs/nonebot.yaml,见上文)
|-📄 .gitignore
|-📄 bot.py 机器人主程序
|-📄 pdm.lock
|-📄 pyproject.yaml
|-📄 README.md
\-📄 LICENSE
IdhagnBot 的诞生离不开以下项目带来的启发和参考。