package pusher import ( "fmt" "github.com/go-resty/resty/v2" "haitao_watcher/pkg/options" "strings" ) type AnPush struct { opt *options.AnPushOption client *resty.Client } func NewAnPush(opt *options.AnPushOption) *AnPush { return &AnPush{ opt: opt, client: resty.New().SetHeader("Content-Type", "application/x-www-form-urlencoded"), } } type msgResponse struct { Errcode int `json:"errcode"` Errmsg string `json:"errmsg"` Msgid uint64 `json:"msgid"` } func (a *AnPush) Push(title, content string) error { r := a.client.R().SetBody(strings.NewReader(fmt.Sprintf("title=%s&content=%s&channel=%s", title, content, a.opt.Channel))) var result msgResponse r.SetResult(&result) _, err := r.Post(fmt.Sprintf("https://api.anpush.com/push/%s", a.opt.Token)) return err }