super1207 / MiraiCQ

用C/C++,易语言写聊天机器人,兼容CQ插件,支持Linux(通过Wine)
GNU Affero General Public License v3.0
89 stars 16 forks source link

群聊图片以及.cqimg文件自动缓存能关掉吗 #19

Closed MuuuShin closed 1 year ago

MuuuShin commented 1 year ago

环境 server win2012 R2 cqhttp 1.0.0rc3 miraicq 2.4.1

如题,由于机器人挂载了较多群的关系,使用cqhttp-Miraicq后发现/data/image/文件夹大小增速过快(约为3-4天增加10g)每张图片都缓存真的扛不住,如何关掉缓存图片?最好是有选择的缓存,比如只有bot会下载或者发出的图片才缓存这样

以前使用的是mirai mirai中的铃心自定义在进行信息存储时遇到图片直接转为[CQ:image,file={图片id}.mirai.mnimg] 不缓存图片 在调用时直接调用tx图片服务器

cqhttp-Miraicq中的铃心自定义在进行信息存储时遇到图片直接转为[CQ:image,file=图片id.png],缓存bot在群里接收到的所有图片 调用时遵循先图片再.cqimg文件的顺序

在进行迁移时保证铃心自定义内容完全相同

测试: 1.停止miraicq挂载,只剩cahttp,data/image/文件夹停止所有缓存 2.挂载miraicq,停止所有插件,data/image/文件夹缓存.cqimg文件 3.挂载铃心自定义,data/image/缓存图片以及.cqimg文件

某份cqimg文件

[image]
md5=xxxx
width=100
height=100
size=38704
url=https://gchat.qpic.cn/gchatpic_new/0/0-0-图片id/0?term=2
addtime=1669973214
[notice]
致开发者=由于消息服务器的更新,本文件中的 url 已被弃用,并将在未来被移除,请勿直接读取本文件。请更新至最新版 SDK,并使用 Api(CQ_getImage, 接收图片)读取本图片。
MuuuShin commented 1 year ago

如果成功关掉了图片缓存 有没有可能导致bot无法正常接收以及发出图片? 这是让我很纠结的问题,因为看保存形式,要么bot无法正常接收图片,要么我要每三天上线一次(或者开个脚本)清理图片,还有可能把有用的图片清理掉

super1207 commented 1 year ago

默认情况下,miraicq只会创建cqimg文件,而不会下载图片。 之所以会下载图片,是因为铃心自定义调用了miraicq的图片下载接口。 经测试,铃心自定义主页菜单中,有个叫"图片接收"的选项,去掉前面的勾勾,就可以不下载图片。

MuuuShin commented 1 year ago

默认情况下,miraicq只会创建cqimg文件,而不会下载图片。 之所以会下载图片,是因为铃心自定义调用了miraicq的图片下载接口。 经测试,铃心自定义主页菜单中,有个叫"图片接收"的选项,去掉前面的勾勾,就可以不下载图片。

感谢回复!另外,看cqimg文件内描述,cqimg似乎是一种过时的图片接收方式?如下:

[notice]
致开发者=由于消息服务器的更新,本文件中的 url 已被弃用,并将在未来被移除,请勿直接读取本文件。请更新至最新版 SDK,并使用 Api(CQ_getImage, 接收图片)读取本图片。

这会对以后使用造成影响吗?

super1207 commented 1 year ago

这个notice来源于大概4年前的酷Q,可能是担心qq以后不会提供图片url,而4年后的今天,qq仍然提供图片url。所以,不必太过担心。另外,即使以后qq有所变化,也是有办法去兼容的。

MuuuShin commented 1 year ago

好的,感谢!