feat: support specifying url for Bark (close #57)

This commit is contained in:
JustSong
2023-04-22 19:33:59 +08:00
parent da4b7192fc
commit b14c2df254
+20 -6
View File
@@ -1,6 +1,7 @@
package channel
import (
"bytes"
"encoding/json"
"errors"
"fmt"
@@ -8,6 +9,12 @@ import (
"net/http"
)
type barkMessageRequest struct {
Title string `json:"title"`
Body string `json:"body"`
URL string `json:"url"`
}
type barkMessageResponse struct {
Code int `json:"code"`
Message string `json:"message"`
@@ -17,13 +24,20 @@ func SendBarkMessage(message *model.Message, user *model.User) error {
if user.BarkServer == "" || user.BarkSecret == "" {
return errors.New("未配置 Bark 消息推送方式")
}
url := ""
if message.Title != "" {
url = fmt.Sprintf("%s/%s/%s/%s", user.BarkServer, user.BarkSecret, message.Title, message.Description)
} else {
url = fmt.Sprintf("%s/%s/%s", user.BarkServer, user.BarkSecret, message.Description)
url := fmt.Sprintf("%s/%s", user.BarkServer, user.BarkSecret)
req := barkMessageRequest{
Title: message.Title,
Body: message.Content,
URL: message.URL,
}
resp, err := http.Get(url)
if message.Content == "" {
req.Body = message.Description
}
reqBody, err := json.Marshal(req)
if err != nil {
return err
}
resp, err := http.Post(url, "application/json", bytes.NewReader(reqBody))
if err != nil {
return err
}