xianyu110 / xiaomai-bot

以Graia Ariadne框架为基础的战地一QQ机器人

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

xiaomai-bot

一个以Graia Ariadne框架为基础的 QQ 机器人

若您在使用过程中发现了bug或有一些建议,欢迎提出ISSUE、PR或加入 QQ交流群:749094683


功能简览:

  • 目前支持的主要服务:

    • 战地一战绩查询
    • 战地一服务器管理
    • 发病
    • 识图
    • 塔罗牌
    • 随机老婆
    • 随机丁真
    • 随机龙图
    • emoji融合
    • 关键词回复
    • 恶臭数字转换
    • 风格图片生成
    • steam游戏搜索
    • 哔哩哔哩链接解析
    • 哔哩哔哩订阅推送
  • TODO:

    • 修bug(
    • 移植v2的功能
    • 分群组的alias自定义指令前缀处理
    • 抄其他bot的功能

简易搭建:

  1. python3.10+环境, Mirai:MCL2.1.0 + 配置MAH

  2. 安装环境依赖(请用推荐方式安装poetry )

    使用poetry的虚拟环境请直接在bot根目录终端执行:

    poetry install
    

    或者其他虚拟环境(关闭poetry的创建虚拟环境:poetry config virtualenvs.create false)

  3. 打开config_demo.yaml文件填写配置信息,填写好后请改名为config.yaml再启动

  4. 启动bot在bot根目录下使用poetry run python main.py

  5. 根据报错缺啥弄啥吧(

鸣谢 & 相关项目

  • 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在开发中参考了如下项目:

Stargazers over time

Stargazers over time


V3重构PJ

项目结构:


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          项目说明文件

└─── ...  

核心(core):

orm:

  • AsyncORM

配置:

bot基础配置:

  • bot_accounts:[]
  • default_account
  • master_qq
  • admins:[]
  • host_url
  • verify_key

控制组件(control):

Permission 权限判断:

  • 成员权限判断
  • 群权限判断

Frequency频率限制:

  • current_weight/total_weight

Config配置判断:

  • require(需要的配置信息)

Distribute多账户消息分发:

  • 分发require

    多账户响应模式:

    • 随机响应(默认)
    • 指定bot响应(指定模式)

Function功能开关:

  • 开关判断->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
    }
}

内置插件(modules.required):

saya_manager(插件管理):

  • 插件列表
  • 已加载插件
  • 未加载插件
  • 加载插件
  • 卸载插件
  • 重载插件
  • 开启插件
  • 关闭插件

perm_manager(权限管理):

管理/查询权限

  • 更改用户权限
  • 查询用户权限
  • 更改群权限
  • 查询群权限
  • 增删BOT管理

response_manager(响应管理):

管理/查询多账户响应模式

  • 查询BOT列表
  • 查询指定群的BOT
  • 设定多账户响应模式 随机/指定bot
  • 设定指定响应bot

helper(帮助菜单/功能管理):

生成帮助菜单,打开/关闭群功能

  • 帮助
  • 开启功能
  • 关闭功能

status(运行状态):

  • 查询bot运行状态

About

以Graia Ariadne框架为基础的战地一QQ机器人

License:GNU General Public License v3.0


Languages

Language:Python 98.4%Language:HTML 1.6%Language:Batchfile 0.0%