355 lines
11 KiB
Go
355 lines
11 KiB
Go
|
package archive
|
|||
|
|
|||
|
const (
|
|||
|
// StateOpen 开放浏览
|
|||
|
StateOpen = int8(0)
|
|||
|
// StateOrange 橙色通过
|
|||
|
StateOrange = int8(1)
|
|||
|
// StateForbidWait 待审
|
|||
|
StateForbidWait = int8(-1)
|
|||
|
// StateForbidRecycle 被打回
|
|||
|
StateForbidRecycle = int8(-2)
|
|||
|
// StateForbidPolice 网警锁定
|
|||
|
StateForbidPolice = int8(-3)
|
|||
|
// StateForbidLock 被锁定
|
|||
|
StateForbidLock = int8(-4)
|
|||
|
// StateForbidFackLock 管理员锁定(可浏览)
|
|||
|
StateForbidFackLock = int8(-5)
|
|||
|
// StateForbidFixed 修复待审
|
|||
|
StateForbidFixed = int8(-6)
|
|||
|
// StateForbidLater 暂缓审核
|
|||
|
StateForbidLater = int8(-7)
|
|||
|
// StateForbidPatched 补档待审
|
|||
|
StateForbidPatched = int8(-8)
|
|||
|
// StateForbidWaitXcode 等待转码
|
|||
|
StateForbidWaitXcode = int8(-9)
|
|||
|
// StateForbidAdminDelay 延迟审核
|
|||
|
StateForbidAdminDelay = int8(-10)
|
|||
|
// StateForbidFixing 视频源待修
|
|||
|
StateForbidFixing = int8(-11)
|
|||
|
// StateForbidStorageFail 转储失败
|
|||
|
StateForbidStorageFail = int8(-12)
|
|||
|
// StateForbidOnlyComment 允许评论待审
|
|||
|
StateForbidOnlyComment = int8(-13)
|
|||
|
// StateForbidTmpRecicle 临时回收站
|
|||
|
StateForbidTmpRecicle = int8(-14)
|
|||
|
// StateForbidDispatch 分发中
|
|||
|
StateForbidDispatch = int8(-15)
|
|||
|
// StateForbidXcodeFail 转码失败
|
|||
|
StateForbidXcodeFail = int8(-16)
|
|||
|
// StateForbitUpLoad 创建未提交
|
|||
|
StateForbitUpLoad = int8(-20) // NOTE:spell body can judge to change state
|
|||
|
// StateForbidSubmit 创建已提交
|
|||
|
StateForbidSubmit = int8(-30)
|
|||
|
// StateForbidUserDelay 定时发布
|
|||
|
StateForbidUserDelay = int8(-40)
|
|||
|
// StateForbidUpDelete 用户删除
|
|||
|
StateForbidUpDelete = int8(-100)
|
|||
|
// AttrYes attribute yes
|
|||
|
AttrYes = int32(1)
|
|||
|
// AttrNo attribute no
|
|||
|
AttrNo = int32(0)
|
|||
|
// AttrBitNoRank 禁止排行
|
|||
|
AttrBitNoRank = uint(0) // NOTE: double write for archive_forbid
|
|||
|
// AttrBitNoDynamic 动态禁止
|
|||
|
AttrBitNoDynamic = uint(1) // NOTE: double write for archive_forbid
|
|||
|
// AttrBitNoWeb 禁止网页输出
|
|||
|
AttrBitNoWeb = uint(2)
|
|||
|
// AttrBitNoMobile 禁止客户端列表
|
|||
|
AttrBitNoMobile = uint(3)
|
|||
|
// AttrBitNoSearch 搜索禁止
|
|||
|
AttrBitNoSearch = uint(4)
|
|||
|
// AttrBitOverseaLock 海外禁止
|
|||
|
AttrBitOverseaLock = uint(5)
|
|||
|
// AttrBitNoRecommend 禁止推荐
|
|||
|
AttrBitNoRecommend = uint(6) // NOTE: double write for archive_forbid
|
|||
|
// AttrBitNoReprint 禁止转载
|
|||
|
AttrBitNoReprint = uint(7)
|
|||
|
// AttrBitHasHD5 是否高清
|
|||
|
AttrBitHasHD5 = uint(8)
|
|||
|
// AttrBitIsPGC 是否PGC稿件
|
|||
|
AttrBitIsPGC = uint(9)
|
|||
|
// AttrBitAllowBp 允许承包
|
|||
|
AttrBitAllowBp = uint(10)
|
|||
|
// AttrBitIsBangumi 是否番剧
|
|||
|
AttrBitIsBangumi = uint(11)
|
|||
|
// AttrBitIsPorder 是否私单
|
|||
|
AttrBitIsPorder = uint(12)
|
|||
|
// AttrBitLimitArea 是否限制地区
|
|||
|
AttrBitLimitArea = uint(13)
|
|||
|
// AttrBitAllowTag 允许其他人添加tag
|
|||
|
AttrBitAllowTag = uint(14)
|
|||
|
// AttrBitIsFromArcAPI useless
|
|||
|
AttrBitIsFromArcAPI = uint(15) // TODO: delete
|
|||
|
// AttrBitJumpURL 跳转
|
|||
|
AttrBitJumpURL = uint(16)
|
|||
|
// AttrBitIsMovie 是否影视
|
|||
|
AttrBitIsMovie = uint(17)
|
|||
|
// AttrBitBadgepay 付费
|
|||
|
AttrBitBadgepay = uint(18)
|
|||
|
//AttrBitPushBlog 推送动态
|
|||
|
AttrBitPushBlog = uint(20)
|
|||
|
//AttrBitParentMode 家长模式
|
|||
|
AttrBitParentMode = uint(21)
|
|||
|
//AttrBitUGCPay UGC付费
|
|||
|
AttrBitUGCPay = uint(22)
|
|||
|
|
|||
|
// CopyrightUnknow 未知版权类型
|
|||
|
CopyrightUnknow = int8(0)
|
|||
|
// CopyrightOriginal 原创
|
|||
|
CopyrightOriginal = int8(1)
|
|||
|
// CopyrightCopy 转载
|
|||
|
CopyrightCopy = int8(2)
|
|||
|
// UpFromWeb 网页上传
|
|||
|
UpFromWeb = int8(0)
|
|||
|
// UpFromPGC PGC上传
|
|||
|
UpFromPGC = int8(1)
|
|||
|
// UpFromWindows Windows客户端上传
|
|||
|
UpFromWindows = int8(2)
|
|||
|
// UpFromAPP APP上传
|
|||
|
UpFromAPP = int8(3)
|
|||
|
// UpFromMAC Mac客户端上传
|
|||
|
UpFromMAC = int8(4)
|
|||
|
// UpFromSecretPGC 机密PGC上传
|
|||
|
UpFromSecretPGC = int8(5)
|
|||
|
// UpFromCoopera 合作方嵌套
|
|||
|
UpFromCoopera = int8(6)
|
|||
|
// UpFromCreator 创作姬上传
|
|||
|
UpFromCreator = int8(7)
|
|||
|
// UpFromAndroid 安卓上传
|
|||
|
UpFromAndroid = int8(8)
|
|||
|
// UpFromIOS IOS上传
|
|||
|
UpFromIOS = int8(9)
|
|||
|
// DelayTypeForAdmin 管理员定时发布
|
|||
|
DelayTypeForAdmin = int8(1)
|
|||
|
// DelayTypeForUser 用户定时发布
|
|||
|
DelayTypeForUser = int8(2)
|
|||
|
// RoundBegin 一审阶段
|
|||
|
RoundBegin = int8(0)
|
|||
|
// RoundAuditSecond 二审:选定分区的多P稿件 及 PGC/活动的单P多P稿件
|
|||
|
RoundAuditSecond = int8(10)
|
|||
|
// RoundAuditThird 三审:选定分区/PGC/活动 的单P多P稿件
|
|||
|
RoundAuditThird = int8(20)
|
|||
|
// RoundReviewFlow 私单回查:私单ID大于0
|
|||
|
RoundReviewFlow = int8(21)
|
|||
|
//RoundReviewBadgepayFlow 付费审核
|
|||
|
RoundAuditUGCPayFlow = int8(24)
|
|||
|
// RoundReviewFirst 分区回查:粉丝小于配置阈值 如 5000 且 指定分区
|
|||
|
RoundReviewFirst = int8(30)
|
|||
|
// RoundReviewFirstWaitTrigger 点击/粉丝 等待触发中间状态,7天内达到阈值进列表,未达到自动变99
|
|||
|
RoundReviewFirstWaitTrigger = int8(31)
|
|||
|
// RoundReviewSecond 社区回查:粉丝大于配置阈值 如 5000 或 优质高危up
|
|||
|
RoundReviewSecond = int8(40)
|
|||
|
// RoundTriggerFans 粉丝回查:粉丝量达到配置阈值
|
|||
|
RoundTriggerFans = int8(80)
|
|||
|
// RoundTriggerClick 点击回查:点击量达到配置阈值
|
|||
|
RoundTriggerClick = int8(90)
|
|||
|
// RoundEnd 结束
|
|||
|
RoundEnd = int8(99)
|
|||
|
// AccessDefault 非会员可见
|
|||
|
AccessDefault = int16(0)
|
|||
|
// AccessMember 会员可见
|
|||
|
AccessMember = int16(10000)
|
|||
|
|
|||
|
// LogClientType 日志服务类型
|
|||
|
//for buiness
|
|||
|
|
|||
|
//LogClientVideo 视频business id
|
|||
|
LogClientVideo = int(2)
|
|||
|
//LogClientArchive 稿件business id
|
|||
|
LogClientArchive = int(3)
|
|||
|
//LogClientUp up主business id
|
|||
|
LogClientUp = int(4)
|
|||
|
//LogClientPorder 私单business id
|
|||
|
LogClientPorder = int(5)
|
|||
|
//LogClientArchiveMusic 稿件bgm business id
|
|||
|
LogClientArchiveMusic = int(6)
|
|||
|
//LogClientPolicy 策略business id
|
|||
|
LogClientPolicy = int(7) //稿件策略组
|
|||
|
//LogClientConsumer 一审任务 business id
|
|||
|
LogClientConsumer = int(131)
|
|||
|
//LogClientTypePorderLog for business type
|
|||
|
|
|||
|
//LogClientTypePorderLog 私单type id
|
|||
|
LogClientTypePorderLog = int(1)
|
|||
|
//LogClientTypeVideo 视频 type id
|
|||
|
LogClientTypeVideo = int(1)
|
|||
|
//LogClientTypeArchive 稿件 type id
|
|||
|
LogClientTypeArchive = int(1)
|
|||
|
//LogClientTypePorder 私单 id
|
|||
|
LogClientTypePorder = int(14)
|
|||
|
//LogClientTypePolicy 策略type id
|
|||
|
LogClientTypePolicy = int(1) //稿件策略组修改记录
|
|||
|
|
|||
|
//LogClientArchiveMusicTypeMusic 稿件bgm type id
|
|||
|
LogClientArchiveMusicTypeMusic = int(1)
|
|||
|
//LogClientArchiveMusicTypeMaterial 稿件bgm素材 type id
|
|||
|
LogClientArchiveMusicTypeMaterial = int(2)
|
|||
|
//LogClientArchiveMusicTypeCategory 稿件bgm分类 type id
|
|||
|
LogClientArchiveMusicTypeCategory = int(3)
|
|||
|
//LogClientArchiveMusicTypeMaterialRelation 稿件bgm关联 type id
|
|||
|
LogClientArchiveMusicTypeMaterialRelation = int(4)
|
|||
|
//LogClientArchiveMusicTypeCategoryRelation 稿件bgm分区关联 type id
|
|||
|
LogClientArchiveMusicTypeCategoryRelation = int(5)
|
|||
|
|
|||
|
//InnerAttrChannelReview 内部属性-频道回查--已删除
|
|||
|
InnerAttrChannelReview = uint(0)
|
|||
|
|
|||
|
//LogClientTypeConsumer 一审任务type id
|
|||
|
LogClientTypeConsumer = int(1)
|
|||
|
)
|
|||
|
|
|||
|
var (
|
|||
|
_attr = map[int32]int32{
|
|||
|
AttrNo: AttrNo,
|
|||
|
AttrYes: AttrYes,
|
|||
|
}
|
|||
|
_access = map[int16]string{
|
|||
|
AccessDefault: "非会员可见",
|
|||
|
AccessMember: "会员可见",
|
|||
|
}
|
|||
|
_copyright = map[int8]string{
|
|||
|
CopyrightUnknow: "未知",
|
|||
|
CopyrightOriginal: "自制",
|
|||
|
CopyrightCopy: "转载",
|
|||
|
}
|
|||
|
_bits = map[uint]string{
|
|||
|
AttrBitNoRank: "排行禁止",
|
|||
|
AttrBitNoDynamic: "动态禁止",
|
|||
|
AttrBitNoWeb: "禁止web端输出",
|
|||
|
AttrBitNoMobile: "禁止移动端输出",
|
|||
|
AttrBitNoSearch: "禁止搜索",
|
|||
|
AttrBitOverseaLock: "海外禁止",
|
|||
|
AttrBitNoRecommend: "推荐禁止",
|
|||
|
AttrBitNoReprint: "禁止转载",
|
|||
|
AttrBitHasHD5: "高清1080P",
|
|||
|
// AttrBitVisitorDm: AttrBitVisitorDm,
|
|||
|
AttrBitIsPGC: "PGC",
|
|||
|
AttrBitAllowBp: "允许承包",
|
|||
|
AttrBitIsBangumi: "番剧",
|
|||
|
AttrBitIsPorder: "是否私单",
|
|||
|
AttrBitLimitArea: "是否地区限制",
|
|||
|
AttrBitAllowTag: "允许操作TAG",
|
|||
|
// AttrBitIsFromArcAPI: AttrBitIsFromArcAPI,
|
|||
|
AttrBitJumpURL: "跳转",
|
|||
|
AttrBitIsMovie: "电影",
|
|||
|
AttrBitBadgepay: "付费", //pgc付费
|
|||
|
AttrBitPushBlog: "禁止粉丝动态",
|
|||
|
AttrBitParentMode: "家长模式",
|
|||
|
AttrBitUGCPay: "UGC付费",
|
|||
|
}
|
|||
|
// oversea forbidden typeid
|
|||
|
_overseaTypes = map[int16]int16{
|
|||
|
15: 15, //'连载剧集'
|
|||
|
29: 29, //'三次元音乐'
|
|||
|
32: 32, //'完结动画'
|
|||
|
33: 33, //'连载动画'
|
|||
|
34: 34, //'完结剧集'
|
|||
|
37: 37, //'纪录片'
|
|||
|
51: 51, //'资讯'
|
|||
|
54: 54, //'OP/ED/OST'
|
|||
|
71: 71, //'综艺'
|
|||
|
86: 86, //'特摄布袋戏'
|
|||
|
96: 96, //'星海'
|
|||
|
130: 130, //'音乐选集'
|
|||
|
131: 131, //'Korea相关'
|
|||
|
137: 137, //'明星'
|
|||
|
145: 145, //'欧美电影'
|
|||
|
146: 146, //'日本电影'
|
|||
|
147: 147, //'国产电影'
|
|||
|
152: 152, //'官方延伸'
|
|||
|
153: 153, //'国产动画'
|
|||
|
}
|
|||
|
|
|||
|
_upFromTypes = map[int8]string{
|
|||
|
UpFromWeb: "网页上传",
|
|||
|
UpFromPGC: "PGC上传",
|
|||
|
UpFromWindows: "Windows客户端上传",
|
|||
|
UpFromAPP: "APP上传",
|
|||
|
UpFromMAC: "Mac客户端上传",
|
|||
|
UpFromSecretPGC: "机密PGC上传",
|
|||
|
UpFromCoopera: "合作方嵌套",
|
|||
|
UpFromCreator: "创作姬上传",
|
|||
|
UpFromAndroid: "安卓上传",
|
|||
|
UpFromIOS: "IOS上传",
|
|||
|
}
|
|||
|
)
|
|||
|
|
|||
|
// UpFrom get upfrom desc
|
|||
|
func UpFrom(ufID int8) string {
|
|||
|
return _upFromTypes[ufID]
|
|||
|
}
|
|||
|
|
|||
|
// Attr attribute
|
|||
|
type Attr int32
|
|||
|
|
|||
|
// InCopyrights in correct copyrights.
|
|||
|
func InCopyrights(cp int8) (ok bool) {
|
|||
|
_, ok = _copyright[cp]
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
// CopyrightsDesc return copyrights desc.
|
|||
|
func CopyrightsDesc(cp int8) (desc string) {
|
|||
|
desc = _copyright[cp]
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
// AccessDesc return acces desc.
|
|||
|
func AccessDesc(acces int16) (desc string) {
|
|||
|
desc = _access[acces]
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
// BitDesc return bit desc.
|
|||
|
func BitDesc(bit uint) (desc string) {
|
|||
|
return _bits[bit]
|
|||
|
}
|
|||
|
|
|||
|
// InAttr in correct attrs.
|
|||
|
func InAttr(attr int32) (ok bool) {
|
|||
|
_, ok = _attr[attr]
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
// InOverseaType check in oversea forbid type.
|
|||
|
func InOverseaType(typeID int16) (ok bool) {
|
|||
|
_, ok = _overseaTypes[typeID]
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
// NormalState check state.
|
|||
|
func NormalState(state int8) bool {
|
|||
|
return state == StateOpen || state == StateOrange
|
|||
|
}
|
|||
|
|
|||
|
// NotAllowDelay check need delete dtime of state.
|
|||
|
func NotAllowDelay(state int8) bool {
|
|||
|
return state == StateForbidRecycle || state == StateForbidLock
|
|||
|
}
|
|||
|
|
|||
|
// AttrSet set attribute.
|
|||
|
func (arc *Archive) AttrSet(v int32, bit uint) {
|
|||
|
arc.Attribute = arc.Attribute&(^(1 << bit)) | (v << bit)
|
|||
|
}
|
|||
|
|
|||
|
// AttrVal get attribute.
|
|||
|
func (arc *Archive) AttrVal(bit uint) int32 {
|
|||
|
return (arc.Attribute >> bit) & int32(1)
|
|||
|
}
|
|||
|
|
|||
|
// WithAttr set attribute value with a attr value.
|
|||
|
func (arc *Archive) WithAttr(attr Attr) {
|
|||
|
arc.Attribute = arc.Attribute | int32(attr)
|
|||
|
}
|
|||
|
|
|||
|
// NotAllowUp check archive is or not allow update state.
|
|||
|
func (arc *Archive) NotAllowUp() bool {
|
|||
|
return arc.State == StateForbidUpDelete || arc.State == StateForbidLater || arc.State == StateForbidLock || arc.State == StateForbidPolice
|
|||
|
}
|
|||
|
|
|||
|
//InnerAttrSet set inner_attr
|
|||
|
func (addit *Addit) InnerAttrSet(v int64, bit uint) {
|
|||
|
addit.InnerAttr = addit.InnerAttr&(^(1 << bit)) | (v << bit)
|
|||
|
}
|