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.
187 lines
4.2 KiB
187 lines
4.2 KiB
package model |
|
|
|
import ( |
|
"go-common/app/service/main/archive/model/archive" |
|
"go-common/library/ecode" |
|
) |
|
|
|
// const . |
|
const ( |
|
// TypeUnknown unkown |
|
TypeUnknown = int8(-1) |
|
// TypeOffline offline |
|
TypeOffline = int8(0) |
|
// TypeBangumi bangumi |
|
TypeBangumi = int8(1) |
|
// TypeMovie movie |
|
TypeMovie = int8(2) |
|
// TypeUGC UGC |
|
TypeUGC = int8(3) |
|
// TypePGC PGC |
|
TypePGC = int8(4) |
|
// TypeArticle Article |
|
TypeArticle = int8(5) |
|
// TypeLive Live |
|
TypeLive = int8(6) |
|
// TypeCorpus corpus |
|
TypeCorpus = int8(7) |
|
// TypeComic comic |
|
TypeComic = int8(8) |
|
|
|
// SubTypeOffline archive subtype |
|
SubTypeOffline = int8(1) |
|
// SubTypeBangumi bangumi |
|
SubTypeBangumi = int8(1) |
|
// SubTypeFilm film |
|
SubTypeFilm = int8(2) |
|
// SubTypeDoc documentary |
|
SubTypeDoc = int8(3) |
|
// SubTypeNation nation |
|
SubTypeNation = int8(4) |
|
// SubTypeTV TV |
|
SubTypeTV = int8(5) |
|
|
|
// DeviceUnknown unknown |
|
DeviceUnknown = int8(0) |
|
// DeviceIphone iphoneTV |
|
DeviceIphone = int8(1) |
|
// DevicePC PC |
|
DevicePC = int8(2) |
|
// DeviceAndroid android |
|
DeviceAndroid = int8(3) |
|
// DeviceAndroidTV android TV |
|
DeviceAndroidTV = int8(33) |
|
// DeviceIpad ipad |
|
DeviceIpad = int8(4) |
|
// DeviceWP8 WP8 |
|
DeviceWP8 = int8(5) |
|
// DeviceUWP UWP |
|
DeviceUWP = int8(6) |
|
|
|
// ShadowUnknown unknown |
|
ShadowUnknown = int64(-1) |
|
// ShadowOff off |
|
ShadowOff = int64(0) |
|
// ShadowOn on |
|
ShadowOn = int64(1) |
|
|
|
// ProComplete progress complete |
|
ProComplete = int64(-1) |
|
|
|
// PlatformAndroid platform android. |
|
PlatformAndroid string = "android" |
|
// PlatformIOS platform ios. |
|
PlatformIOS string = "ios" |
|
|
|
// DevicePad device pad. |
|
DevicePad string = "pad" |
|
// MobileAppAndroidTV mobile app android tv. |
|
MobileAppAndroidTV string = "android_tv_yst" |
|
|
|
HistoryLog = 171 |
|
HistoryClear = "history_clear" |
|
HistoryClearTyp = "history_clear_%s" |
|
ToviewClear = "toview_clear" |
|
) |
|
|
|
var businesses = map[string]int8{ |
|
"pgc": TypePGC, |
|
"article": TypeArticle, |
|
"archive": TypeUGC, |
|
"live": TypeLive, |
|
"article-list": TypeCorpus, |
|
"comic": TypeComic, |
|
} |
|
|
|
var businessIDs = map[int8]string{ |
|
TypeOffline: "archive", |
|
TypeMovie: "pgc", |
|
TypeBangumi: "pgc", |
|
TypePGC: "pgc", |
|
TypeArticle: "article", |
|
TypeUGC: "archive", |
|
TypeLive: "live", |
|
TypeCorpus: "article-list", |
|
TypeComic: "comic", |
|
} |
|
|
|
// BusinessByTP . |
|
func BusinessByTP(b int8) string { |
|
return businessIDs[b] |
|
} |
|
|
|
// CheckBusiness . |
|
func CheckBusiness(bs string) (tp int8, err error) { |
|
if bs == "" { |
|
return |
|
} |
|
tp, ok := businesses[bs] |
|
if !ok { |
|
err = ecode.AppDenied |
|
} |
|
return |
|
} |
|
|
|
// MustCheckBusiness . |
|
func MustCheckBusiness(bs string) (tp int8, err error) { |
|
if bs == "" { |
|
err = ecode.RequestErr |
|
return |
|
} |
|
tp, ok := businesses[bs] |
|
if !ok { |
|
err = ecode.AppDenied |
|
} |
|
return |
|
} |
|
|
|
// Merge report merge in history. |
|
type Merge struct { |
|
Mid int64 `json:"mid"` |
|
Now int64 `json:"now"` |
|
} |
|
|
|
// Video video history. |
|
type Video struct { |
|
*archive.Archive3 |
|
Favorite bool `json:"favorite"` // video favorite |
|
TP int8 `json:"type"` // video type |
|
STP int8 `json:"sub_type"` // video type |
|
DT int8 `json:"device"` // device type |
|
Page *archive.Page3 `json:"page,omitempty"` |
|
Count int `json:"count,omitempty"` |
|
BangumiInfo *Bangumi `json:"bangumi,omitempty"` |
|
Progress int64 `json:"progress"` |
|
ViewAt int64 `json:"view_at"` |
|
} |
|
|
|
// Season season. |
|
type Season struct { |
|
ID int64 `json:"season_id"` |
|
Title string `json:"title"` |
|
SeasonStatus int `json:"season_status"` |
|
IsFinish int `json:"is_finish"` |
|
TotalCount int32 `json:"total_count"` |
|
NewestEpid int64 `json:"newest_ep_id"` |
|
NewestEpIndex string `json:"newest_ep_index"` |
|
SeasonType int `json:"season_type,omitempty"` |
|
Mode int `json:"mode,omitempty"` |
|
} |
|
|
|
// Bangumi bangumi. |
|
type Bangumi struct { |
|
Epid int64 `json:"ep_id"` |
|
Title string `json:"title"` |
|
LongTitle string `json:"long_title"` |
|
EpisodeStatus int `json:"episode_status"` |
|
Follow int `json:"follow"` |
|
Cover string `json:"cover"` |
|
Season *Season `json:"season"` |
|
} |
|
|
|
// BangumiSeason season. |
|
type BangumiSeason struct { |
|
ID int64 `json:"season_id"` |
|
Epid int64 `json:"episode_id"` |
|
EpidType int64 `json:"season_type"` |
|
}
|
|
|