From e3e1c31a68a91a956be96dfb94c5d2df5bf87f84 Mon Sep 17 00:00:00 2001 From: lixiangwuxian Date: Thu, 10 Apr 2025 01:42:40 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=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?=E7=AE=80=E5=8C=96=E4=BB=A3=E7=A0=81=E5=B9=B6=E4=BF=9D=E6=8C=81?= =?UTF-8?q?=E7=89=B9=E6=AE=8A=E5=AD=97=E7=AC=A6=E8=BD=AC=E4=B9=89=E6=94=AF?= =?UTF-8?q?=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- message/image.go | 14 ++++++-------- util/url.go | 5 +++++ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/message/image.go b/message/image.go index 48079b2..bdc0321 100644 --- a/message/image.go +++ b/message/image.go @@ -80,14 +80,12 @@ func (msg *ImageMessage) ParseMessage(data string) error { } } - 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.URL = attrs["url"] + msg.Data.URL = url.QueryEscape(msg.Data.URL) + msg.Data.URL = strings.ReplaceAll(msg.Data.URL, ",", ",") + msg.Data.URL = strings.ReplaceAll(msg.Data.URL, "[", "[") + msg.Data.URL = strings.ReplaceAll(msg.Data.URL, "]", "]") + msg.Data.URL = strings.ReplaceAll(msg.Data.URL, "&", "&") msg.Data.Summary = attrs["summary"] msg.Data.File = attrs["file"] msg.Data.Key = attrs["key"] diff --git a/util/url.go b/util/url.go index 4ddb502..a8b35d0 100644 --- a/util/url.go +++ b/util/url.go @@ -65,6 +65,11 @@ func normalizeURL(rawURL string) string { // DownloadFile 下载文件到指定目录,返回带有正确扩展名的完整文件路径 func DownloadFile(url string, dirPath string) (filepath string, err error) { + + url = strings.ReplaceAll(url, ",", ",") + url = strings.ReplaceAll(url, "[", "[") + url = strings.ReplaceAll(url, "]", "]") + url = strings.ReplaceAll(url, "&", "&") // 发送 HTTP GET 请求 var resp *http.Response var maxRetry = 100