fix: channel Bark is done

This commit is contained in:
JustSong
2022-11-23 17:30:49 +08:00
parent d9d38d12ed
commit 564817ba94
5 changed files with 87 additions and 2 deletions
+39
View File
@@ -0,0 +1,39 @@
package channel
import (
"encoding/json"
"errors"
"fmt"
"message-pusher/model"
"net/http"
)
type barkMessageResponse struct {
Code int `json:"code"`
Message string `json:"message"`
}
func SendBarkMessage(message *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)
}
resp, err := http.Get(url)
if err != nil {
return err
}
var res barkMessageResponse
err = json.NewDecoder(resp.Body).Decode(&res)
if err != nil {
return err
}
if res.Code != 200 {
return errors.New(res.Message)
}
return nil
}
+3
View File
@@ -12,6 +12,7 @@ const (
TypeLark = "lark"
TypeDing = "ding"
TypeTelegram = "telegram"
TypeBark = "bark"
)
type Message struct {
@@ -36,6 +37,8 @@ func (message *Message) Send(user *model.User) error {
return SendLarkMessage(message, user)
case TypeDing:
return SendDingMessage(message, user)
case TypeBark:
return SendBarkMessage(message, user)
default:
return errors.New("不支持的消息通道:" + message.Channel)
}