go-cqhttp
go-cqhttp copied to clipboard
v1.0前夕的未来展望/建议收集
不知不觉中, go-cqhttp
项目已经维护了一年以上, 积攒了将近 3000 个 Star. 在这里感谢所有参与维护/提出建议的社区成员的支持. 也离不开所有使用者的帮助.
随着 OneBot RPC v12
的正式发布, 未来我们维护的重心将转向对 v12
协议的适配, 对 v11
协议的支持将停留在 go-cqhttp v1.0
这个大版本. 这意味着未来 go-cqhttp v1.0
将放缓对 新功能 的支持, 逐渐将维护重心放到 修复BUG、适配上游新协议.
目前我们正在准备正式发布 go-cqhttp v1.0
, 这个版本将会有很多修改, 在这里也希望收集社区的建议. 如果有对未来 双版本维护模式/v1.0功能 的相关想法, 请在这个issue留下建议, 非常感谢.
以下是目前 v1.0
将会加入的部分新功能/修改
- 使用
btree
替代leveldb
- 可选外部数据库支持, 目前仅支持
MongoDB
- 使用数据库储存图片信息
- 可选图片下载
- 环境检测/自我诊断
希望能像qq那样可以删除一定时间之前的缓存文件
希望支持 IPv6
希望支持加载动态链接库
希望能加入字体设置,目前发送qq消息全都用的缺省字体,但是qq客户端可以为每个会话单独设置字体
希望支持骰子表情点数识别
优化一下设备信息,过于容易被检测到非官方客户端
优化一下设备信息,过于容易被检测到非官方客户端
别想偷懒,无论我们如何优化也没用,官方肯定有机会看着这个Repo 即使我们如何隐藏设备信息都不可能逃避风控,用户有责任去自己负责对
device.json
的修改当然我也不会把话说死,基本的设备伪装也是可以添加的 这里给点思路:以 Protocol 来更改设备信息来达到一致
检测是否还跟别的因素有关?我发现 BOT 运行好久了,发言也不少,群聊等级一直没变😓
优化一下设备信息,过于容易被检测到非官方客户端
别想偷懒,无论我们如何优化也没用,官方肯定有机会看着这个Repo 即使我们如何隐藏设备信息都不可能逃避风控,用户有责任去自己负责对
device.json
的修改 当然我也不会把话说死,基本的设备伪装也是可以添加的 这里给点思路:以 Protocol 来更改设备信息来达到一致检测是否还跟别的因素有关?我发现 BOT 运行好久了,发言也不少,群聊等级一直没变😓
群聊等级和风控有啥关系...
就是如果是一个正常的客户端活动,各项数据应该会有改变,但这里没有,是一个异常,猜测是否根据这个进行检测
风控问题难免会遇到的,只是个时间问题,删除session又可以苟一段时间,要不就把自己手机的信息填入device.json
加群邀请事件中,验证信息的邀请人信息能否以邀请人QQ号形式呈现,而不是邀请人昵称。
感谢开发者大大们,这里有一些小小的建议:
- 能动态设置在线状态(目前我发现仅可以在启动配置文件中更改)
- 获取群公告 #493 ,群公告更新事件
- 获取私聊历史记录(有聊天记录锁怎么办)?这对私聊用的机器人很有帮助
- QQ级别的获取/设置群内屏蔽用户,获取/设置群免打扰,获取/设置用户屏蔽?这样相关设置可以随账号走
题外话,听说QQ内测版类似Discord,要分频道?可能会有大变动 再度感谢
感谢开发者大大们,这里有一些小小的建议:
- 能动态设置在线状态(目前我发现仅可以在启动配置文件中更改)
- 获取群公告 【功能建议】希望新增/_get_group_notice和/_send_group_notice #493 ,群公告更新事件
- 获取私聊历史记录(有聊天记录锁怎么办)?这对私聊用的机器人很有帮助
题外话,听说QQ内测版类似Discord,要分频道?可能会有大变动 再度感谢
频道正在适配了, 是一个单独的系统, 连 user_id
都和QQ本体不一致, 应该会单独做一批API和事件
比如 send_guild_channel_msg
这种, 不会包括在 send_msg
接口
有需求可以在 actions
下载 nightly
版本测试, 目前已经加入了一些频道系统相关的API了
感谢开发者大大们,这里有一些小小的建议:
- 能动态设置在线状态(目前我发现仅可以在启动配置文件中更改)
- 获取群公告 【功能建议】希望新增/_get_group_notice和/_send_group_notice #493 ,群公告更新事件
- 获取私聊历史记录(有聊天记录锁怎么办)?这对私聊用的机器人很有帮助
- QQ级别的获取/设置群内屏蔽用户,获取/设置群免打扰,获取/设置用户屏蔽?这样相关设置可以随账号走
题外话,听说QQ内测版类似Discord,要分频道?可能会有大变动 再度感谢
频道相关API已初步可用: https://github.com/Mrs4s/go-cqhttp/blob/dev/docs/guild.md
希望以字符串表示频道id,而不是整型,频道id可能超过某些编程语言的数字最大安全值(例如js)
不知道有没有测试bot的频道,申请频道主的流程实在很麻烦
希望转发消息能够支持套娃,目前在使用的版本是 v1.0.0-beta7-fix2。 使用get_forward_msg
获取到的消息数组其元素内容为[CQ:xml]
,貌似没看到什么有价值的信息
@railannad see #1051
希望能增加管理api以及元事件推送api(比如查询账号在线状态或者是登陆状态)
@railannad see #1051
1.0.0-beta8和1.0.0-beta8-fix1版本,使用HTTP请求get_forward_msg时报错
[2021-11-29 09:20:26] [ERROR]: Protocol -> panic on decoder MultiMsg.ApplyDown : runtime error: index out of range [0] with length 0
goroutine 163 [running]:
runtime/debug.Stack()
runtime/debug/stack.go:24 +0x65
github.com/Mrs4s/MiraiGo/client.(*QQClient).netLoop.func1.1()
github.com/Mrs4s/[email protected]/client/network.go:323 +0x5d
panic({0xc54b80, 0xc0000a8948})
runtime/panic.go:1038 +0x215
github.com/Mrs4s/MiraiGo/client.decodeMultiApplyDownResponse.func1(0xc000548be4, 0x9)
github.com/Mrs4s/[email protected]/client/multimsg.go:102 +0x10c
github.com/Mrs4s/MiraiGo/client.decodeMultiApplyDownResponse(0xc000548be4, 0x9, {0xc000548be4, 0x9, 0x9})
github.com/Mrs4s/[email protected]/client/multimsg.go:103 +0x125
github.com/Mrs4s/MiraiGo/client.(*QQClient).netLoop.func1(0xc000573b30)
github.com/Mrs4s/[email protected]/client/network.go:333 +0x1cb
created by github.com/Mrs4s/MiraiGo/client.(*QQClient).netLoop
github.com/Mrs4s/[email protected]/client/network.go:320 +0x652
经过初步测试,v1.0.0-beta7-fix2版本下, 发送端为安卓时可以正常获取(内层为[CQ:forward] , PC时为[CQ:xml])。
与device.json配置的协议无关
设置账号头像功能
能否根据不同链接积压短期内的消息,即链接的客户端在断联期间的消息在重新连接后能够接收到断联期间的消息,类似tg吧
未来会支持macos吗
希望能返回更详细的报错,目前发消息无论是被风控、好友或群不存在等,返回的错误信息几乎一样,在不查看 go-cqhttp 输出的情况下无法准确判断 API 执行失败的原因,进而使 Bot 难以进行有效的异常处理。
希望不同的错误能返回不同的错误码与描述。
现在已经实现了给群聊发合并消息的API:send_group_forward_msg 希望之后能够支持给私聊发送合并消息:send_private_forward_msg
希望能支持群公告相关操作类似https://github.com/project-mirai/mirai-api-http/blob/v2.5.0/docs/api/API.md#%E7%BE%A4%E5%85%AC%E5%91%8A
希望支持收发 [CQ:bface]
,目前各协议接收结果均为 [表情名称]
。#117
希望以字符串表示频道id,而不是整型,频道id可能超过某些编程语言的数字最大安全值(例如js)
拿起 long 就是一把梭
获取私聊历史记录 #829