/mirai

高效率 QQ 机器人框架

Primary LanguageKotlinGNU Affero General Public License v3.0AGPL-3.0

logo
title

Gitter Gradle CI Download

mirai 是一个在全平台下运行,提供 QQ Android 协议支持的高效率机器人库

这个项目的名字来源于

京都动画作品《境界的彼方》栗山未来(Kuriyama mirai)

CRYPTON初音未来为代表的创作与活动(Magical mirai)

图标以及形象由画师DazeCake绘制

mirai

English

声明

一切开发旨在学习,请勿用于非法用途

  • mirai 是完全免费且开放源代码的软件,仅供学习和娱乐用途使用
  • mirai 不会通过任何方式强制收取费用,或对使用者提出物质条件
  • mirai 由整个开源社区维护,并不是属于某个个体的作品,所有贡献者都享有其作品的著作权。

许可证

协议原版权归属腾讯科技股份有限公司所有,本项目其他代码遵守
GNU AFFERO GENERAL PUBLIC LICENSE version 3 with Mamoe Exceptions (简称 AGPLv3 with Mamoe Exceptions), 建立在 GNU AFFERO GENERAL PUBLIC LICENSE version 3 (简称 AGPLv3)的基础之上添加额外条件。

如果与 AGPLv3 冲突,则以 AGPLv3 with Mamoe Exceptions 的如下额外条件为准。

  • 所有衍生软件 (衍生软件: 间接或直接接触到 mirai, 即使没有修改 mirai 源码的软件) 必须使用相同协议 (AGPLv3 with Mamoe Exceptions) 开源
  • 本软件禁止用于一切商业活动
  • 本软件禁止收费传递, 或在传递时不提供源代码

协议支持

支持的协议列表
消息相关 支持
文字 群聊 | 好友 | 临时会话
原生表情 群聊 | 好友 | 临时会话
图片 上传 / 发送 / 解析 (最大 20M) 群聊 | 好友 | 临时会话
图片下载 群聊 | 好友 | 临时会话
XML,JSON 等富文本消息 群聊 | 好友 | 临时会话
长消息 (5000 字符 + 50 图片) 群聊
引用回复 群聊 | 好友 | 临时会话
合并转发 (最大 200 条) 群聊
撤回 群聊 | 好友 | 临时会话
At (含 At 全体成员) 群聊
撤回群员消息 群聊
群相关
完整群列表; 完整群成员列表
群员权限获取
禁言群员; 全员禁言; 禁言时间获取
群公告管理(获取,发布,删除)
群设置(自动审批,入群公告,坦白说,成员邀请,匿名聊天)
处理入群申请; 移除群员
好友相关
完整好友列表
处理新好友申请

不会支持的协议

  • 金钱相关,如点赞、收付款
  • 敏感操作,如主动添加好友、主动加入群、主动邀请好友加群

一切开发旨在学习,请勿用于非法用途

开始

文档

开发者

使用 mirai-console 服务端,为 mirai-console 开发插件

官方支持 SDK 列表:

  • JavaKotlin 等 JVM 语言: 为 mirai-console 直接编写插件并与其他插件开发者合作共享
  • Kotlin Scriptmirai-kts 支持使用 kts 编写插件,享受 Kotlin 带来的一切便利(仅 OpenJDK 8 以上环境,不支持 Android
  • CC++ 等原生语言: mirai-native 支持酷 Q 插件在 mirai 上运行 (仅限 Windows 32 位 JRE/支持 Wine)
  • JavaScriptmirai-js 支持使用 JavaScript 编写插件并直接与 mirai 交互
  • Http:使用由 mirai-api-http 提供的 http 接口进行接入
社区支持的 SDK 列表

基于 mirai-core (独立使用):

  • Lua: lua-mirai 基于 mirai-core 的 Lua SDK,并提供了 Java 扩展支持,可在 Lua 中调用 Java 代码开发机器人

基于 mirai-http-api (配合 mirai-console):

  • Python: Graia Framework 基于 mirai-api-http 的机器人开发框架
  • JavaScript(Node.js): node-mirai mirai 的 Node.js SDK
  • Go: gomirai 基于 mirai-api-http 的 GoLang SDK
  • Mozilla Rhino: mirai-rhinojs-sdk 为基于 Rhino(如 Auto.js 等安卓 app 或运行环境)的 JavaScript 提供简单易用的 SDK
  • C++: mirai-cpp mirai-http-api 的 C++ 封装,方便使用 C++ 开发 mirai-http-api 插件
  • C++: miraipp mirai-http-api 的另一个 C++ 封装,使用现代 C++ 特性,并提供了较完善的说明文档
  • C#: mirai-CSharp 基于 mirai-api-http 的 C# SDK
  • Rust: mirai-rs mirai-http-api 的 Rust 封装
  • TypeScript: mirai-ts mirai-api-http 的 TypeScript SDK,附带声明文件,拥有良好的注释和类型提示,也可作为 JavaScript SDK 使用。
  • 易语言: e-mirai mirai-api-http 的 易语言 SDK,使用全中文环境开发插件,适合编程新手使用。
  • .Net/C#: Hyperai 从 mirai-api-http 对接到机器人开发框架再到开箱即用的插件式机器人程序一应俱全。

使用 mirai-core 为第三方依赖库引入项目

Demos: mirai-demos

使用者

  • mirai-console 支持插件的控制台服务端,支持PC和Android平台 本模块正在开发中

从其他平台迁移

  • 酷Q的插件可以在 mirai 中加载,详见 mirai-Native
  • 使用 酷Q HTTP API 的插件将可以在 mirai 中加载,mirai-CQ-Adapter 正在进行中

贡献

我们欢迎一切形式的贡献。
我们也期待有更多人能加入 mirai 的开发。

若在使用过程中有任何疑问,可提交 issue 或是邮件联系. 我们希望 mirai 变得更易用.

您的 star 是对我们最大的鼓励(点击项目右上角)

鸣谢

IntelliJ IDEA 是一个在各个方面都最大程度地提高开发人员的生产力的 IDE,适用于 JVM 平台语言。

特别感谢 JetBrains 为开源项目提供免费的 IntelliJ IDEA 等 IDE 的授权