You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
231 lines
6.2 KiB
231 lines
6.2 KiB
package archive |
|
|
|
import ( |
|
"go-common/app/service/main/archive/api" |
|
a "go-common/app/service/main/archive/model/archive" |
|
"go-common/library/time" |
|
) |
|
|
|
var ( |
|
// VjInfo 审核当前拥挤状态的数据映射 |
|
VjInfo = map[int8]*VideoJam{ |
|
0: { |
|
Level: 0, |
|
State: "状态正在计算中", |
|
Comment: "状态正在计算中", |
|
}, |
|
1: { |
|
Level: 1, |
|
State: "畅通", |
|
Comment: "预计稿件过审时间小于20分钟(剧集、活动投稿除外)", |
|
}, |
|
2: { |
|
Level: 2, |
|
State: "繁忙", |
|
Comment: "预计稿件过审时间小于40分钟(剧集、活动投稿除外)", |
|
}, |
|
3: { |
|
Level: 3, |
|
State: "拥挤", |
|
Comment: "预计稿件过审时间小于60分钟(剧集、活动投稿除外)", |
|
}, |
|
4: { |
|
Level: 4, |
|
State: "爆满", |
|
Comment: "预计稿件过审时间小于120分钟(剧集、活动投稿除外)", |
|
}, |
|
5: { |
|
Level: 5, |
|
State: "阻塞", |
|
Comment: "预计稿件过审时间大于120分钟(剧集、活动投稿除外)", |
|
}, |
|
} |
|
) |
|
|
|
const ( |
|
// CopyrightOrigin 自制 |
|
CopyrightOrigin = int64(1) |
|
// CopyrightReprint 转载 |
|
CopyrightReprint = int64(2) |
|
// TagPredictFromWeb web tag推荐 |
|
TagPredictFromWeb = int8(0) |
|
// TagPredictFromAPP app tag推荐 |
|
TagPredictFromAPP = int8(1) |
|
// TagPredictFromWindows windows tag推荐 |
|
TagPredictFromWindows = int8(2) |
|
) |
|
|
|
// Const State |
|
const ( |
|
// attribute yes and no |
|
AttrYes = int32(1) |
|
AttrNo = int32(0) |
|
// attribute bit |
|
AttrBitNoRank = uint(0) |
|
AttrBitNoDynamic = uint(1) |
|
AttrBitNoWeb = uint(2) |
|
AttrBitNoMobile = uint(3) |
|
AttrBitNoSearch = uint(4) |
|
AttrBitOverseaLock = uint(5) |
|
AttrBitNoRecommend = uint(6) |
|
AttrBitNoReprint = uint(7) |
|
AttrBitHasHD5 = uint(8) |
|
AttrBitIsPGC = uint(9) |
|
AttrBitAllowBp = uint(10) |
|
AttrBitIsBangumi = uint(11) |
|
AttrBitIsPorder = uint(12) |
|
AttrBitLimitArea = uint(13) |
|
AttrBitAllowTag = uint(14) |
|
AttrBitIsFromArcAPI = uint(15) // TODO: delete |
|
AttrBitJumpURL = uint(16) |
|
AttrBitIsMovie = uint(17) |
|
AttrBitBadgepay = uint(18) |
|
AttrBitIsJapan = uint(19) //日文稿件 |
|
AttrBitNoPushBplus = uint(20) //是否动态禁止 |
|
AttrBitParentMode = uint(21) //家长模式 |
|
AttrBitUGCPay = uint(22) //UGC付费 |
|
AttrBitHasBGM = uint(23) //稿件带有BGM |
|
AttrBitIsCoop = uint(24) //联合投稿 |
|
) |
|
|
|
// OldArchiveVideoAudit archive with audit. |
|
// NOTE: old struct, will delete!!! |
|
type OldArchiveVideoAudit struct { |
|
*api.Arc |
|
RejectReson string `json:"reject,omitempty"` |
|
Dtime time.Time `json:"dtime,omitempty"` |
|
VideoAudits []*OldVideoAudit `json:"video_audit,omitempty"` |
|
StateDesc string `json:"state_desc"` |
|
StatePanel int `json:"state_panel"` |
|
ParentTName string `json:"parent_tname"` |
|
Attrs *Attrs `json:"attrs"` |
|
UgcPay int8 `json:"ugcpay"` |
|
} |
|
|
|
// OldVideoAudit video audit. |
|
// NOTE: old struct, will delete!!! |
|
type OldVideoAudit struct { |
|
Reason string `json:"reason,omitempty"` |
|
Eptitle string `json:"eptitle,omitempty"` |
|
IndexOrder int `json:"index_order"` |
|
} |
|
|
|
// ArcVideoAudit archive video audit. |
|
type ArcVideoAudit struct { |
|
*ArcVideo |
|
Stat *api.Stat `json:"stat"` |
|
StatePanel int `json:"state_panel"` |
|
ParentTName string `json:"parent_tname"` |
|
TypeName string `json:"typename"` |
|
OpenAppeal int64 `json:"open_appeal"` |
|
} |
|
|
|
// Flow type |
|
type Flow struct { |
|
ID uint `json:"id"` |
|
Remark string `json:"remark"` |
|
} |
|
|
|
// Porder type |
|
type Porder struct { |
|
ID int64 `json:"id"` |
|
AID int64 `json:"aid"` |
|
IndustryID int64 `json:"industry_id"` |
|
BrandID int64 `json:"brand_id"` |
|
BrandName string `json:"brand_name"` |
|
Official int8 `json:"is_official"` |
|
ShowType string `json:"show_type"` |
|
Advertiser string `json:"advertiser"` |
|
Agent string `json:"agent"` |
|
Ctime time.Time `json:"ctime,omitempty"` |
|
Mtime time.Time `json:"mtime,omitempty"` |
|
} |
|
|
|
// Staff type |
|
type Staff struct { |
|
ID int64 `json:"id"` |
|
AID int64 `json:"aid"` |
|
MID int64 `json:"mid"` |
|
StaffMID int64 `json:"staff_mid"` |
|
StaffTitle string `json:"staff_title"` |
|
} |
|
|
|
// StaffApply type |
|
type StaffApply struct { |
|
ID int64 `json:"id"` |
|
Type int8 `json:"apply_type"` |
|
ASID int64 `json:"apply_as_id"` |
|
ApplyAID int64 `json:"apply_aid"` |
|
ApplyUpMID int64 `json:"apply_up_mid"` |
|
ApplyStaffMID int64 `json:"apply_staff_mid"` |
|
ApplyTitle string `json:"apply_title"` |
|
ApplyTitleID int64 `json:"apply_title_id"` |
|
State int8 `json:"apply_state"` |
|
StaffState int8 `json:"staff_state"` |
|
StaffTitle string `json:"staff_title"` |
|
} |
|
|
|
// Commercial type |
|
type Commercial struct { |
|
AID int64 `json:"aid"` |
|
POrderID int64 `json:"porder_id"` // 私 |
|
OrderID int64 `json:"order_id"` // 商 |
|
GameID int64 `json:"game_id"` |
|
//IndustryID int64 `json:"industry_id"` // open after mall |
|
//BrandID int64 `json:"brand_id"` |
|
} |
|
|
|
// InMovieType judge type for pubdate |
|
func InMovieType(tid int16) bool { |
|
return tid == 83 || tid == 145 || tid == 146 || tid == 147 |
|
} |
|
|
|
// StatePanel judge archive state for app panel. |
|
func StatePanel(s int8) (st int) { |
|
if s == a.StateForbidWait || |
|
s == a.StateForbidFixed || |
|
s == a.StateForbidLater || |
|
s == a.StateForbidAdminDelay || |
|
s == a.StateForbidSubmit || |
|
s == a.StateForbidUserDelay { |
|
st = 1 //处理中 |
|
} else if s == a.StateForbidRecicle { |
|
st = 2 //退回可编辑 |
|
} else if s == a.StateForbidPolice || s == a.StateForbidLock { |
|
st = 3 //退回全部不可编辑 |
|
} else if s == a.StateForbidXcodeFail { |
|
st = 4 //退回分区不可编辑 |
|
} else { |
|
st = 0 //正常开放 |
|
} |
|
return |
|
} |
|
|
|
// IsCloseState judge arc state. |
|
func IsCloseState(s int) bool { |
|
return s == -2 || s == -4 || s == -5 || s == -14 |
|
} |
|
|
|
// ShortDesc cut down to short desc for adapter app and windows clients |
|
func ShortDesc(desc string) string { |
|
rs := []rune(desc) |
|
length := len(rs) |
|
max := 250 |
|
if length < max { |
|
max = length |
|
} |
|
return string(rs[:max]) |
|
} |
|
|
|
// AttrVal get attribute. |
|
func (a *ArcVideoAudit) AttrVal(bit uint) int32 { |
|
return (a.Archive.Attribute >> bit) & int32(1) |
|
} |
|
|
|
// IsOwner fn |
|
func (a *ArcVideoAudit) IsOwner(mid int64) int8 { |
|
if a.Archive.Mid == mid { |
|
return 1 |
|
} |
|
return 0 |
|
}
|
|
|