feat: support specifying url for Bark (close #57)
This commit is contained in:
+20
-6
@@ -1,6 +1,7 @@
|
|||||||
package channel
|
package channel
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
@@ -8,6 +9,12 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type barkMessageRequest struct {
|
||||||
|
Title string `json:"title"`
|
||||||
|
Body string `json:"body"`
|
||||||
|
URL string `json:"url"`
|
||||||
|
}
|
||||||
|
|
||||||
type barkMessageResponse struct {
|
type barkMessageResponse struct {
|
||||||
Code int `json:"code"`
|
Code int `json:"code"`
|
||||||
Message string `json:"message"`
|
Message string `json:"message"`
|
||||||
@@ -17,13 +24,20 @@ func SendBarkMessage(message *model.Message, user *model.User) error {
|
|||||||
if user.BarkServer == "" || user.BarkSecret == "" {
|
if user.BarkServer == "" || user.BarkSecret == "" {
|
||||||
return errors.New("未配置 Bark 消息推送方式")
|
return errors.New("未配置 Bark 消息推送方式")
|
||||||
}
|
}
|
||||||
url := ""
|
url := fmt.Sprintf("%s/%s", user.BarkServer, user.BarkSecret)
|
||||||
if message.Title != "" {
|
req := barkMessageRequest{
|
||||||
url = fmt.Sprintf("%s/%s/%s/%s", user.BarkServer, user.BarkSecret, message.Title, message.Description)
|
Title: message.Title,
|
||||||
} else {
|
Body: message.Content,
|
||||||
url = fmt.Sprintf("%s/%s/%s", user.BarkServer, user.BarkSecret, message.Description)
|
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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user