Skip to content

一个底层基于go-cqhttp的QQ机器人(qq bot)的.net C#框架

License

Notifications You must be signed in to change notification settings

Saplonily/Saladim.QBot

Repository files navigation

Saladim.QBot


一个基于go-cqhttp的QQ机器人.net框架

LICENSE


文档: 请见仓库 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这个实体中

仓库简述

  1. EmptyTest项目是一些实验原生.net/C#的一些特性,与本项目无关
  2. SaladimQBot.Core项目是Saladim.QBot的基础应用层的抽象, 包含IUser,IClient等接口或抽象类
  3. SaladimQBot.GoCqHttp项目是Core项目的go-cqhttp实现, 未来可能会加入mirai的实现, 正在支持Emit发射虚拟Post或重定向ApiCall的目标
  4. SaladimQBot.GoCqHttpTests顾名思义是项目 3. 的单元测试, 大多使用Post/Api的虚拟重定向(即将原本被go-cqhttp的上报会被重定向至另一个模拟出来的), `未来也可能加入压力测试等
  5. SaladimQBot.Shared共享的一个库, 与项目大致无关, 仅包含极其简单的一些通用实现
  6. SaladimConsole 目前 3. 正在使用的控制台调用测试,在这里你可以找到一些使用的例子
  7. SaladimOffbot 与6差不多, 但是更加完善
  8. 未来可能会加入的项目:
    • SaladimQBot.Mirai 见3.
    • SaladimQBot.Extensions.MessagePipeline 消息处理管线
    • SaladimQBot.Extensions.CommandPipeline 消息处理管线更高级封装, 包含简单指令的解析

联系我们

如果你贡献了任何代码你可以在这里写下你的名字及联系方式和少量描述

About

一个底层基于go-cqhttp的QQ机器人(qq bot)的.net C#框架

Topics

Resources

License

Stars

Watchers

Forks

Languages