注意! 当前 BOT 还有许多不完善之处,处于持续开发更新状态中~
- 战地一 战绩查询
- 战地一 服务器管理
- 其他功能请查看
modules
文件夹
- 分群组的 alias 自定义指令前缀处理
抄其他 bot 的功能
快速启动:Windows 使用
run.bat
,Linux 使用run.sh
本项目需要 Python
3.10 至 3.11 版本。推荐使用 uv
作为 Python 的依赖包管理工具,并通过 uv
创建虚拟环境,安装依赖包。
-
Windows 用户:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
-
Linux 用户:
curl -LsSf https://astral.sh/uv/install.sh | sh
-
验证安装:
uv help
如果尚未安装 Python
,可通过 uv
安装:
-
列出可用的 Python 版本:
uv python list
-
安装指定版本(例如 3.11.10):
uv python install 3.11.10
-
查找系统中已安装的 Python 路径:
uv python find
使用指定版本的 Python
创建虚拟环境:
uv venv --python 3.11
从 pyproject.toml
安装依赖:
uv sync
uv run main.py
- 打开
config_demo.yaml
文件填写配置信息 - 填写完成后重命名为
config.yaml
在 Bot 根目录下运行:
uv run main.py
根据报错信息进行相应处理。
变量名称 | 解释 | 示例 |
---|---|---|
bot_accounts |
Bot 使用的账户,逗号分隔 | 1111111111,222222222 |
default_account |
默认 Bot 账户 | 1111111111 |
Master |
Bot 管理者账户 | 3333333333 |
mirai_host |
MAH 服务器地址 | http://localhost:8080 |
verify_key |
MAH 服务器验证 token | 123456789 |
test_group |
发送调试信息的群组 | 5555555555 |
db_link |
SQLite3 数据库位置 | sqlite+aiosqlite:///data.db |
Docker 及 Docker Compose 部署请使用环境变量进行配置。
-
安装 Docker
-
克隆项目并构建镜像
git clone https://github.com/g1331/xiaomai-bot cd xiaomai-bot docker build -t xiaomai-bot .
-
配置文件
mv config_demo.yaml config.yaml sqlite3 /xiaomai-bot/config/data.db sqlite> .database sqlite> .quit
-
运行容器
docker run -d --name xiaomai-bot \ --net=host \ -v /xiaomai-bot/config/config.yaml:/xiaomai-bot/config.yaml \ -v /xiaomai-bot/config/data.db:/xiaomai-bot/data.db \ -v /xiaomai-bot/data/battlefield:/xiaomai-bot/data/battlefield/ \ -v /xiaomai-bot/imgs/random_picture:/xiaomai-bot/modules/self_contained/random_picture/imgs/ \ -v /xiaomai-bot/imgs/random_wife:/xiaomai-bot/modules/self_contained/random_wife/imgs/ \ -v /xiaomai-bot/imgs/random_dragon:/xiaomai-bot/modules/self_contained/random_dragon/imgs/ \ xiaomai-bot
提示:根据需要添加环境变量,例如:
-e bot_accounts=1111111111,222222222
-e default_account=1111111111
-e Master=3333333333
-e mirai_host=http://localhost:8080
-e verify_key=123456789
-e test_group=5555555555
-e db_link=sqlite+aiosqlite:///data.db
-
安装 Docker 与 Docker Compose
-
克隆项目并设置数据库
git clone https://github.com/g1331/xiaomai-bot cd xiaomai-bot sqlite3 /xiaomai-bot/config/data.db sqlite> .database sqlite> .quit mv config_demo.yaml config.yaml
-
启动服务
docker-compose up -d
xiaomai-bot/
├── core/ # 核心 - 机器人配置与信息
│ ├── orm/ # 对象关系映射 - 数据库处理
│ │ ├── __init__.py
│ │ └── tables.py # 内置表
│ ├── models/ # 辅助控制组件
│ │ └── ...
│ ├── bot.py # 机器人核心代码 - 统一调度资源
│ ├── config.py # 机器人配置访问接口
│ ├── control.py # 控制组件 - 鉴权、开关前置、冷却
│ └── ...
├── data/ # 存放数据文件
│ └── ...
├── resources/ # 存放项目资源
│ └── ...
├── utils/ # 存放运行工具
│ └── ...
├── log/ # 机器人日志目录
│ ├── xxxx-xx-xx/
│ │ ├── common.log # 常规日志
│ │ └── error.log # 错误日志
│ └── ...
├── modules/ # 机器人插件目录
│ ├── required/ # 必须插件
│ │ └── ...
│ ├── self_contained/ # 内置插件
│ │ └── ...
│ └── ...
├── config.yaml # 机器人主配置文件
├── main.py # 应用执行入口
├── pyproject.toml # 项目依赖关系和打包信息
├── uv.lock # 依赖锁文件
├── README.md # 项目说明文件
└── ...
- AsyncORM:异步对象关系映射工具
Bot 基础配置:
bot_accounts
: []default_account
: 默认账户master_qq
: 管理者 QQadmins
: []host_url
: 服务器地址verify_key
: 验证 Token
- 成员权限判断
- 群权限判断
- 当前权重 / 总权重
- 需要的配置信息
- 分发需求
- 多账户响应模式:
- 随机响应(默认)
- 指定 Bot 响应
- 开关判断:
Function.require("模块名")
{
"level": "插件等级1/2/3",
"name": "文件名",
"display_name": "显示名字",
"version": "0.0.1",
"authors": [
"作者"
],
"description": "描述",
"usage": [
"用法"
],
"example": [
"例子"
],
"default_switch": true,
"default_notice": false
}
modules = {
"module_name": {
"groups": {
"group_id": {
"switch": bool,
"notice": bool
}
},
"available": bool
}
}
- 自动检测 GitHub 仓库更新
- 手动指令执行
git pull
- 插件列表
- 已加载插件
- 未加载插件
- 加载插件
- 卸载插件
- 重载插件
- 开启插件
- 关闭插件
管理与查询权限:
- 更改用户权限
- 查询用户权限
- 更改群权限
- 查询群权限
- 增删 Bot 管理
管理与查询多账户响应模式:
- 查询 Bot 列表
- 查询指定群的 Bot
- 设定多账户响应模式(随机 / 指定 Bot)
- 设定指定响应 Bot
生成帮助菜单,开启/关闭群功能:
- 帮助
- 开启功能
- 关闭功能
- 查询 Bot 运行状态
mirai
&mirai-console
:一个跨平台运行,支持 QQ Android 和 TIM PC 协议的高效机器人框架GraiaProject
提供的项目:Broadcast Control
:高性能、高可扩展性,基于 asyncio 的事件系统Ariadne
:设计精巧、协议实现完备,基于 mirai-api-http v2 的即时聊天软件自动化框架Saya
:简洁的模块管理系统Scheduler
:基于asyncio
的定时任务实现Application
:Ariadne 的前身,基于 mirai-api-http 的即时聊天软件自动化框架
本 BOT 在开发中参考了以下项目:
SAGIRI BOT
:基于 Mirai 和 Graia-Ariadne 的 QQ 机器人ABot
:使用 Graia-Ariadne 搭建的功能性机器人redbot
:基于 Graia Ariadne 框架的 QQ 机器人