go-common/app/service/live/third_api/liveBroadcast/push.go
2019-04-22 18:49:16 +08:00

55 lines
1.1 KiB
Go

package liveBroadcast
import (
"context"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
xhttp "net/http"
"net/url"
"strconv"
"strings"
)
const (
_liveBroadCastURLAddr = "http://live-dm.bilibili.co:80/dm/1/push"
)
// type liveBroadcastReq struct {
// Ensure int64 `json:"ensure"`
// Cid int64 `json:"cid"`
// }
type liveBroadcastResp struct {
Code int64 `json:"ret"`
}
//PushBroadcast 广播
func (c *Client) PushBroadcast(ctx context.Context, cid int64, ensure int64, msg string) (err error) {
if len([]rune(msg)) > 2000 {
return
}
resp := &liveBroadcastResp{}
cli := bm.NewClient(c.getConf())
param := url.Values{}
param.Set("cid", strconv.FormatInt(cid, 10))
param.Set("ensure", strconv.FormatInt(0, 10))
url := _liveBroadCastURLAddr + "?" + param.Encode()
req, err := xhttp.NewRequest(xhttp.MethodPost, url, strings.NewReader(msg))
if err != nil {
log.Error("[BroadCastError]error:%+v=", err)
return err
}
if err := cli.Do(ctx, req, resp); err != nil {
log.Error("[BroadCastError]error:%+v=", err)
return err
}
if resp.Code != 1 {
log.Error("BroadCastError] errorcode:%d", resp.Code)
}
return
}