study_xxqg/push/pushPlus.go

56 lines
1.0 KiB
Go

package push
import (
"fmt"
"strings"
"github.com/guonaihong/gout"
log "github.com/sirupsen/logrus"
)
type PushPlus struct {
Token string
}
var datas []string
func (p *PushPlus) Init() func(kind, message string) {
send := func(data string) {
err := gout.POST("http://www.pushplus.plus/send").SetJSON(gout.H{
"token": p.Token,
"title": "study_xxqg",
"content": data,
"template": "markdown",
"channel": "wechat",
}).Do()
if err != nil {
log.Errorln(err.Error())
return
}
}
return func(kind, message string) {
switch {
case kind == "image":
message = fmt.Sprintf("![](%v)", "data:image/png;base64,"+message)
send(message)
case kind == "flush":
if message == "" {
send(strings.Join(datas, " <br/> "))
datas = []string{}
return
}
datas = append(datas, message)
send(strings.Join(datas, " <br/> "))
datas = []string{}
default:
if len(datas) > 10 {
send(strings.Join(datas, " <br/> "))
datas = []string{}
} else {
datas = append(datas, message)
}
}
}
}