292 lines
8.3 KiB
Go
292 lines
8.3 KiB
Go
package mdrsdb
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"errors"
|
|
"fmt"
|
|
"strconv"
|
|
"time"
|
|
|
|
"91porn-server/common"
|
|
"91porn-server/common/httputil"
|
|
"91porn-server/common/log"
|
|
"91porn-server/web/webg"
|
|
)
|
|
|
|
type findMediaListReq struct {
|
|
IDs string `json:"ids"`
|
|
ProId string `json:"pro_id"`
|
|
Type string `json:"type"`
|
|
Page string `json:"page"`
|
|
Size string `json:"size"`
|
|
Timestamp string `json:"timestamp"`
|
|
Sign string `json:"sign"`
|
|
MediaType string `json:"filter[media_type],omitempty"` // 媒体类型 0视频 1图文
|
|
Title string `json:"filter[title],omitempty"`
|
|
TerminalCdo string `json:"filter[terminal_cdo],omitempty"`
|
|
TagText string `json:"filter[tags_text],omitempty"`
|
|
HashId string `json:"filter[hash_id],omitempty"`
|
|
VloggerId string `json:"filter[vlogger_id],omitempty"`
|
|
VloggerUserId string `json:"filter[vlogger_user_id],omitempty"`
|
|
StartTime string `json:"filter[start_time],omitempty"`
|
|
EndTime string `json:"filter[end_time],omitempty"`
|
|
SortType string `json:"sort_type" form:"sort_type"` // 0-id倒序 1-id正序
|
|
MaxTotal string `json:"max_total" form:"max_total"` // 最大列表总数
|
|
}
|
|
|
|
func (f *findMediaListReq) getParam() interface{} {
|
|
f.Sign = sign(*f)
|
|
m := make(map[string]string)
|
|
b, err := json.Marshal(f)
|
|
if err != nil {
|
|
return m
|
|
}
|
|
_ = json.Unmarshal(b, &m)
|
|
return m
|
|
}
|
|
|
|
func FindMediaList(ctx context.Context, pageNumber, pageSize, vloggerUserId int64, title, tagText, hashId string, mVia, videoType int, syncType, terminalCdo string, startTime, endTime time.Time, sortType, maxTotal int) (mslist []MediaResource, count int64, err error) {
|
|
var msgData struct {
|
|
Data []MediaResource `json:"data"`
|
|
Pagination Pagination `json:"pagination"`
|
|
}
|
|
var retMsg msg
|
|
var errlog string
|
|
mt := ""
|
|
if videoType == 0 {
|
|
mt = "0"
|
|
} else if videoType == 2 {
|
|
mt = "1"
|
|
}
|
|
var req = findMediaListReq{
|
|
ProId: getMerchat(),
|
|
Type: syncType,
|
|
Page: strconv.FormatInt(pageNumber, 10),
|
|
Size: strconv.FormatInt(pageSize, 10),
|
|
Timestamp: strconv.FormatInt(time.Now().Unix(), 10),
|
|
HashId: hashId,
|
|
Title: title,
|
|
TerminalCdo: terminalCdo,
|
|
TagText: tagText,
|
|
MediaType: mt,
|
|
SortType: strconv.Itoa(sortType),
|
|
MaxTotal: strconv.Itoa(maxTotal),
|
|
StartTime: strconv.FormatInt(startTime.Unix(), 10),
|
|
EndTime: strconv.FormatInt(endTime.Unix(), 10),
|
|
}
|
|
if vloggerUserId > 0 {
|
|
req.VloggerUserId = strconv.FormatInt(vloggerUserId, 10)
|
|
}
|
|
switch mVia {
|
|
case 0:
|
|
case 1:
|
|
req.VloggerId = "1,"
|
|
case 2:
|
|
req.VloggerId = "0"
|
|
}
|
|
var url string
|
|
if videoType == 0 || videoType == 2 {
|
|
url = "/services/video/videos/v2"
|
|
} else {
|
|
url = "/services/short_video/videos/v2"
|
|
}
|
|
code, err := httputil.DefaultClientGetWithResp(&retMsg, common.BindUrl(getOrignUrl(), url), nil, req.getParam())
|
|
if err != nil {
|
|
errlog = fmt.Sprintf("meadia resource FindMediaList http GetWithJResp error \nerror:%+v;", err)
|
|
log.Error(errlog)
|
|
err = errors.New(errlog)
|
|
return
|
|
}
|
|
if code != 200 {
|
|
errlog = fmt.Sprintf("meadia resource FindMediaList http code error \nerror:%+v;", err)
|
|
log.Error(errlog)
|
|
err = errors.New(errlog)
|
|
return
|
|
}
|
|
if retMsg.Code != 0 {
|
|
errlog = fmt.Sprintf("meadia resource FindMediaList retmsg code error \nerror:%+v;", err)
|
|
log.Error(errlog)
|
|
err = errors.New(errlog)
|
|
return
|
|
}
|
|
b, err := json.Marshal(retMsg.Data)
|
|
if err != nil {
|
|
errlog := fmt.Sprintf("meadia resource FindMediaList Marshal fail \nerror:%+v;", err)
|
|
log.Error(errlog)
|
|
err = errors.New(errlog)
|
|
return
|
|
}
|
|
if err = json.Unmarshal(b, &msgData); err != nil {
|
|
errlog := fmt.Sprintf("meadia resource FindMediaList Unmarshal fail \nerror:%+v;", err)
|
|
log.Error(errlog)
|
|
err = errors.New(errlog)
|
|
return
|
|
}
|
|
mslist = msgData.Data
|
|
count = msgData.Pagination.Count
|
|
return
|
|
}
|
|
|
|
func FindMediaListWithIDs(ctx context.Context, ids []int64, videoType int) (mslist []MediaResource, err error) {
|
|
var msgData struct {
|
|
Data []MediaResource `json:"data"`
|
|
Pagination Pagination `json:"pagination"`
|
|
}
|
|
var retMsg msg
|
|
var errlog string
|
|
var req = findMediaListReq{
|
|
ProId: getMerchat(),
|
|
Type: "all",
|
|
IDs: sliCovertStr(ids),
|
|
Timestamp: strconv.FormatInt(time.Now().Unix(), 10),
|
|
Size: strconv.Itoa(len(ids)),
|
|
Page: "1",
|
|
}
|
|
var url string
|
|
if videoType == 0 || videoType == 2 {
|
|
url = "/services/video/videos"
|
|
} else {
|
|
url = "/services/short_video/videos"
|
|
}
|
|
code, err := httputil.DefaultClientGetWithResp(&retMsg, common.BindUrl(getOrignUrl(), url), nil, req.getParam())
|
|
if err != nil {
|
|
errlog = fmt.Sprintf("meadia resource FindMediaList http GetWithJResp error \nerror:%+v;", err)
|
|
log.Error(errlog)
|
|
err = errors.New(errlog)
|
|
return
|
|
}
|
|
if code != 200 {
|
|
errlog = fmt.Sprintf("meadia resource FindMediaList http code error \nerror:%+v;code:%v", err, code)
|
|
log.Error(errlog)
|
|
err = errors.New(errlog)
|
|
return
|
|
}
|
|
if retMsg.Code != 0 {
|
|
errlog = fmt.Sprintf("meadia resource FindMediaList retmsg code error \nerror:%+v;", err)
|
|
log.Error(errlog)
|
|
err = errors.New(errlog)
|
|
return
|
|
}
|
|
b, err := json.Marshal(retMsg.Data)
|
|
if err != nil {
|
|
errlog := fmt.Sprintf("meadia resource FindMediaList Marshal fail \nerror:%+v;", err)
|
|
log.Error(errlog)
|
|
err = errors.New(errlog)
|
|
return
|
|
}
|
|
if err = json.Unmarshal(b, &msgData); err != nil {
|
|
errlog := fmt.Sprintf("meadia resource FindMediaList Unmarshal fail \nerror:%+v;", err)
|
|
log.Error(errlog)
|
|
err = errors.New(errlog)
|
|
return
|
|
}
|
|
mslist = msgData.Data
|
|
return
|
|
}
|
|
|
|
type useMediaReq struct {
|
|
IDs string `json:"ids"`
|
|
ProId string `json:"pro_id"`
|
|
Timestamp string `json:"timestamp"`
|
|
Sign string `json:"sign"`
|
|
}
|
|
|
|
func (this *useMediaReq) getParam() interface{} {
|
|
this.Sign = sign(*this)
|
|
b, _ := json.Marshal(this)
|
|
return b
|
|
}
|
|
|
|
func UseMedia(ctx context.Context, ids []int64, videoType int) error {
|
|
var retMsg msg
|
|
var errlog string
|
|
var p = useMediaReq{
|
|
ProId: getMerchat(),
|
|
IDs: sliCovertStr(ids),
|
|
Timestamp: strconv.FormatInt(time.Now().Unix(), 10),
|
|
}
|
|
var url string
|
|
if videoType == 0 || videoType == 2 {
|
|
url = "/services/video/used"
|
|
} else {
|
|
url = "/services/short_video/used"
|
|
}
|
|
fmt.Println("-------url", getOrignUrl()+url)
|
|
code, err := httputil.DefaultClientPostJsonWithResp(&retMsg, common.BindUrl(getOrignUrl(), url), nil, p.getParam())
|
|
if err != nil {
|
|
errlog = fmt.Sprintf("meadia resource FindMediaList http POSTJsonWithJResp error \nerror:%+v;", err)
|
|
log.Error(errlog)
|
|
return errors.New(errlog)
|
|
}
|
|
if code != 200 {
|
|
errlog = fmt.Sprintf("meadia resource FindMediaList http code error \nerror:%+v;", err)
|
|
log.Error(errlog)
|
|
return errors.New(errlog)
|
|
}
|
|
if retMsg.Code != 0 {
|
|
errlog = fmt.Sprintf("meadia resource FindMediaList retmsg code error \nerror:%+v;", err)
|
|
log.Error(errlog)
|
|
return errors.New(errlog)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type ignoreMediaReq struct {
|
|
IDs string `json:"ids"`
|
|
ProId string `json:"pro_id"`
|
|
Timestamp string `json:"timestamp"`
|
|
Sign string `json:"sign"`
|
|
}
|
|
|
|
func (this *ignoreMediaReq) getParam() interface{} {
|
|
this.Sign = sign(*this)
|
|
b, _ := json.Marshal(this)
|
|
return b
|
|
}
|
|
|
|
func IgnoreMedia(ctx context.Context, ids []int64, videoType int) error {
|
|
var retMsg msg
|
|
var errlog string
|
|
var p = ignoreMediaReq{
|
|
ProId: getMerchat(),
|
|
IDs: sliCovertStr(ids),
|
|
Timestamp: strconv.FormatInt(time.Now().Unix(), 10),
|
|
}
|
|
var url string
|
|
if videoType == 0 || videoType == 2 {
|
|
url = "/services/video/ignored"
|
|
} else {
|
|
url = "/services/short_video/ignored"
|
|
}
|
|
code, err := httputil.DefaultClientPostJsonWithResp(&retMsg, common.BindUrl(getOrignUrl(), url), nil, p.getParam())
|
|
if err != nil {
|
|
errlog = fmt.Sprintf("meadia resource FindMediaList http POSTJsonWithJResp error \nerror:%+v;", err)
|
|
log.Error(errlog)
|
|
return errors.New(errlog)
|
|
}
|
|
if code != 200 {
|
|
errlog = fmt.Sprintf("meadia resource FindMediaList http code error \nerror:%+v;code %d", err, code)
|
|
log.Error(errlog)
|
|
return errors.New(errlog)
|
|
}
|
|
if retMsg.Code != 0 {
|
|
errlog = fmt.Sprintf("meadia resource FindMediaList retmsg code error \nerror:%+v;res:%+v", err, retMsg)
|
|
log.Error(errlog)
|
|
return errors.New(errlog)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func getMerchat() string {
|
|
return webg.Conf.MediaResourceDBCfg.Merchat
|
|
}
|
|
|
|
func getSecret() string {
|
|
return webg.Conf.MediaResourceDBCfg.Secret
|
|
}
|
|
|
|
func getOrignUrl() string {
|
|
return webg.Conf.MediaResourceDBCfg.BaseUrl
|
|
}
|