Teahouse-Studios / akari-bot

茶馆群内QQ机器人(小可)
https://bot.teahouse.team
GNU Affero General Public License v3.0
184 stars 36 forks source link

机器人无法获取用户通过NTQQ发送的图片信息 #1242

Closed DoroWolf closed 1 month ago

DoroWolf commented 1 month ago

这个Issue虽然很大可能won't fix,还是有必要记录一下 机器人无法获取域名为https://multimedia.nt.qq.com.cn的多媒体文件,原因未知

错误信息: RetryError[<Future at 0x7813f1353590 state=finished raised AttributeError>]

这个问题在QQ以外的平台不会出现

SilianZ commented 1 month ago

参考文档: https://gitee.com/xiaoye12123/ws-plugin/issues/I9J5P5 https://blog.csdn.net/weixin_43107613/article/details/115764212 https://github.com/whitechi73/OpenShamrock/issues/236

SilianZ commented 1 month ago

还有一个问题:

小可不支持获取 Lagrange 发来的图片。

https://github.com/Teahouse-Studios/akari-bot/blob/86aa1dc51c5940c623ae73053663e292c8a5d653/bots/aiocqhttp/message.py#L226-L227

这两行代码影响的。

在其他平台中,图片的消息形式是 [CQ:image,url={url}],而在 Lagrange 里面,消息形式是 [CQ:image,path={url}]

所以需要在此判断是否平台为 Lagrange。

对于 Lagrange 的解析代码如下:

if ss.startswith('path='):
    lst.append(Image(ss[5:-1]))
SilianZ commented 1 month ago

报错是 Timeout error。个人认为原因有两个:

  1. aiocqhttp 或小可代码中传入 url 时对字符串的解析出错导致请求出错
  2. 新版 NTQQ 的图床问题(https://multimedia.nt.qq.com.cn
  3. rkey 错误或缺失问题(取决于使用什么平台,Lagrange 没有这个问题)
DoroWolf commented 1 month ago

还有一个问题:

小可不支持获取 Lagrange 发来的图片。

https://github.com/Teahouse-Studios/akari-bot/blob/86aa1dc51c5940c623ae73053663e292c8a5d653/bots/aiocqhttp/message.py#L226-L227

这两行代码影响的。

在其他平台中,图片的消息形式是 [CQ:image,url={url}],而在 Lagrange 里面,消息形式是 [CQ:image,path={url}]

所以需要在此判断是否平台为 Lagrange。

对于 Lagrange 的解析代码如下:

if ss.startswith('path='):
    lst.append(Image(ss[5:-1]))

Onebot是这样的,协议端只管随便定标准就行了,而框架端要考虑的就很多了

DoroWolf commented 1 month ago

破案了 IMG_20240801_013040 服务端没法传图,只能拍屏了(安详)

DoroWolf commented 1 month ago

破案了 IMG_20240801_013040 服务端没法传图,只能拍屏了(安详)

合理推测是-1切片的锅,预计是拿来去除最后的右中括号的