支持webhook中消息标题及消息内容替换逻辑

pull/185/head
mooring 2025-06-03 14:02:07 +08:00
parent 29a7579743
commit 3ad8797922
2 changed files with 21 additions and 3 deletions

4
.gitignore vendored
View File

@ -1,4 +1,6 @@
.DS_Store
/data/
/logs/
.idea
.idea
**/.history/
/allinssl

View File

@ -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)