fix: 优化 ImageMessage 的 URL 处理逻辑,简化代码并保持特殊字符转义支持

This commit is contained in:
lixiangwuxian 2025-04-10 01:42:40 +08:00
parent 9cc853d4e5
commit e3e1c31a68
2 changed files with 11 additions and 8 deletions

View File

@ -80,14 +80,12 @@ func (msg *ImageMessage) ParseMessage(data string) error {
} }
} }
escapedURL := url.QueryEscape(attrs["url"]) msg.Data.URL = attrs["url"]
msg.Data.URL = url.QueryEscape(msg.Data.URL)
escapedURL = strings.ReplaceAll(escapedURL, ",", ",") msg.Data.URL = strings.ReplaceAll(msg.Data.URL, ",", ",")
escapedURL = strings.ReplaceAll(escapedURL, "[", "[") msg.Data.URL = strings.ReplaceAll(msg.Data.URL, "[", "[")
escapedURL = strings.ReplaceAll(escapedURL, "]", "]") msg.Data.URL = strings.ReplaceAll(msg.Data.URL, "]", "]")
escapedURL = strings.ReplaceAll(escapedURL, "&", "&") msg.Data.URL = strings.ReplaceAll(msg.Data.URL, "&", "&")
msg.Data.URL = escapedURL
msg.Data.Summary = attrs["summary"] msg.Data.Summary = attrs["summary"]
msg.Data.File = attrs["file"] msg.Data.File = attrs["file"]
msg.Data.Key = attrs["key"] msg.Data.Key = attrs["key"]

View File

@ -65,6 +65,11 @@ func normalizeURL(rawURL string) string {
// DownloadFile 下载文件到指定目录,返回带有正确扩展名的完整文件路径 // DownloadFile 下载文件到指定目录,返回带有正确扩展名的完整文件路径
func DownloadFile(url string, dirPath string) (filepath string, err error) { 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 请求 // 发送 HTTP GET 请求
var resp *http.Response var resp *http.Response
var maxRetry = 100 var maxRetry = 100