init: web_hgdjc_server
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
package pubdef
|
||||
|
||||
import (
|
||||
"slices"
|
||||
)
|
||||
|
||||
type IMedia interface {
|
||||
GetID() int64
|
||||
GetTitle() string
|
||||
GetPrice() int64
|
||||
GetCover() string
|
||||
GetPublishID() int64
|
||||
GetLocationType() LocationType
|
||||
GetIsVIP() bool
|
||||
GetIsDark() bool
|
||||
GetCollectionIds() []int64
|
||||
GetEpisodeIds() []int64
|
||||
}
|
||||
|
||||
type DateCount struct {
|
||||
Date string `json:"date" bson:"date"` // 日期: yyyy-MM-dd
|
||||
Count int64 `json:"count" bson:"count"` // 数量
|
||||
}
|
||||
|
||||
type DateCountList []DateCount
|
||||
|
||||
type MediaType = LocationType
|
||||
|
||||
type ContentType int32
|
||||
|
||||
const (
|
||||
ContentTypeVideoLong ContentType = 1 // 长视频
|
||||
ContentTypeVideoDsp ContentType = 2 // 短视频
|
||||
)
|
||||
|
||||
type LocationType int32
|
||||
|
||||
const (
|
||||
LocationTypeNone LocationType = 0 // 占位符,无意义
|
||||
LocationTypeVideo LocationType = 1 // 视频
|
||||
LocationTypeVideoLLD LocationType = 2 // 萝莉岛
|
||||
LocationTypeCartoon LocationType = 3 // 动漫
|
||||
LocationTypePost LocationType = 4 // 帖子
|
||||
LocationTypeComment LocationType = 5 // 评论
|
||||
LocationTypeCollection LocationType = 6 // 合集
|
||||
LocationTypeComics LocationType = 7 // 漫画
|
||||
LocationTypeNovel LocationType = 8 // 小说
|
||||
LocationTypeVoiceNovel LocationType = 9 // 有声小说
|
||||
LocationTypePhoto LocationType = 10 // 图集
|
||||
LocationTypeGame LocationType = 11 // 黄游
|
||||
LocationTypeShort LocationType = 12 // 短视频
|
||||
)
|
||||
|
||||
func (s LocationType) String() string {
|
||||
switch s {
|
||||
case LocationTypeVideo:
|
||||
return "长视频"
|
||||
case LocationTypeVideoLLD:
|
||||
return "萝莉岛"
|
||||
case LocationTypeCartoon:
|
||||
return "动漫"
|
||||
case LocationTypePost:
|
||||
return "动态"
|
||||
case LocationTypeComment:
|
||||
return "评论"
|
||||
case LocationTypeCollection:
|
||||
return "合集"
|
||||
case LocationTypeComics:
|
||||
return "漫画"
|
||||
case LocationTypeNovel:
|
||||
return "小说"
|
||||
case LocationTypeVoiceNovel:
|
||||
return "有声小说"
|
||||
case LocationTypePhoto:
|
||||
return "图集"
|
||||
case LocationTypeGame:
|
||||
return "黄游"
|
||||
case LocationTypeShort:
|
||||
return "短视频"
|
||||
default:
|
||||
return "未知"
|
||||
}
|
||||
}
|
||||
func (s LocationType) HasIntersection(other ...LocationType) bool {
|
||||
for _, v := range other {
|
||||
if s == v {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// 哪些类型可以分配创作者收益, 目前是所有类型
|
||||
func (s LocationType) CanDistributionWorkerIncome() bool {
|
||||
return slices.Contains([]LocationType{
|
||||
LocationTypeVideo,
|
||||
LocationTypeVideoLLD,
|
||||
LocationTypeCartoon,
|
||||
LocationTypePost,
|
||||
LocationTypeCollection,
|
||||
LocationTypeComics,
|
||||
LocationTypeNovel,
|
||||
LocationTypePhoto,
|
||||
LocationTypeGame,
|
||||
}, s)
|
||||
}
|
||||
|
||||
type MediaTagInfo struct {
|
||||
Id int64 `json:"id"`
|
||||
Name string `json:"name"`
|
||||
}
|
||||
|
||||
type MediaTagInfoList []MediaTagInfo
|
||||
|
||||
func (s MediaTagInfoList) ToUniqueList() MediaTagInfoList {
|
||||
var ret MediaTagInfoList
|
||||
dict := make(map[int64]struct{})
|
||||
for _, v := range s {
|
||||
if _, ok := dict[v.Id]; !ok {
|
||||
dict[v.Id] = struct{}{}
|
||||
ret = append(ret, v)
|
||||
}
|
||||
}
|
||||
return ret
|
||||
}
|
||||
Reference in New Issue
Block a user