feat: support custom channel now (close #72, close #75, #71)

This commit is contained in:
JustSong
2023-05-08 22:20:14 +08:00
parent 6914575f47
commit 82068de143
6 changed files with 90 additions and 2 deletions
+31
View File
@@ -0,0 +1,31 @@
package channel
import (
"bytes"
"errors"
"message-pusher/model"
"net/http"
"strings"
)
func SendCustomMessage(message *model.Message, user *model.User, channel_ *model.Channel) error {
url := channel_.URL
if strings.HasPrefix(url, "http:") {
return errors.New("自定义通道必须使用 HTTPS 协议")
}
template := channel_.Other
template = strings.Replace(template, "$url", message.URL, -1)
template = strings.Replace(template, "$to", message.To, -1)
template = strings.Replace(template, "$title", message.Title, -1)
template = strings.Replace(template, "$description", message.Description, -1)
template = strings.Replace(template, "$content", message.Content, -1)
reqBody := []byte(template)
resp, err := http.Post(url, "application/json", bytes.NewReader(reqBody))
if err != nil {
return err
}
if resp.StatusCode != 200 {
return errors.New(resp.Status)
}
return nil
}
+2
View File
@@ -35,6 +35,8 @@ func SendMessage(message *model.Message, user *model.User, channel_ *model.Chann
return SendGroupMessage(message, user, channel_)
case model.TypeLarkApp:
return SendLarkAppMessage(message, user, channel_)
case model.TypeCustom:
return SendCustomMessage(message, user, channel_)
default:
return errors.New("不支持的消息通道:" + channel_.Type)
}