138 lines
3.5 KiB
Go
138 lines
3.5 KiB
Go
package model
|
|
|
|
import "go-common/library/ecode"
|
|
|
|
// SnDetailCore is the common part of pgc media v1 and v2
|
|
type SnDetailCore struct {
|
|
Cover string `json:"cover"`
|
|
Evaluate string `json:"evaluate"`
|
|
Link string `json:"link"`
|
|
MediaID int `json:"media_id"`
|
|
Mode int `json:"mode"`
|
|
Paster *Paster `json:"paster"`
|
|
Publish *Publish `json:"publish"`
|
|
Rating *Rating `json:"rating"`
|
|
SeasonID int64 `json:"season_id"`
|
|
SeasonStatus int `json:"season_status"`
|
|
SeasonTitle string `json:"season_title"`
|
|
SeasonType int `json:"season_type"`
|
|
ShareURL string `json:"share_url"`
|
|
SquareCover string `json:"square_cover"`
|
|
Title string `json:"title"`
|
|
TotalEp int `json:"total_ep"`
|
|
Rights *Rights `json:"rights"`
|
|
StyleLabel []*ParamStyle `json:"style_label"`
|
|
}
|
|
|
|
// SnDetailV2 def
|
|
type SnDetailV2 struct {
|
|
Episodes []*EpisodeV2 `json:"episodes"`
|
|
NewestEP *NewEPV2 `json:"new_ep"`
|
|
Stat *StatV2 `json:"stat"`
|
|
UserStatus *UserStatusV2 `json:"user_status"`
|
|
Seasons []*SeasonV2 `json:"seasons"`
|
|
Section []*Section `json:"section"`
|
|
Type int `json:"type"`
|
|
SnDetailCore
|
|
}
|
|
|
|
// TypeTrans def.
|
|
func (v *SnDetailV2) TypeTrans() {
|
|
v.SeasonType = v.Type
|
|
}
|
|
|
|
// Section def.
|
|
type Section struct {
|
|
Episodes []*EpisodeV2 `json:"episodes"`
|
|
}
|
|
|
|
// EpisodeV2 def.
|
|
type EpisodeV2 struct {
|
|
AID int64 `json:"aid"`
|
|
Badge string `json:"badge"`
|
|
BadgeType int `json:"badge_type"`
|
|
CID int64 `json:"cid"`
|
|
Cover string `json:"cover"`
|
|
From string `json:"from"`
|
|
ID int64 `json:"id"`
|
|
LongTitle string `json:"long_title"`
|
|
ShareURL string `json:"share_url"`
|
|
Status int `json:"status"`
|
|
Title string `json:"title"`
|
|
VID string `json:"vid"`
|
|
WaterMark bool `json:"hidemark"` // true means in the whitelist
|
|
CornerMark *CornerMark `json:"cornermark"`
|
|
}
|
|
|
|
// CornerMark def.
|
|
type CornerMark struct {
|
|
Title string `json:"title"`
|
|
Cover string `json:"cover"`
|
|
}
|
|
|
|
// SnVipCorner def.
|
|
type SnVipCorner struct {
|
|
Title string `json:"title"`
|
|
Cover string `json:"cover"`
|
|
}
|
|
|
|
// CmsInterv def.
|
|
func (v *EpisodeV2) CmsInterv(epCMS *EpCMS) {
|
|
if epCMS.Cover != "" {
|
|
v.Cover = epCMS.Cover
|
|
}
|
|
if epCMS.Title != "" {
|
|
v.LongTitle = epCMS.Title
|
|
}
|
|
}
|
|
|
|
// NewEPV2 def.
|
|
type NewEPV2 struct {
|
|
Desc string `json:"desc"`
|
|
ID int64 `json:"id"`
|
|
IsNew int `json:"is_new"`
|
|
Title string `json:"title"`
|
|
}
|
|
|
|
// StatV2 def. 3 new fields
|
|
type StatV2 struct {
|
|
Coin int `json:"coin"`
|
|
Reply int `json:"reply"`
|
|
Share int `json:"share"`
|
|
Stat
|
|
}
|
|
|
|
// UserStatusV2 def.
|
|
type UserStatusV2 struct {
|
|
Follow int `json:"follow"`
|
|
Pay int `json:"pay"`
|
|
Progress *WatchProgress `json:"watch_progress"`
|
|
Review *ReviewV2 `json:"review"`
|
|
Sponsor int `json:"sponsor"`
|
|
}
|
|
|
|
// ReviewV2 def.
|
|
type ReviewV2 struct {
|
|
IsOpen int `json:"is_open"`
|
|
}
|
|
|
|
// Response standard structure
|
|
type Response struct {
|
|
Code int `json:"code"`
|
|
Message string `json:"message"`
|
|
}
|
|
|
|
// CodeErr generates the code error
|
|
func (r *Response) CodeErr() (err error) {
|
|
if r.Code != ecode.OK.Code() {
|
|
err = ecode.Int(r.Code)
|
|
}
|
|
return
|
|
}
|
|
|
|
// MediaRespV2 is the structure of PGC display api response
|
|
type MediaRespV2 struct {
|
|
Response
|
|
Result *SnDetailV2 `json:"result"`
|
|
}
|