go-common/app/interface/main/videoup/model/archive/param.go
2019-04-22 18:49:16 +08:00

233 lines
7.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}
}
}