mirror of https://github.com/allinssl/allinssl
支持webhook中消息标题及消息内容替换逻辑
parent
29a7579743
commit
3ad8797922
|
@ -1,4 +1,6 @@
|
|||
.DS_Store
|
||||
/data/
|
||||
/logs/
|
||||
.idea
|
||||
.idea
|
||||
**/.history/
|
||||
/allinssl
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue