You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.3 KiB
61 lines
1.3 KiB
package message
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
log "github.com/sirupsen/logrus"
|
|
|
|
"luxshare-daily-report/global"
|
|
"net/http"
|
|
)
|
|
|
|
type Bark struct {
|
|
url string
|
|
key string
|
|
}
|
|
|
|
var b = Bark{}
|
|
|
|
func initBark() {
|
|
b.url = global.GLO_CONFIG.BarkUrl
|
|
b.key = global.GLO_CONFIG.BarkKey
|
|
Register("bark", b)
|
|
}
|
|
|
|
func (m Bark) Send(message Body) {
|
|
log.Infof("[bark] Sending by bark...")
|
|
var reqBody = Request{
|
|
DeviceKey: b.key,
|
|
Title: message.Title,
|
|
Body: message.Content,
|
|
Icon: "https://m.luxshare-ict.com/favicon.ico",
|
|
//Url: "https://github.com/zggsong",
|
|
}
|
|
req, _ := json.Marshal(reqBody)
|
|
resp, err := http.Post(m.url, "application/json; charset=utf-8", bytes.NewReader(req))
|
|
if err != nil {
|
|
log.Errorf("[bark] http post failed: %v\n", err)
|
|
return
|
|
}
|
|
defer resp.Body.Close()
|
|
log.Infof("[bark] Send successful")
|
|
}
|
|
|
|
type Request struct {
|
|
Body string `json:"body"`
|
|
DeviceKey string `json:"device_key"`
|
|
Title string `json:"title"`
|
|
Badge int `json:"badge"`
|
|
Category string `json:"category"`
|
|
Sound string `json:"sound"`
|
|
Icon string `json:"icon"`
|
|
Group string `json:"group"`
|
|
Url string `json:"url"`
|
|
}
|
|
|
|
type Response struct {
|
|
Code int `json:"code"`
|
|
Message string `json:"message"`
|
|
Timestamp int `json:"timestamp"`
|
|
}
|