Samarium150 / mirai-console-drift-bottle

mirai-console的漂流瓶插件
GNU Affero General Public License v3.0
32 stars 6 forks source link

feat: cache images #6

Closed LaoLittle closed 2 years ago

LaoLittle commented 2 years ago

已经过测试,原有漂流瓶无需修改内容 新漂流瓶会按照随机uuid作为文件名保存

暂无缓存清理

Samarium150 commented 2 years ago

emmmm,如果只是对图片加id的话,直接用自带的imageid就行了吧

LaoLittle commented 2 years ago

emmmm,如果只是对图片加id的话,直接用自带的imageid就行了吧

差不多(忘了有标记)

Samarium150 commented 2 years ago

build.gradle.ktsconsole版本改成2.9.1,idea能正常下载依赖吗

LaoLittle commented 2 years ago

build.gradle.kts里console版本改成2.9.1,idea能正常下载依赖吗

能,不过一大堆错误,编译正常通过。 一直用的 2.9.0-M1 没这个问题

Samarium150 commented 2 years ago

一个猜想,缓存图片{id}.jpg上传之后返回的Image.imageId还是id

LaoLittle commented 2 years ago

一个猜想,缓存图片{id}.jpg上传之后返回的Image.imageId还是id

一个猜想,服务器会先检查这张图片的md5 (

image

LaoLittle commented 2 years ago

一个猜想,缓存图片{id}.jpg上传之后返回的Image.imageId还是id

如果漂流瓶漂太久,服务器删除了图片...

Samarium150 commented 2 years ago

一个猜想,缓存图片{id}.jpg上传之后返回的Image.imageId还是id

一个猜想,服务器会先检查这张图片的md5 (

image

也就是说服务器上有这图的话id才不会变

LaoLittle commented 2 years ago

不过我觉得id还是不会变,因为imageid貌似是根据md5计算的? 即使服务器删除了图片,重新上传也会得到一样的id吧

Samarium150 commented 2 years ago

不过我觉得id还是不会变,因为imageid貌似是根据md5计算的? 即使服务器删除了图片,重新上传也会得到一样的id吧

什么,不是md5是根据id来计算吗

LaoLittle commented 2 years ago

不过我觉得id还是不会变,因为imageid貌似是根据md5计算的? 即使服务器删除了图片,重新上传也会得到一样的id吧

~什么,不是md5是根据id来计算吗~

为啥用md5来查看服务器是否有图片,却不是用md5来计算id 刚刚看了好像是用id计算md5? 怪

LaoLittle commented 2 years ago

刚刚我的服务器又炸了

Samarium150 commented 2 years ago

看看这样如何

LaoLittle commented 2 years ago

看看这样如何

这是在为其他消息类型铺路么(

Samarium150 commented 2 years ago

看看这样如何

这是在为其他消息类型铺路么(

算是吧?之后如果要存别的也可以存

Samarium150 commented 2 years ago

这次没问题的话我就merge了

LaoLittle commented 2 years ago

草,找到原因了 是判断的位置放错了..sendMessage消耗的一定时间,然后delay了个寂寞 不过问题也不大

Samarium150 commented 2 years ago

草,找到原因了 是判断的位置放错了..sendMessage消耗的一定时间,然后delay了个寂寞 不过问题也不大

我最后一个commit改了,后面的delay要去掉么

LaoLittle commented 2 years ago

草,找到原因了 是判断的位置放错了..sendMessage消耗的一定时间,然后delay了个寂寞 不过问题也不大

我最后一个commit改了,后面的delay要去掉么

我觉得不用吧,防止意外

Samarium150 commented 2 years ago

草,找到原因了 是判断的位置放错了..sendMessage消耗的一定时间,然后delay了个寂寞 不过问题也不大

我最后一个commit改了,后面的delay要去掉么

我觉得不用吧,防止意外

那merge了?

LaoLittle commented 2 years ago

刚刚关闭mirai-console的时候遇到个问题

不知道是不是我的问题 之后都没有这个问题,还是贴一下

Caused by: java.lang.NoClassDefFoundError: io/github/samarium150/mirai/plugin/driftbottle/data/Owner$$serializer
        at io.github.samarium150.mirai.plugin.driftbottle.data.Item.write$Self(Item.kt:33)
        at io.github.samarium150.mirai.plugin.driftbottle.data.Item$$serializer.serialize(Item.kt:33)
        at io.github.samarium150.mirai.plugin.driftbottle.data.Item$$serializer.serialize(Item.kt:33)
        at kotlinx.serialization.json.internal.StreamingJsonEncoder.encodeSerializableValue(StreamingJsonEncoder.kt:211)
        at kotlinx.serialization.encoding.AbstractEncoder.encodeSerializableElement(AbstractEncoder.kt:80)
        at kotlinx.serialization.internal.ListLikeSerializer.serialize(CollectionSerializers.kt:69)
        at net.mamoe.mirai.console.data.SerializableValue$Companion$serializableValueWith$$inlined$map$1.serialize(serializerHelper.kt:164)
        at kotlinx.serialization.json.internal.StreamingJsonEncoder.encodeSerializableValue(StreamingJsonEncoder.kt:211)
        at kotlinx.serialization.encoding.AbstractEncoder.encodeSerializableElement(AbstractEncoder.kt:80)
        at net.mamoe.mirai.console.internal.data.PluginDataImpl$updaterSerializer$1.serialize(PluginDataImpl.kt:105)
        at net.mamoe.mirai.console.internal.data.PluginDataImpl$updaterSerializer$1.serialize(PluginDataImpl.kt:47)
        at kotlinx.serialization.json.internal.StreamingJsonEncoder.encodeSerializableValue(StreamingJsonEncoder.kt:211)
        at kotlinx.serialization.json.Json.encodeToString(Json.kt:85)
        at net.mamoe.mirai.console.internal.data.MultiFilePluginDataStorageImpl.store(MultiFilePluginDataStorageImpl.kt:86)
        ... 25 more
Caused by: java.lang.ClassNotFoundException: io.github.samarium150.mirai.plugin.driftbottle.data.Owner$$serializer
        ... 39 more
Samarium150 commented 2 years ago

刚刚关闭mirai-console的时候遇到个问题

不知道是不是我的问题 之后都这个问题,还是贴一下

Caused by: java.lang.NoClassDefFoundError: io/github/samarium150/mirai/plugin/driftbottle/data/Owner$$serializer
        at io.github.samarium150.mirai.plugin.driftbottle.data.Item.write$Self(Item.kt:33)
        at io.github.samarium150.mirai.plugin.driftbottle.data.Item$$serializer.serialize(Item.kt:33)
        at io.github.samarium150.mirai.plugin.driftbottle.data.Item$$serializer.serialize(Item.kt:33)
        at kotlinx.serialization.json.internal.StreamingJsonEncoder.encodeSerializableValue(StreamingJsonEncoder.kt:211)
        at kotlinx.serialization.encoding.AbstractEncoder.encodeSerializableElement(AbstractEncoder.kt:80)
        at kotlinx.serialization.internal.ListLikeSerializer.serialize(CollectionSerializers.kt:69)
        at net.mamoe.mirai.console.data.SerializableValue$Companion$serializableValueWith$$inlined$map$1.serialize(serializerHelper.kt:164)
        at kotlinx.serialization.json.internal.StreamingJsonEncoder.encodeSerializableValue(StreamingJsonEncoder.kt:211)
        at kotlinx.serialization.encoding.AbstractEncoder.encodeSerializableElement(AbstractEncoder.kt:80)
        at net.mamoe.mirai.console.internal.data.PluginDataImpl$updaterSerializer$1.serialize(PluginDataImpl.kt:105)
        at net.mamoe.mirai.console.internal.data.PluginDataImpl$updaterSerializer$1.serialize(PluginDataImpl.kt:47)
        at kotlinx.serialization.json.internal.StreamingJsonEncoder.encodeSerializableValue(StreamingJsonEncoder.kt:211)
        at kotlinx.serialization.json.Json.encodeToString(Json.kt:85)
        at net.mamoe.mirai.console.internal.data.MultiFilePluginDataStorageImpl.store(MultiFilePluginDataStorageImpl.kt:86)
        ... 25 more
Caused by: java.lang.ClassNotFoundException: io.github.samarium150.mirai.plugin.driftbottle.data.Owner$$serializer
        ... 39 more

ok, 我检查一下

LaoLittle commented 2 years ago

那merge了?

我觉得行

Samarium150 commented 2 years ago

刚刚关闭mirai-console的时候遇到个问题

不知道是不是我的问题 之后都这个问题,还是贴一下

Caused by: java.lang.NoClassDefFoundError: io/github/samarium150/mirai/plugin/driftbottle/data/Owner$$serializer
        at io.github.samarium150.mirai.plugin.driftbottle.data.Item.write$Self(Item.kt:33)
        at io.github.samarium150.mirai.plugin.driftbottle.data.Item$$serializer.serialize(Item.kt:33)
        at io.github.samarium150.mirai.plugin.driftbottle.data.Item$$serializer.serialize(Item.kt:33)
        at kotlinx.serialization.json.internal.StreamingJsonEncoder.encodeSerializableValue(StreamingJsonEncoder.kt:211)
        at kotlinx.serialization.encoding.AbstractEncoder.encodeSerializableElement(AbstractEncoder.kt:80)
        at kotlinx.serialization.internal.ListLikeSerializer.serialize(CollectionSerializers.kt:69)
        at net.mamoe.mirai.console.data.SerializableValue$Companion$serializableValueWith$$inlined$map$1.serialize(serializerHelper.kt:164)
        at kotlinx.serialization.json.internal.StreamingJsonEncoder.encodeSerializableValue(StreamingJsonEncoder.kt:211)
        at kotlinx.serialization.encoding.AbstractEncoder.encodeSerializableElement(AbstractEncoder.kt:80)
        at net.mamoe.mirai.console.internal.data.PluginDataImpl$updaterSerializer$1.serialize(PluginDataImpl.kt:105)
        at net.mamoe.mirai.console.internal.data.PluginDataImpl$updaterSerializer$1.serialize(PluginDataImpl.kt:47)
        at kotlinx.serialization.json.internal.StreamingJsonEncoder.encodeSerializableValue(StreamingJsonEncoder.kt:211)
        at kotlinx.serialization.json.Json.encodeToString(Json.kt:85)
        at net.mamoe.mirai.console.internal.data.MultiFilePluginDataStorageImpl.store(MultiFilePluginDataStorageImpl.kt:86)
        ... 25 more
Caused by: java.lang.ClassNotFoundException: io.github.samarium150.mirai.plugin.driftbottle.data.Owner$$serializer
        ... 39 more

怪,我这好像很正常

2022-01-05 23:29:48 I/Drift Bottle: Plugin loaded
2022-01-05 23:30:02 V/Bot.*: Samarium(*) -> 跳海
2022-01-05 23:30:03 V/Bot.*: Friend(*) <- 你缓缓走入大海,感受着海浪轻柔地拍打着你的小腿,膝盖……\n波浪卷着你的腰腹,你感觉有些把握不住平衡了……\n……\n你沉入海中,【15】个物体与你一同沉浮。\n不知何处涌来一股暗流,你失去了意识。
> stop
Stopping mirai-console
2022-01-05 23:30:09 I/Bot.*: Bot cancelled: Job was cancelled
2022-01-05 23:30:09 I/Drift Bottle: Plugin unloaded

检查一下依赖什么的吧,Owner类也不像是不能序列化的类

LaoLittle commented 2 years ago

检查一下依赖什么的吧,Owner类也不像是不能序列化的类

就出现两次,然后没遇到过了