一个基于go-cqhttp的QQ机器人.net框架
文档: 请见仓库 Saladim.QBot-docs
以MIT协议开源, 如使用请标注来源
目前框架仍为完工,目前未来计划如下:
- 完成基层, 如go-cqhttp的所有post支持,所有api支持
- 完成基础应用层, 例如实现一个GroupUser类实现IUser接口,
包含
SendPrivateMessage
方法、Name
,NickName
等属性这一类(类似于隔壁Discord.net) - 完成高级应用层, 例如消息/命令解析/处理管道等
- 更多拓展?
暂时就只能想到这些了, 作为一个废物能活到我做完上面这三项就不错了
否 ×
, 部分支持_
, 大部分支持*
, 完全支持√
昵称 | 支持情况 |
---|---|
CQ码 | * |
消息实体 | √ |
全部上报 | √ |
Api调用 | * |
消息处理管线 | √ |
指令解析管线 | × |
指令解析 | √ |
频道支持 | × |
实体 | √ |
消息构建器 | √ |
消息转发 | √ |
更多拓展? |
- 上述大部分支持会随实体的需求而支持, 例如如果
GroupUser
新增了BanAsync
方法, 那么同步地,BanGroupUserAction
这个api会被支持 - 目前来说大部分实体以及方法都已实现完毕, 正在聚焦应用层
大部分qq的协议将会尽全力支持, 但是有以下内容因为某些原因或种种因素将不会被主动支持:
- bot号主动发起临时会话
- 引起骚扰问题
- 可能会导致账号被冻结(详见issue)
- 红包相关协议
- 敏感行为不被支持
- 获取临时会话消息信息
- 可能原因同第一项
- go-cqhttp中没有将临时会话消息入数据库(可能是因为某些原因)
- 完善最后的
request
的接收和处理 - 新开一个简易的指令框架
- 支持从CQ码字符串到消息链的转换
- 实现Session的概念
- 指令框架直接的协程支持
- 指令框架单参数无引号解析支持
- 指令框架支持无重载时的参数无关调用(有点绕...? 不过实现后应该就很容易理解了.)
- 一个新服务, 使得可以在指令方法上加入描述特性, 且可以通过反射自动获取这些描述
- 群匿名消息收发
- 暂未想到如何整合到
message
这个实体中
- 暂未想到如何整合到
EmptyTest
项目是一些实验原生.net/C#的一些特性,与本项目无关SaladimQBot.Core
项目是Saladim.QBot的基础应用层的抽象, 将 包含IUser
,IClient
等接口或抽象类SaladimQBot.GoCqHttp
项目是Core
项目的go-cqhttp实现, 未来可能会加入mirai的实现, 正在支持Emit发射虚拟Post或重定向ApiCall的目标SaladimQBot.GoCqHttpTests
顾名思义是项目 3. 的单元测试, 大多使用Post/Api的虚拟重定向(即将原本被go-cqhttp的上报会被重定向至另一个模拟出来的), `未来也可能加入压力测试等SaladimQBot.Shared
共享的一个库, 与项目大致无关, 仅包含极其简单的一些通用实现SaladimConsole
目前 3. 正在使用的控制台调用测试,在这里你可以找到一些使用的例子SaladimOffbot
与6差不多, 但是更加完善- 未来可能会加入的项目:
SaladimQBot.Mirai
见3.SaladimQBot.Extensions.MessagePipeline
消息处理管线SaladimQBot.Extensions.CommandPipeline
消息处理管线更高级封装, 包含简单指令的解析
如果你贡献了任何代码你可以在这里写下你的名字及联系方式和少量描述
- Saplonily Saplonily@outlook.com