oicq icon indicating copy to clipboard operation
oicq copied to clipboard

无法获取语音消息的 URL

Open WUGqnwvMQPzl opened this issue 2 years ago • 3 comments

Node.js Version

v16.16.0

Package(oicq) Version

2.3.1

Login Protocol

iPad

Bug Description (最好截图说明,你的文字描述可能无法准确传达信息)

最近正在尝试写 QQ 到其它聊天协议的桥接,在处理语音消息时发现消息的 URL 为空,示例代码大致如下:

qqBot.on('message.group', (e) => {
    if (e.message.length === 1 && e.message[0].type === 'record') {
        console.log(e.message[0]);
    }
});

根据源码判断,可能是协议有变,语音消息可能不带 URL 参数?

下图是我在 VSCode debug 时得到的 proto 对象: image

Log Details (控制台日志,请提供包含前后一段时间内的)

[2022-10-24T20:05:14.633] [MARK] [iPad:2041074485] - ----------
[2022-10-24T20:05:14.634] [MARK] [iPad:2041074485] - Package Version: [email protected] (Released on 2022/6/21)
[2022-10-24T20:05:14.634] [MARK] [iPad:2041074485] - View Changelogs:https://github.com/takayama-lily/oicq/releases
[2022-10-24T20:05:14.634] [MARK] [iPad:2041074485] - ----------
[2022-10-24T20:05:14.701] [MARK] [iPad:2041074485] - 163.177.30.25:8080 connected
[2022-10-24T20:05:14.834] [MARK] [iPad:2041074485] - Welcome, [REMOVED] ! 正在加载资源...
[2022-10-24T20:05:15.004] [MARK] [iPad:2041074485] - 加载了4个好友,3个群,0个陌生人
[2022-10-24T20:05:21.334] [INFO] [iPad:2041074485] - recv from: [Group: [REMOVED], Member: [REMOVED]] {ptt:}
{
  type: 'record',
  file: 'protobuf://CAQiEA2dh2wFA9P+MBEmXj6PvNMqKnswRDlEODc2Qy0wNTAzLUQzRkUtMzAxMS0yNjVFM0U4RkJDRDN9LmFtcjDmETpcFjYgOTJrQTEEN2VkMzQ0YWIgICAgICAgMCAgICAgICAwDZ2HbAUD0/4wESZePo+803swRDlEODc2Qy0wNTAzLUQzRkUtMzAxMS0yNjVFM0U4RkJDRDN9LmFtckFAq4nN9gdIAFAAWAGSASQ5OHpPaWtNX3RPWDhPb2szdHU4cjVjTVEjM2o0Q1VCZmZPWFGYAQHoAQHyAQ0IABIFCACAAQAoADgA',
  url: '',
  md5: '0d9d876c0503d3fe3011265e3e8fbcd3',
  size: 2278,
  seconds: 1
}

WUGqnwvMQPzl avatar Oct 24 '22 12:10 WUGqnwvMQPzl

~~收到消息的时候再 getMsg 一下就有 url 了(~~

dmlgzs avatar Oct 27 '22 11:10 dmlgzs

稍微扯皮一下,其实 go-cqhttp 也有类似问题,我刚刚在那边提了个 issue,看看那边的开发者能不能给出解决方案 Mrs4s/go-cqhttp#1749

WUGqnwvMQPzl avatar Oct 29 '22 17:10 WUGqnwvMQPzl

看上去现在某些协议登录必须用另外的命令获取语音的 url 了。

我最近在自己的 icalingua++ 分支修了这个问题,供参考: https://github.com/5ec1cff/Icalingua-plus-plus/commit/f7d4959c8a8db592a11176ca1fd7bf3be1a2c820

也可以看看 mirai 的解决方法: https://github.com/mamoe/mirai/commit/9eef7d378719476e8f9352acfe6328111d3734db

5ec1cff avatar Nov 23 '22 08:11 5ec1cff