From 9cc853d4e5d18b519263ff496fafc78115082171 Mon Sep 17 00:00:00 2001 From: lixiangwuxian Date: Thu, 10 Apr 2025 01:36:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0=20ImageMessage=20?= =?UTF-8?q?=E7=9A=84=20URL=20=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AF=B9=E7=89=B9=E6=AE=8A=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E7=9A=84=E8=BD=AC=E4=B9=89=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- message/image.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/message/image.go b/message/image.go index fd7359f..48079b2 100644 --- a/message/image.go +++ b/message/image.go @@ -51,6 +51,11 @@ func (msg *ImageMessage) ToCQString() string { // URL 转义 escapedURL := url.QueryEscape(msg.Data.URL) + escapedURL = strings.ReplaceAll(escapedURL, ",", ",") + escapedURL = strings.ReplaceAll(escapedURL, "[", "[") + escapedURL = strings.ReplaceAll(escapedURL, "]", "]") + escapedURL = strings.ReplaceAll(escapedURL, "&", "&") + // 构造 CQ:image 字符串 cqString := fmt.Sprintf("[CQ:image,file=%s,sub_type=%s,file_id=%s,url=%s,file_size=%s,file_unique=%s]", msg.Data.File, msg.Data.SubType, msg.Data.FileID, escapedURL, msg.Data.FileSize, msg.Data.FileUnique) @@ -75,7 +80,14 @@ func (msg *ImageMessage) ParseMessage(data string) error { } } - msg.Data.URL = attrs["url"] + escapedURL := url.QueryEscape(attrs["url"]) + + escapedURL = strings.ReplaceAll(escapedURL, ",", ",") + escapedURL = strings.ReplaceAll(escapedURL, "[", "[") + escapedURL = strings.ReplaceAll(escapedURL, "]", "]") + escapedURL = strings.ReplaceAll(escapedURL, "&", "&") + + msg.Data.URL = escapedURL msg.Data.Summary = attrs["summary"] msg.Data.File = attrs["file"] msg.Data.Key = attrs["key"]