160 lines
3.8 KiB
Go
160 lines
3.8 KiB
Go
package model
|
|
|
|
import (
|
|
"go-common/app/interface/main/dm2/model"
|
|
tagmdl "go-common/app/interface/main/tag/model"
|
|
accmdl "go-common/app/service/main/account/model"
|
|
arcmdl "go-common/app/service/main/archive/api"
|
|
ugcmdl "go-common/app/service/main/ugcpay/api/grpc/v1"
|
|
)
|
|
|
|
// View view data
|
|
type View struct {
|
|
// archive data
|
|
*arcmdl.Arc
|
|
NoCache bool `json:"no_cache"`
|
|
// video data pages
|
|
Pages []*arcmdl.Page `json:"pages,omitempty"`
|
|
Subtitle *Subtitle `json:"subtitle"`
|
|
Asset *ugcmdl.AssetQueryResp `json:"asset,omitempty"`
|
|
}
|
|
|
|
// AssetRelation .
|
|
type AssetRelation struct {
|
|
State int `json:"state"`
|
|
}
|
|
|
|
// Stat archive stat web struct
|
|
type Stat struct {
|
|
Aid int64 `json:"aid"`
|
|
View interface{} `json:"view"`
|
|
Danmaku int32 `json:"danmaku"`
|
|
Reply int32 `json:"reply"`
|
|
Fav int32 `json:"favorite"`
|
|
Coin int32 `json:"coin"`
|
|
Share int32 `json:"share"`
|
|
Like int32 `json:"like"`
|
|
NowRank int32 `json:"now_rank"`
|
|
HisRank int32 `json:"his_rank"`
|
|
NoReprint int32 `json:"no_reprint"`
|
|
Copyright int32 `json:"copyright"`
|
|
}
|
|
|
|
// Detail detail data
|
|
type Detail struct {
|
|
View *View
|
|
Card *Card
|
|
Tags []*tagmdl.Tag
|
|
Reply *ReplyHot
|
|
Related []*arcmdl.Arc
|
|
}
|
|
|
|
// ArchiveUserCoins .
|
|
type ArchiveUserCoins struct {
|
|
Multiply int64 `json:"multiply"`
|
|
}
|
|
|
|
// Subtitle dm subTitle.
|
|
type Subtitle struct {
|
|
AllowSubmit bool `json:"allow_submit"`
|
|
List []*SubtitleItem `json:"list"`
|
|
}
|
|
|
|
// SubtitleItem dm subTitle.
|
|
type SubtitleItem struct {
|
|
*model.VideoSubtitle
|
|
Author *accmdl.Info `json:"author"`
|
|
}
|
|
|
|
// TripleRes struct
|
|
type TripleRes struct {
|
|
Like bool `json:"like"`
|
|
Coin bool `json:"coin"`
|
|
Fav bool `json:"fav"`
|
|
Multiply int64 `json:"multiply"`
|
|
UpID int64 `json:"-"`
|
|
Anticheat bool `json:"-"`
|
|
}
|
|
|
|
var (
|
|
// StatAllowStates archive stat allow states
|
|
statAllowStates = []int32{-9, -15, -30}
|
|
)
|
|
|
|
// CheckAllowState check archive stat allow state
|
|
func CheckAllowState(arc *arcmdl.Arc) bool {
|
|
if arc.IsNormal() {
|
|
return true
|
|
}
|
|
for _, allow := range statAllowStates {
|
|
if arc.State == allow {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
// FmtArc fmt grpc arc to archive3
|
|
func FmtArc(arc *arcmdl.Arc) (data *arcmdl.Arc) {
|
|
data = &arcmdl.Arc{
|
|
Aid: arc.Aid,
|
|
Videos: arc.Videos,
|
|
TypeID: arc.TypeID,
|
|
TypeName: arc.TypeName,
|
|
Copyright: arc.Copyright,
|
|
Pic: arc.Pic,
|
|
Title: arc.Title,
|
|
PubDate: arc.PubDate,
|
|
Ctime: arc.Ctime,
|
|
Desc: arc.Desc,
|
|
State: arc.State,
|
|
Access: arc.Access,
|
|
Attribute: arc.Attribute,
|
|
Tag: arc.Tag,
|
|
Tags: arc.Tags,
|
|
Duration: arc.Duration,
|
|
MissionID: arc.MissionID,
|
|
OrderID: arc.OrderID,
|
|
RedirectURL: arc.RedirectURL,
|
|
Forward: arc.Forward,
|
|
Rights: arcmdl.Rights{
|
|
Bp: arc.Rights.Bp,
|
|
Elec: arc.Rights.Elec,
|
|
Download: arc.Rights.Download,
|
|
Movie: arc.Rights.Movie,
|
|
Pay: arc.Rights.Pay,
|
|
HD5: arc.Rights.HD5,
|
|
NoReprint: arc.Rights.NoReprint,
|
|
Autoplay: arc.Rights.Autoplay,
|
|
UGCPay: arc.Rights.UGCPay,
|
|
},
|
|
Author: arcmdl.Author{
|
|
Mid: arc.Author.Mid,
|
|
Name: arc.Author.Name,
|
|
Face: arc.Author.Face,
|
|
},
|
|
Stat: arcmdl.Stat{
|
|
Aid: arc.Stat.Aid,
|
|
View: arc.Stat.View,
|
|
Danmaku: arc.Stat.Danmaku,
|
|
Reply: arc.Stat.Reply,
|
|
Fav: arc.Stat.Fav,
|
|
Coin: arc.Stat.Coin,
|
|
Share: arc.Stat.Share,
|
|
NowRank: arc.Stat.NowRank,
|
|
HisRank: arc.Stat.HisRank,
|
|
Like: arc.Stat.Like,
|
|
DisLike: arc.Stat.DisLike,
|
|
},
|
|
ReportResult: arc.ReportResult,
|
|
Dynamic: arc.Dynamic,
|
|
FirstCid: arc.FirstCid,
|
|
Dimension: arcmdl.Dimension{
|
|
Width: arc.Dimension.Width,
|
|
Height: arc.Dimension.Height,
|
|
Rotate: arc.Dimension.Rotate,
|
|
},
|
|
}
|
|
return
|
|
}
|