-
目前支持的主要服务:
- 战地一战绩查询
- 战地一服务器管理
- 发病
- 识图
- 塔罗牌
- 随机老婆
- 随机丁真
- 随机龙图
- emoji融合
- 关键词回复
- 恶臭数字转换
- 风格图片生成
- steam游戏搜索
- 哔哩哔哩链接解析
- 哔哩哔哩订阅推送
-
TODO:
- 修bug(
- 移植v2的功能
- 分群组的alias自定义指令前缀处理
抄其他bot的功能
-
安装环境依赖(请用推荐方式安装poetry )
使用poetry的虚拟环境请直接在bot根目录终端执行:
poetry install
或者其他虚拟环境(关闭poetry的创建虚拟环境:
poetry config virtualenvs.create false
) -
打开config_demo.yaml文件填写配置信息,填写好后请改名为config.yaml再启动
-
启动bot在bot根目录下使用poetry run python main.py
-
根据报错缺啥弄啥吧(
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 搭建的 QQ 功能性究极缝合怪机器人redbot
: 一个以 Graia Ariadne 框架为基础的 QQ 机器人
项目结构:
XiaoMaiBot
├─── 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 项目依赖关系和打包信息
├─── poetry.lock 项目依赖
├─── README.md 项目说明文件
└─── ...
- AsyncORM
bot基础配置:
- bot_accounts:[]
- default_account
- master_qq
- admins:[]
- host_url
- verify_key
- 成员权限判断
- 群权限判断
- current_weight/total_weight
- require(需要的配置信息)
-
分发require
多账户响应模式:
- 随机响应(默认)
- 指定bot响应(指定模式)
- 开关判断->Function.require("模组名")
插件结构:
metadata.json:
{
"level": "插件等级1/2/3",
"name": "文件名",
"display_name": "显示名字",
"version": "0.0.1",
"authors": ["作者"],
"description": "描述",
"usage": ["用法"],
"example": ["例子"],
"default_switch": true,
"default_notice": false
}
modules:
modules = {
"module_name": {
"groups": {
"group_id": {
"switch": bool,
"notice": bool
}
},
"available": bool
}
}
- 插件列表
- 已加载插件
- 未加载插件
- 加载插件
- 卸载插件
- 重载插件
- 开启插件
- 关闭插件
管理/查询权限
- 更改用户权限
- 查询用户权限
- 更改群权限
- 查询群权限
- 增删BOT管理
管理/查询多账户响应模式
- 查询BOT列表
- 查询指定群的BOT
- 设定多账户响应模式 随机/指定bot
- 设定指定响应bot
生成帮助菜单,打开/关闭群功能
- 帮助
- 开启功能
- 关闭功能
- 查询bot运行状态