go-common/app/interface/main/videoup/model/archive/param.go

233 lines
7.1 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
package archive
import (
"go-common/library/time"
)
// ArchiveAddLogID
const (
// ArchiveAddLogID 投稿日志
ArchiveAddLogID = int(81)
// UgcpayAddarcProtocol ugc新增稿件时候记录的协议版本
UgcpayAddarcProtocol = int(83)
// LogTypeSuccess 投稿成功
LogTypeSuccess = int(0)
// LogTypeFail 投稿失败
LogTypeFail = int(1)
)
// AppRequest str
type AppRequest struct {
MobiApp string
Platform string
Build string
Device string
}
// ArcParam str
type ArcParam struct {
Aid int64 `json:"aid"`
Mid int64 `json:"mid"`
Author string `json:"author"`
TypeID int16 `json:"tid"`
Title string `json:"title"`
Cover string `json:"cover"`
Tag string `json:"tag"`
Copyright int8 `json:"copyright"`
NoReprint int8 `json:"no_reprint"`
OrderID int64 `json:"order_id"`
Desc string `json:"desc"`
Source string `json:"source"`
Attribute int32 `json:"-"` // NOTE: not allow user
OpenElec int8 `json:"open_elec"`
MissionID int `json:"mission_id"`
FromIP int64 `json:"from_ip"`
IPv6 []byte `json:"ipv6"`
UpFrom int8 `json:"up_from"`
BizFrom int8 `json:"biz_from"`
DTime time.Time `json:"dtime"`
Videos []*VideoParam `json:"videos"`
Body string `json:"body,omitempty"`
CodeMode bool `json:"code_mode,omitempty"`
DescFormatID int `json:"desc_format_id,omitempty"`
Dynamic string `json:"dynamic,omitempty"`
Porder *Porder `json:"porder"`
Lang string `json:"lang"`
Watermark *Watermark `json:"watermark"`
Geetest *Geetest `json:"geetest"`
LotteryID int64 `json:"lottery_id"`
Subtitle *Subtitle `json:"subtitle"`
Pay *Pay `json:"pay"`
UgcPay int8 `json:"ugcpay"` // videoup-service 需要按照这个字段转成attribute
FollowMids []int64 `json:"follow_mids"`
PoiObj *PoiObj `json:"poi_object"`
Staffs []*Staff `json:"staffs"`
HandleStaff bool `json:"handle_staff"`
Vote *Vote `json:"vote"`
}
// Vote str
type Vote struct {
VoteID int64 `json:"vote_id"`
VoteTitle string `json:"vote_title"`
}
// Pay str
type Pay struct {
Open int8 `json:"open"`
Price int `json:"price"`
ProtocolID string `json:"protocol_id"`
ProtocolAccept int8 `json:"protocol_accept"`
RefuseUpdate bool `json:"-"`
}
// Subtitle str only for web add and edit
type Subtitle struct {
Open int8 `json:"open"`
Lan string `json:"lan"`
}
// Geetest str
type Geetest struct {
Challenge string `json:"challenge"`
Validate string `json:"validate"`
Seccode string `json:"seccode"`
Success int `json:"success"`
}
// Watermark str
type Watermark struct {
State int8 `json:"state"`
Ty int8 `json:"type"`
Pos int8 `json:"position"`
}
// Porder str
// new porder, ads provoder
type Porder struct {
FlowID uint `json:"flow_id"` // 0/1 是否确实参加了广告平台
IndustryID int64 `json:"industry_id"` // 2 (游戏)
BrandName string `json:"brand_name"` // FGO游戏
BrandID int64 `json:"brand_id"` // 2
Official int8 `json:"official"` // 0/1
ShowType string `json:"show_type"` // 2,3,4
}
// VideoParam str
type VideoParam struct {
Title string `json:"title"`
Desc string `json:"desc"`
Filename string `json:"filename"`
Cid int64 `json:"cid"`
Sid int64 `json:"sid"`
Editor *Editor `json:"editor"`
}
// Editor str
type Editor struct {
CID int64 `json:"cid"`
UpFrom int8 `json:"upfrom"` // filled by backend
// ids set
Filters interface{} `json:"filters"` // 滤镜
Fonts interface{} `json:"fonts"` //字体
Subtitles interface{} `json:"subtitles"` //字幕
Bgms interface{} `json:"bgms"` //bgm
Stickers interface{} `json:"stickers"` //3d拍摄贴纸
VideoupStickers interface{} `json:"videoup_stickers"` //2d投稿贴纸
Transitions interface{} `json:"trans"` //视频转场特效
// add from app535
Themes interface{} `json:"themes"` //编辑器的主题使用相关
Cooperates interface{} `json:"cooperates"` //拍摄之稿件合拍
// switch env 0/1
AudioRecord int8 `json:"audio_record"` //录音
Camera int8 `json:"camera"` //拍摄
Speed int8 `json:"speed"` //变速
CameraRotate int8 `json:"camera_rotate"` //摄像头翻转
// count from app536
PicCount uint16 `json:"pic_count"` // 图片个数
VideoCount uint16 `json:"video_count"` // 视频个数
}
// VideoExpire str
type VideoExpire struct {
Filename string `json:"filename"`
Expire int64 `json:"expire"`
}
// CreatorParam struct
type CreatorParam struct {
Aid int64 `form:"aid" validate:"required"`
Title string `form:"title" validate:"required"`
Desc string `form:"desc" validate:"required"`
Tag string `form:"tag" validate:"required"`
OpenElec int8 `form:"open_elec"`
Build string `form:"build" validate:"required"`
Platform string `form:"platform" validate:"required"`
}
// Staff 稿件提交时的联合投稿人
type Staff struct {
Title string `json:"title"`
Mid int64 `json:"mid"`
}
// StaffView Archive staff
type StaffView struct {
ID int64 `json:"id"`
ApMID int64 `json:"apply_staff_mid"`
ApTitle string `json:"apply_title"`
ApAID int64 `json:"apply_aid"`
ApType int `json:"apply_type"`
ApState int `json:"apply_state"`
ApStaffID int64 `json:"apply_asid"` //Staff表的主键ID
StaffState int `json:"staff_state"`
StaffTitle string `json:"staff_title"`
}
// ForbidMultiVideoType fun
// 欧美电影,日本电影,国产电影,其他国家
func (ap *ArcParam) ForbidMultiVideoType() bool {
return ap.TypeID == 145 || ap.TypeID == 146 || ap.TypeID == 147 || ap.TypeID == 83
}
// ForbidAddVideoType fun
// 连载剧集15 完结剧集34 电视剧相关128 电影相关82
func (ap *ArcParam) ForbidAddVideoType() bool {
return ap.TypeID == 15 || ap.TypeID == 34 || ap.TypeID == 128 || ap.TypeID == 82
}
// ForbidCopyrightAndTypes fun
// // 32 完结动画; 33 连载动画
func (ap *ArcParam) ForbidCopyrightAndTypes() bool {
return (ap.Copyright == CopyrightOriginal) && (ap.TypeID == 32 || ap.TypeID == 33)
}
// EmptyVideoEditInfo fn
func (ap *ArcParam) EmptyVideoEditInfo() {
if (ap.UpFrom != UpFromAPPiOS) && (ap.UpFrom != UpFromAPPAndroid) {
for _, v := range ap.Videos {
v.Editor = nil
}
}
}
// NilPoiObj fn
func (ap *ArcParam) NilPoiObj() {
if (ap.UpFrom != UpFromAPPiOS) && (ap.UpFrom != UpFromAPPAndroid) {
ap.PoiObj = nil
}
}
// DisableVideoDesc fn
func (ap *ArcParam) DisableVideoDesc(vs []*Video) {
nvsMap := make(map[string]string)
for _, v := range vs {
nvsMap[v.Filename] = v.Desc
}
for _, pv := range ap.Videos {
if nvFilename, ok := nvsMap[pv.Filename]; ok {
pv.Desc = nvFilename
}
}
}