Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"blocked.go",
"case.go",
"credit.go",
"credit_state.go",
"jury.go",
"kpi.go",
"message.go",
"reply.go",
],
importpath = "go-common/app/job/main/credit/model",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = ["//library/time:go_default_library"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,19 @@
package model
import xtime "go-common/library/time"
// BlockAndMoralStatus blocked status and moral.
type BlockAndMoralStatus struct {
MID int64 `json:"mid"`
Status int8 `json:"status"`
STime xtime.Time `json:"start_time"`
ETime xtime.Time `json:"end_time"`
}
// BlockLabourAnswerLog .
type BlockLabourAnswerLog struct {
ID int64 `json:"id"`
MID int64 `json:"mid"`
Score int8 `json:"score"`
CTime string `json:"ctime"`
}

View File

@@ -0,0 +1,10 @@
package model
// CaseApplyModifyLog .
type CaseApplyModifyLog struct {
CID int64 `json:"case_id"`
AType int8 `json:"apply_type"`
OReason int8 `json:"origin_reason"`
AReason int8 `json:"apply_reason"`
Num int
}

View File

@@ -0,0 +1,33 @@
package model
import (
"encoding/json"
xtime "go-common/library/time"
)
// Message is simple message struct info.
type Message struct {
Action string `json:"action"`
Table string `json:"table"`
New json.RawMessage `json:"new"`
Old json.RawMessage `json:"old"`
}
// CreditInfo is simple creditInfo struct info.
type CreditInfo struct {
Mid int64 `json:"mid"`
Status int64 `json:"status"`
PunishType int64 `json:"punishType"`
PunishEnd xtime.Time `json:"punishEnd"`
CTime xtime.Time `json:"-"`
MTime xtime.Time `json:"-"`
}
// AutoCaseConf struct
type AutoCaseConf struct {
Reasons map[int8]struct{}
ReasonStr string
ReportScore int
Likes int
}

View File

@@ -0,0 +1,365 @@
package model
import (
"fmt"
)
// blocked const
const (
// item type
BUSSINESS = "credit-job"
// deal bussinss time type
DealTimeTypeNone = int8(0)
DealTimeTypeDay = int8(1)
DealTimeTypeYear = int8(2)
// default time
DefaultTime = "1979-12-31 16:00:00"
TimeFormatSec = "2006-01-02 15:04:05"
// Case Status
CaseStatusGranting = 1 // 发放中
CaseStatusGrantStop = 2 // 停止发放
CaseStatusDealing = 3 // 结案中
CaseStatusDealed = 4 // 已裁决
CaseStatusRestart = 5 // 待重启
CaseStatusUndealed = 6 // 未裁决
CaseStatusFreeze = 7 // 冻结中
CaseStatusQueueing = 8 // 队列中
// Judge Status.
JudgeTypeUndeal = 0 // 未裁决
JudgeTypeViolate = 1 // 违规
JudgeTypeLegal = 2 // 未违规
// Vote Status.
VoteTypeUndo = 0 // 未投票
VoteTypeViolate = 1 // 违规-封禁
VoteTypeDelete = 4 // 违规-删除
VoteTypeLegal = 2 // 不违规
VoteTypeGiveUp = 3 // 放弃投票
// punish type.
PunishTypeMoral = int8(1)
PunishTypeBlock = int8(2)
PunishTypeForever = int8(3)
// blocked_info blocked_forever
NotInBlockedForever = int8(0)
InBlockedForever = int8(1)
// Block Time.
Punish3Days = 1
Punish7Days = 2
PunishForever = 3
PunishCustom = 4
Punish15Days = 5
PunishBlock = 0
PunishJury = 1
// origin_type.
OriginReply = int8(1) // 评论
OriginDM = int8(2) // 弹幕
OriginMsg = int8(3) // 私信
OriginTag = int8(4) // 标签
OriginMember = int8(5) // 个人资料
OriginArchive = int8(6) // 投稿
OriginMusic = int8(7) // 音频
OriginArticle = int8(8) // 专栏
OriginSpaceTop = int8(9) // 空间头图
OriginDsynamic = int8(10) // 动态
OriginPhoto = int8(11) // 相册
OriginMinVideo = int8(12) // 小视频
// Jury Invalid
JuryBlocked = 1
JuryExpire = 2
JuryAdmin = 3
// Case Load Switch
StateCaseLoadClose = int8(0)
StateCaseLoadOpen = int8(1)
// Blocked Opinio State
OpinionStateOpen = int8(0)
OpinionStateClose = int8(1)
OpinionStateCloseAndMsg = int8(2)
// blocked_jury.case_type
JudeCaseTypePrivate = int8(0) // 小众众裁
JudeCaseTypePublic = int8(1) // 大众众裁
// Reply regist type.
ReplyBlocked = int8(6)
ReplyPublish = int8(7)
ReplyCase = int8(15)
// blocked_publish.publish_status
PublishClose = int8(0)
PublishOpen = int8(1)
// status
StatusClose = int8(1)
StatusOpen = int8(0)
// blocked_case.punish_result
BlockNone = int8(0)
Block3Days = int8(1)
Block7Days = int8(2)
BlockForever = int8(3)
BlockCustom = int8(4)
Block15Days = int8(5)
BlockOnlyDel = int8(6)
// block time
BlockTimeForever = 0 // 永久封禁
BlockTimeThree = 3 // 3天封禁
BlockTimeSeven = 7 // 7天封禁
BlockTimeFifteen = 15 // 15天封禁
// reasonType
ReasonOtherType = int8(0)
ReasonBrushScreen = int8(1)
ReasonGrabFloor = int8(2)
ReasonGamblingFraud = int8(4)
ReasonProhibited = int8(5)
ReasonGarbageAds = int8(6)
ReasonPersonalAttacks = int8(7)
ReasonViolatePrivacy = int8(8)
ReasonLeadBattle = int8(9)
ReasonSpoiler = int8(10)
ReasonAddUnrelatedTags = int8(11)
ReasonDelOtherTags = int8(12)
ReasonPornographic = int8(13)
ReasonVulgar = int8(14)
ReasonBloodyViolence = int8(15)
ReasonAnimusVideoUp = int8(16)
ReasonIllegalWebsite = int8(17)
ReasonSpreadErrinfo = int8(18)
ReasonAbettingEncouragement = int8(19)
ReasonAnimusBrushScreen = int8(20)
ReasonAccountViolation = int8(21)
ReasonMaliciousPlagiarism = int8(22)
ReasonPosingAsHomemade = int8(23)
ReasonPostTeenBadContent = int8(24)
ReasonDestroyCyberSecurity = int8(25)
ReasonPostingMisleadingInfo = int8(26)
ReasonCounterfeitOfficialAuth = int8(27)
ReasonPublishInappropriateContent = int8(28)
ReasonViolationOperatingRules = int8(29)
ReasonIllegalCreateTopic = int8(30)
ReasonIllegalDrawLottery = int8(31)
ReasonIllegalFakeMan = int8(32)
// reply reasonType
ReplyReasonOtherType = int8(0)
ReplyReasonGarbageAds = int8(1)
ReplyReasonPornographic = int8(2)
ReplyReasonAnimusBrushScreen = int8(3)
ReplyReasonLeadBattle = int8(4)
ReplyReasonSpoiler = int8(5)
ReplyReasonPolitical = int8(6)
ReplyReasonPersonalAttacks = int8(7)
ReplyReasonIrrelevantVideo = int8(8)
ReplyReasonProhibited = int8(9)
ReplyReasonVulgar = int8(10)
ReplyReasonIllegalWebsite = int8(11)
ReplyReasonGamblingFraud = int8(12)
ReplyReasonSpreadErrinfo = int8(13)
ReplyReasonAbettingEncouragement = int8(14)
ReplyReasonViolatePrivacy = int8(15)
ReplyReasonGrabFloor = int8(16)
ReplyReasonPostTeenBadContent = int8(17)
// tag reasonType
TagReasonAddUnrelatedTags = int8(1)
TagReasonProhibited = int8(2)
TagReasonPersonalAttacks = int8(3)
TagReasonSpoiler = int8(4)
TagReasonDelOtherTags = int8(5)
// moral originType
MoralOriginDM = int8(1)
MoralOriginReply = int8(2)
MoralOriginTag = int8(3)
// block status
BlockStatusNone = int8(0)
BlockStatusForever = int8(1)
BlockStatusOn = int8(2)
// defealt deduct moral val
DefealtMoralVal = -10
// dm notify status
DMNotifyNotDel = 0
DMNotifyDel = 1
// msg content
_dealMsgTitle = "%s违规处理通知"
_dealMsgContent = `您好,根据用户举报与风纪委众裁,您在#{"%s"}{%s}下的%s 『%s』已被移除。请自觉遵守国家相关法律法规及《社区规则》bilibili良好的社区氛围需要大家一起维护
其中《社区规则》为可点击超链接地址https://www.bilibili.com/blackboard/blackroom.html`
// moral remark
MoralRemark = "违规惩罚"
)
var (
_punishType = map[int8]string{
PunishTypeMoral: "节操",
PunishTypeBlock: "封禁",
PunishTypeForever: "永久封禁",
}
_reasonType = map[int8]string{
ReasonOtherType: "其他",
ReasonBrushScreen: "刷屏",
ReasonGrabFloor: "抢楼",
ReasonGamblingFraud: "发布赌博诈骗信息",
ReasonProhibited: "发布违禁相关信息",
ReasonGarbageAds: "发布垃圾广告信息",
ReasonPersonalAttacks: "发布人身攻击言论",
ReasonViolatePrivacy: "发布侵犯他人隐私信息",
ReasonLeadBattle: "发布引战言论",
ReasonSpoiler: "发布剧透信息",
ReasonAddUnrelatedTags: "恶意添加无关标签",
ReasonDelOtherTags: "恶意删除他人标签",
ReasonPornographic: "发布色情信息",
ReasonVulgar: "发布低俗信息",
ReasonBloodyViolence: "发布暴力血腥信息",
ReasonAnimusVideoUp: "涉及恶意投稿行为",
ReasonIllegalWebsite: "发布非法网站信息",
ReasonSpreadErrinfo: "发布传播不实信息",
ReasonAbettingEncouragement: "发布怂恿教唆信息",
ReasonAnimusBrushScreen: "恶意刷屏",
ReasonAccountViolation: "账号违规",
ReasonMaliciousPlagiarism: "恶意抄袭",
ReasonPosingAsHomemade: "冒充自制原创",
ReasonPostTeenBadContent: "发布青少年不良内容",
ReasonDestroyCyberSecurity: "破坏网络安全",
ReasonPostingMisleadingInfo: "发布虚假误导信息",
ReasonCounterfeitOfficialAuth: "仿冒官方认证账号",
ReasonPublishInappropriateContent: "发布不适宜内容",
ReasonViolationOperatingRules: "违反运营规则",
ReasonIllegalCreateTopic: "恶意创建话题",
ReasonIllegalDrawLottery: "发布违规抽奖",
ReasonIllegalFakeMan: "恶意冒充他人",
}
_originType = map[int8]string{
OriginReply: "评论",
OriginDM: "弹幕",
OriginMsg: "私信",
OriginTag: "标签",
OriginMember: "个人资料",
OriginArchive: "投稿",
OriginMusic: "音频",
OriginArticle: "专栏",
OriginSpaceTop: "空间头图",
OriginDsynamic: "动态",
OriginPhoto: "相册",
OriginMinVideo: "小视频",
}
_reasonToFreeze = map[int8]bool{
ReasonGamblingFraud: true,
ReasonViolatePrivacy: true,
ReasonProhibited: true,
ReasonPornographic: true,
ReasonVulgar: true,
ReasonSpoiler: false,
ReasonGrabFloor: false,
ReasonGarbageAds: false,
ReasonLeadBattle: false,
ReasonBrushScreen: false,
ReasonPersonalAttacks: false,
}
_replyReasonType = map[int8]int8{
ReplyReasonOtherType: ReasonOtherType,
ReplyReasonGarbageAds: ReasonGarbageAds,
ReplyReasonPornographic: ReasonPornographic,
ReplyReasonAnimusBrushScreen: ReasonAnimusBrushScreen,
ReplyReasonLeadBattle: ReasonLeadBattle,
ReplyReasonSpoiler: ReasonSpoiler,
ReplyReasonPolitical: ReasonOtherType,
ReplyReasonPersonalAttacks: ReasonPersonalAttacks,
ReplyReasonIrrelevantVideo: ReasonOtherType,
ReplyReasonProhibited: ReasonProhibited,
ReplyReasonVulgar: ReasonVulgar,
ReplyReasonIllegalWebsite: ReasonIllegalWebsite,
ReplyReasonGamblingFraud: ReasonGamblingFraud,
ReplyReasonSpreadErrinfo: ReasonSpreadErrinfo,
ReplyReasonAbettingEncouragement: ReasonAbettingEncouragement,
ReplyReasonViolatePrivacy: ReasonViolatePrivacy,
ReplyReasonGrabFloor: ReasonGrabFloor,
ReplyReasonPostTeenBadContent: ReasonPostTeenBadContent,
}
_tagReasonType = map[int8]int8{
TagReasonAddUnrelatedTags: ReasonAddUnrelatedTags,
TagReasonProhibited: ReasonProhibited,
TagReasonPersonalAttacks: ReasonPersonalAttacks,
TagReasonSpoiler: ReasonSpoiler,
TagReasonDelOtherTags: ReasonDelOtherTags,
}
// _orginMoralType 对应节操来源类型
_orginMoralType = map[int8]int8{
OriginReply: MoralOriginReply,
OriginDM: MoralOriginDM,
OriginTag: MoralOriginTag,
}
_blockDay = map[int8]string{
BlockTimeForever: "永久封禁",
BlockTimeThree: "封禁3天",
BlockTimeSeven: "封禁7天",
BlockTimeFifteen: "封禁15天",
}
)
// ReasonToFreeze get reason yes or no to freeze.
func ReasonToFreeze(reasonType int8) bool {
return _reasonToFreeze[reasonType]
}
// OrginMoralType get moral bussiness Type by blocked orgin.
func OrginMoralType(blockOrginType int8) int8 {
return _orginMoralType[blockOrginType]
}
// PunishTypeDesc get punishType desc
func PunishTypeDesc(punishType int8) string {
return _punishType[punishType]
}
// ReasonTypeDesc get reasonType desc
func ReasonTypeDesc(reasonType int8) string {
return _reasonType[reasonType]
}
// OriginTypeDesc get originType desc
func OriginTypeDesc(originType int8) string {
return _originType[originType]
}
// BlockedDayDesc is blocked day desc
func BlockedDayDesc(day int8) string {
return _blockDay[day]
}
// BlockedReasonTypeByReply get blocked reason type.
func BlockedReasonTypeByReply(replyReasonType int8) int8 {
return _replyReasonType[replyReasonType]
}
// BlockedReasonTypeByTag get blocked reason type.
func BlockedReasonTypeByTag(tagReasonType int8) int8 {
return _tagReasonType[tagReasonType]
}
// OriginMsgContent get msg content by oTitle, oURL , oContent and oType
func OriginMsgContent(oTitle, oURL, oContent string, oType int8) (msgTitle, msgCon string) {
msgTitle = fmt.Sprintf(_dealMsgTitle, _originType[oType])
msgCon = fmt.Sprintf(_dealMsgContent, oTitle, oURL, _originType[oType], oContent)
return
}

View File

@@ -0,0 +1,164 @@
package model
import (
xtime "go-common/library/time"
)
// Case is jury case info.
type Case struct {
ID int64 `json:"id"`
Mid int64 `json:"mid"`
Status int64 `json:"status"`
Origin
JudgeType int64 `json:"judge_type"`
PunishResult int64 `json:"punish_result"`
Agree int64 `json:"vote_rule"`
Against int64 `json:"vote_break"`
VoteDelete int64 `json:"vote_delete"`
PunishStatus int64 `json:"pubish_status"`
BlockedDay int64 `json:"blocked_days"`
RelationID string `json:"relation_id"`
Operator string `json:"operator"`
PutTotal int64 `json:"put_total"`
Stime string `json:"start_time"`
Etime string `json:"end_time"`
Ctime string `json:"ctime"`
CaseType int8 `json:"case_type"`
OPID int64 `json:"oper_id"`
BusinessTime string `json:"business_time"`
BCtime xtime.Time
}
// Publish is blocked_publish info.
type Publish struct {
ID int64 `json:"id"`
Title string `json:"title"`
Subtitle string `json:"sub_title"`
PStatus int8 `json:"publish_status"`
SStatus int8 `json:"stick_status"`
Content string `json:"content"`
URL string `json:"url"`
PType int8 `json:"ptype"`
STime string `json:"show_time"`
}
// SimCase is simple case struct info.
type SimCase struct {
ID int64 `json:"id"`
Mid int64 `json:"mid"`
VoteRule int64 `json:"vote_rule"`
VoteBreak int64 `json:"vote_break"`
VoteDelete int64 `json:"vote_delete"`
CaseType int8 `json:"case_type"`
Stime xtime.Time `json:"start_time"`
Etime xtime.Time `json:"end_time"`
}
// Jury is simple jury struct info.
type Jury struct {
ID int64 `json:"id"`
Mid int64 `json:"mid"`
Status int8 `json:"status"`
}
// CaseVote is simple caseVote struct info.
type CaseVote struct {
ID int64 `json:"id"`
CID int64 `json:"cid"`
MID int64 `json:"mid"`
Vote int8 `json:"vote"`
Expired xtime.Time `json:"expired"`
}
// BLogCaseVote is simple blogCaseVote struct info.
type BLogCaseVote struct {
ID int64 `json:"-"`
CID int64 `json:"cid"`
MID int64 `json:"mid"`
Vote int8 `json:"-"`
Expired string `json:"-"`
Ctime string `json:"-"`
Mtime string `json:"-"`
}
// Opinion is simple opinion struct info.
type Opinion struct {
Cid int64 `json:"cid"`
Vid int64 `json:"vid"`
Content string `json:"content"`
State int8 `json:"state"`
}
// BlockDays get user blocked days.
func (c *Case) BlockDays() (forever int8, days int64) {
switch c.PunishResult {
case Punish3Days:
days = 3
case Punish7Days:
days = 7
case Punish15Days:
days = 15
case PunishForever:
forever = int8(1)
case PunishCustom:
days = c.BlockedDay
}
return
}
// Origin is origin info of blocked.
type Origin struct {
OriginTitle string `json:"origin_title"`
OriginURL string `json:"origin_url"`
OriginContent string `json:"origin_content"`
OriginContentModify string `json:"origin_content_modify"`
OriginType int64 `json:"origin_type"`
ReasonType int64 `json:"reason_type"`
}
// BlockedInfo user block info.
type BlockedInfo struct {
ID int64 `json:"id"`
UID int64 `json:"uid"`
Origin
BlockedRemark string `json:"blocked_remark"`
PunishTime string `json:"punish_time"`
PunishType int64 `json:"punish_type"`
MoralNum int64 `json:"moral_num"`
BlockedDays int64 `json:"blocked_days"`
PublishStatus int64 `json:"publish_status"`
BlockedType int64 `json:"blocked_type"`
BlockedForever int8 `json:"blocked_forever"`
OperatorName string `json:"operator_name"`
CaseID int64 `json:"case_id"`
OPID int64 `json:"oper_id"`
Status int64 `json:"status"`
MTime string `json:"mtime"`
}
// Kpi is jury kpi info.
type Kpi struct {
ID int64 `json:"id"`
Mid int64 `json:"mid"`
Rate int8 `json:"rate"`
Rank int64 `json:"rank"`
RankPer int64 `json:"rank_per"`
RankTotal int64 `json:"rankTotal"`
HandlerStatus int64 `json:"handlerStatus"`
}
// PunishResultDays punish res days.
func PunishResultDays(blockedTimes int64) (punishResult, blockedDay int64) {
switch {
case blockedTimes == 0:
punishResult = int64(Block7Days)
blockedDay = BlockTimeSeven
case blockedTimes == 1:
punishResult = int64(Block15Days)
blockedDay = BlockTimeFifteen
case blockedTimes > 1:
punishResult = int64(BlockForever)
blockedDay = BlockTimeForever
}
return
}

View File

@@ -0,0 +1,79 @@
package model
// const kpi const
const (
// account pendPendant
_accountPendPendantS = 140
_accountPendPendantA = 139
_accountPendPendantB = 138
// _accountPendPendantC = 0
// KPI level and pendant info
_kpiLevelS = int8(1)
_kpiLevelA = int8(2)
_kpiLevelB = int8(3)
_kpiLevelC = int8(4)
_kpiNameplateA = 72
_kpiNameplateB = 71
_kpiNameplateC = 70
_kpiRateTimesA = 12
_kpiRateTimesB = 6
_kpiRateTimesC = 3
_kpiCoinsS = float64(20)
_kpiCoinsA = float64(10)
_kpiCoinsB = float64(5)
_kpiCoinsDefealt = float64(0)
// kpi defealt send days
KPIDefealtPendSendDays = 30
KPICoinsReason = "风纪委员任期奖励"
)
// var kpi var.
var (
// credit level mapping pendant info.
_levelPendant = map[int8][]int64{
_kpiLevelS: {_accountPendPendantS, _accountPendPendantA, _accountPendPendantB},
_kpiLevelA: {_accountPendPendantA, _accountPendPendantB},
_kpiLevelB: {_accountPendPendantB},
_kpiLevelC: {},
}
)
// LevelPendantByKPI get levelPendant by kpi level.
func LevelPendantByKPI(kpiLevel int8) (lps []int64, ok bool) {
lps, ok = _levelPendant[kpiLevel]
return
}
// KpiCoinsRate get coins by rate.
func KpiCoinsRate(rate int8) (coins float64) {
switch rate {
case _kpiLevelS:
coins = _kpiCoinsS
case _kpiLevelA:
coins = _kpiCoinsA
case _kpiLevelB:
coins = _kpiCoinsB
default:
coins = _kpiCoinsDefealt
}
return
}
// KpiPlateIDRateTimes get plate_id by rate times.
func KpiPlateIDRateTimes(rateTimes int) (plateID int64) {
switch rateTimes {
case _kpiRateTimesA:
plateID = _kpiNameplateA
case _kpiRateTimesB:
plateID = _kpiNameplateB
case _kpiRateTimesC:
plateID = _kpiNameplateC
}
return
}

View File

@@ -0,0 +1,69 @@
package model
import (
xtime "go-common/library/time"
)
const (
// RouteReplyReport report
RouteReplyReport = "report_add"
)
// Reply param struct
type Reply struct {
Action string `json:"action"`
MID int64 `json:"mid"`
Subject *ReplySubject `json:"subject"`
Reply *ReplyMain `json:"reply"`
Report *ReplyReport `json:"report"`
}
// ReplySubject param struct
type ReplySubject struct {
OID int64 `json:"oid"`
Type int8 `json:"type"`
MID int64 `json:"mid"`
State int8 `json:"state"`
CTime xtime.Time `json:"ctime"`
}
// ReplyMain param struct
type ReplyMain struct {
RPID int64 `json:"rpid"`
OID int64 `json:"oid"`
Type int8 `json:"type"`
MID int64 `json:"mid"`
Root int64 `json:"root"`
Parent int64 `json:"parent"`
Floor int32 `json:"floor"`
Count int32 `json:"count"`
Rcount int32 `json:"rcount"`
Like int64 `json:"like"`
Hate int64 `json:"hate"`
State int8 `json:"state"`
Content *struct {
Message string `json:"message"`
} `json:"content"`
CTime xtime.Time `json:"ctime"`
}
// ReplyReport param struct
type ReplyReport struct {
ID int64 `json:"id"`
OID int64 `json:"oid"`
Type int8 `json:"type"`
RPID int64 `json:"rpid"`
MID int64 `json:"mid"`
Reason int8 `json:"reason"`
Content string `json:"content"`
State int8 `json:"state"`
Score int `json:"score"`
Count int `json:"count"`
CTime xtime.Time `json:"ctime"`
}
// LabourAnswer param struct
type LabourAnswer struct {
MID int64 `json:"mid"`
MTime xtime.Time `json:"mtime"`
}

View File

@@ -0,0 +1,41 @@
package model
// const reply
const (
SubTypeArchive = int8(1) // 稿件
SubTypeTopic = int8(2) // 专题
SubTypeDrawyoo = int8(3) // 画站
SubTypeActivity = int8(4) // 活动
SubTypeLive = int8(5) // 直播小视频
SubTypeForbiden = int8(6) // 封禁信息
SubTypeNotice = int8(7) // 公告信息
SubTypeLiveAct = int8(8) // 直播活动
SubTypeActArc = int8(9) // 主站活动稿件
SubTypeLiveNotice = int8(10) // 直播公告
SubTypeLivePicture = int8(11) // 文画
SubTypeArticle = int8(12) // 文章
SubTypeTicket = int8(13) // 票务
SubTypeMusic = int8(14) // 音乐
SubTypeCredit = int8(15) // 风纪委案件
SubTypePgcCmt = int8(16) // pgc点评
SubTypeDynamic = int8(17) // 庐山动态
SubTypePlaylist = int8(18) // 播单
SubTypeMusicList = int8(19) // 音乐播单
ReportStateNew = int8(0) // 待审
ReportStateDelete = int8(1) // 移除
ReportStateIgnore = int8(2) // 忽略
ReportStateDeleteOne = int8(3) // 一审移除
ReportStateIgnoreOne = int8(4) // 一审忽略
ReportStateDeleteTwo = int8(5) // 二审移除
ReportStateIgnoreTwo = int8(6) // 二审忽略
ReportStateAddJuge = int8(8) // 移交仲裁
AppealBusinessID = int64(13) // 举报工单业务id
// AutoOPID auto oper_id
AutoOPID = int64(877)
// ReplyOriginURL reply origin url.
ReplyOriginURL = `https://www.bilibili.com/video/av%d/#reply%d`
)