go-common/app/admin/main/tv/dao/playurl.go

73 lines
2.0 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
package dao
import (
"context"
"fmt"
"net/url"
"go-common/app/admin/main/tv/model"
"go-common/library/log"
)
const _type = "mp4"
const _maxBackup = 0
const _otype = "json"
const _qn = "16"
// Playurl Def.
func (d *Dao) Playurl(ctx context.Context, cid int) (playurl string, err error) {
var (
result = model.PlayurlResp{}
params = url.Values{}
api = d.c.Cfg.PlayurlAPI
)
params.Set("cid", fmt.Sprintf("%d", cid))
params.Set("type", _type) // to get one piece
params.Set("max_backup", fmt.Sprintf("%d", _maxBackup)) // no backup url needed
params.Set("otype", _otype) // json format response
params.Set("qn", _qn) // json format response
if err = d.client.Get(ctx, api, "", params, &result); err != nil {
log.Error("ClientGet error[%v]", err)
return
}
if result.Code != 0 { // logic error
err = fmt.Errorf("Resp Code:[%v], Message:[%v]", result.Code, result.Message)
return
}
if len(result.Durl) < 1 { // result empty
err = fmt.Errorf("Playurl Result is Empty! Resp (%v)", result)
return
}
playurl = result.Durl[0].URL
return
}
//UPlayurl ugc play url
func (d *Dao) UPlayurl(ctx context.Context, cid int) (playurl string, err error) {
var (
result = model.UPlayURLR{}
params = url.Values{}
api = d.c.Cfg.UPlayurlAPI
)
params.Set("cid", fmt.Sprintf("%d", cid))
params.Set("type", "mp4")
params.Set("max_backup", fmt.Sprintf("%d", 0))
params.Set("otype", "json")
params.Set("qn", "16")
params.Set("platform", "tvproj")
if err = d.client.Get(ctx, api, "", params, &result); err != nil {
log.Error("UPlayurl ClientGet error[%v]", err)
return
}
if result.Code != 0 { // logic error
err = fmt.Errorf("UPlayurl Resp Code:[%v], Message:[%v], Result:[%v]", result.Code, result.Message, result.Result)
return
}
if len(result.Durl) < 1 { // result empty
err = fmt.Errorf("UPlayurl Result is Empty! Resp (%v)", result)
return
}
playurl = result.Durl[0].URL
return
}