From 3ad87979229fb362ff20dfc2e1c2e3e58e287d73 Mon Sep 17 00:00:00 2001 From: mooring Date: Tue, 3 Jun 2025 14:02:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81webhook=E4=B8=AD=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E6=A0=87=E9=A2=98=E5=8F=8A=E6=B6=88=E6=81=AF=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E6=9B=BF=E6=8D=A2=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 4 +++- backend/internal/report/webhook.go | 20 ++++++++++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 5b54b26..6e8e29e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ .DS_Store /data/ /logs/ -.idea \ No newline at end of file +.idea +**/.history/ +/allinssl \ No newline at end of file diff --git a/backend/internal/report/webhook.go b/backend/internal/report/webhook.go index 3dea1cf..e13986d 100644 --- a/backend/internal/report/webhook.go +++ b/backend/internal/report/webhook.go @@ -33,11 +33,11 @@ func NewWebHookReporter(config *ReportConfig, logger *public.Logger) *WebHookRep if config.IgnoreSSL { client.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true}) } - + if config.Data == "" { config.Data = "{}" // 默认数据为空JSON对象 } - + return &WebHookReporter{ config: config, logger: logger, @@ -184,6 +184,22 @@ func NotifyWebHook(params map[string]any) error { return fmt.Errorf("解析配置失败: %v", err) } + if params["subject"] != nil && params["body"] != nil { + subjStr, ok1 := params["subject"].(string) + bodyStr, ok2 := params["body"].(string) + if ok1 && ok2 { + subjStr = strings.ReplaceAll(subjStr, `"`, `\"`) + bodyStr = strings.ReplaceAll(bodyStr, `"`, `\"`) + if strings.Contains(config.Data, "{subject}") { + config.Data = strings.ReplaceAll(config.Data, "{subject}", subjStr+"\n") + } + if strings.Contains(config.Data, "{body}") { + config.Data = strings.ReplaceAll(config.Data, "{body}", bodyStr) + } + config.Data = strings.ReplaceAll(config.Data, "\n", `\n`) + } + } + reporter := NewWebHookReporter(&config, logger) httpctx := context.Background() err = reporter.Send(httpctx)