114 lines
3.4 KiB
Go
114 lines
3.4 KiB
Go
package view
|
|
|
|
import (
|
|
"encoding/json"
|
|
"strconv"
|
|
|
|
arcwar "go-common/app/service/main/archive/api"
|
|
)
|
|
|
|
// View view+relates
|
|
type View struct {
|
|
*Static // relate data
|
|
ReqUser *ReqUser `json:"req_user,omitempty"` // now user
|
|
History *History `json:"history,omitempty"`
|
|
Relates []*Relate `json:"relates,omitempty"`
|
|
PID int32 `json:"category"` // father level partition ID
|
|
}
|
|
|
|
// ReqUser struct
|
|
type ReqUser struct {
|
|
Attention int `json:"attention"`
|
|
Favorite int8 `json:"favorite"`
|
|
Like int8 `json:"like"`
|
|
Dislike int8 `json:"dislike"`
|
|
Coin int8 `json:"coin"`
|
|
}
|
|
|
|
// Static .
|
|
type Static struct {
|
|
*arcwar.Arc
|
|
Pages []*Page `json:"pages,omitempty"`
|
|
}
|
|
|
|
// Page .
|
|
type Page struct {
|
|
*arcwar.Page
|
|
Metas []*Meta `json:"metas"`
|
|
}
|
|
|
|
// Meta .
|
|
type Meta struct {
|
|
Quality int `json:"quality"`
|
|
Format string `json:"format"`
|
|
Size int64 `json:"size"`
|
|
}
|
|
|
|
// Relate .
|
|
type Relate struct {
|
|
Aid int64 `json:"aid,omitempty"`
|
|
Pic string `json:"pic,omitempty"`
|
|
Title string `json:"title,omitempty"`
|
|
Author arcwar.Author `json:"owner,omitempty"`
|
|
Stat arcwar.Stat `json:"stat,omitempty"`
|
|
Duration int64 `json:"duration,omitempty"`
|
|
Goto string `json:"goto,omitempty"`
|
|
Param string `json:"param,omitempty"`
|
|
URI string `json:"uri,omitempty"`
|
|
Rating float64 `json:"rating,omitempty"`
|
|
Reserve string `json:"reserve,omitempty"`
|
|
From string `json:"from,omitempty"`
|
|
Desc string `json:"desc,omitempty"`
|
|
RcmdReason string `json:"rcmd_reason,omitempty"`
|
|
Badge string `json:"badge,omitempty"`
|
|
Cid int64 `json:"cid,omitempty"`
|
|
// cm ad
|
|
AdIndex int `json:"ad_index,omitempty"`
|
|
CmMark int `json:"cm_mark,omitempty"`
|
|
SrcID int64 `json:"src_id,omitempty"`
|
|
RequestID string `json:"request_id,omitempty"`
|
|
CreativeID int64 `json:"creative_id,omitempty"`
|
|
CreativeType int64 `json:"creative_type,omitempty"`
|
|
Type int `json:"type,omitempty"`
|
|
Cover string `json:"cover,omitempty"`
|
|
ButtonTitle string `json:"button_title,omitempty"`
|
|
View int `json:"view,omitempty"`
|
|
Danmaku int `json:"danmaku,omitempty"`
|
|
IsAd bool `json:"is_ad,omitempty"`
|
|
IsAdLoc bool `json:"is_ad_loc,omitempty"`
|
|
AdCb string `json:"ad_cb,omitempty"`
|
|
ShowURL string `json:"show_url,omitempty"`
|
|
ClickURL string `json:"click_url,omitempty"`
|
|
ClientIP string `json:"client_ip,omitempty"`
|
|
Extra json.RawMessage `json:"extra,omitempty"`
|
|
Button *Button `json:"button,omitempty"`
|
|
CardIndex int `json:"card_index,omitempty"`
|
|
}
|
|
|
|
// Button .
|
|
type Button struct {
|
|
Title string `json:"title,omitempty"`
|
|
URI string `json:"uri,omitempty"`
|
|
}
|
|
|
|
// FromAv treatment
|
|
func (r *Relate) FromAv(a *arcwar.Arc, from string) {
|
|
r.Aid = a.Aid
|
|
r.Title = a.Title
|
|
r.Pic = a.Pic
|
|
r.Author = a.Author
|
|
r.Stat = a.Stat
|
|
r.Duration = a.Duration
|
|
r.Cid = a.FirstCid
|
|
r.Goto = GotoAv
|
|
r.Param = strconv.FormatInt(a.Aid, 10)
|
|
r.URI = FillURI(r.Goto, r.Param, AvHandler(a))
|
|
r.From = from
|
|
}
|
|
|
|
// History struct
|
|
type History struct {
|
|
Cid int64 `json:"cid"`
|
|
Progress int64 `json:"progress"`
|
|
}
|