refactor(randomphoto): 重构随机图片服务发送逻辑

- 移除 ImageUtil 相关代码,改用 bot API 发送图片- 添加 JSON 和 Channel 引用,用于构造发送消息的参数- 更新发送逻辑,使用 sendFile 和 send 方法发送图片
This commit is contained in:
Grand-cocoa 2024-12-14 14:14:34 +08:00
parent 4f8e447bdd
commit c76c906881

View File

@ -1,16 +1,16 @@
package info.alinadace.sakuramiki.service.randomphoto package info.alinadace.sakuramiki.service.randomphoto
import com.alibaba.fastjson.JSON
import com.mavis.service.AlistService import com.mavis.service.AlistService
import info.alinadace.sakuramiki.annotation.BotFunction import info.alinadace.sakuramiki.annotation.BotFunction
import info.alinadace.sakuramiki.service.Service import info.alinadace.sakuramiki.service.Service
import info.alinadace.sakuramiki.service.randomphoto.domain.FileList import info.alinadace.sakuramiki.service.randomphoto.domain.FileList
import info.alinadace.sakuramiki.service.randomphoto.domain.SingleFile import info.alinadace.sakuramiki.service.randomphoto.domain.SingleFile
import info.alinadace.sakuramiki.util.ImageUtil
import io.github.kloping.qqbot.api.v2.FriendMessageEvent import io.github.kloping.qqbot.api.v2.FriendMessageEvent
import io.github.kloping.qqbot.api.v2.GroupMessageEvent import io.github.kloping.qqbot.api.v2.GroupMessageEvent
import io.github.kloping.qqbot.api.v2.MessageV2Event import io.github.kloping.qqbot.api.v2.MessageV2Event
import io.github.kloping.qqbot.entities.ex.Image
import io.github.kloping.qqbot.entities.ex.PlainText import io.github.kloping.qqbot.entities.ex.PlainText
import io.github.kloping.qqbot.entities.qqpd.Channel
import jakarta.annotation.Resource import jakarta.annotation.Resource
/** /**
@ -55,14 +55,16 @@ class RandomPhotoService : Service<MessageV2Event> {
event.send("文件获取失败") event.send("文件获取失败")
return return
} }
event.send("图片下载中...") val map = HashMap<String, Any>()
val imageByte = ImageUtil.download(file.data.rawURL) map["file_type"] = 1
if (imageByte == null) { map["url"] = file.data.rawURL
event.send("图片下载失败") map["srv_send_msg"] = false
return val sendFile = event.bot.userBaseV2.sendFile(event.sender.cid, JSON.toJSONString(map), Channel.SEND_MESSAGE_HEADERS)
} val message = HashMap<String, Any>()
val compression = ImageUtil.compression(imageByte) message["content"] = " "
val image = Image(compression) message["msg_type"] = 7
event.send(image) message["media"] = sendFile.file_info
message["event_id"] = event.id
event.bot.userBaseV2.send(event.sender.cid, JSON.toJSONString(message), Channel.SEND_MESSAGE_HEADERS)
} }
} }