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