Documentation ¶
Index ¶
- func GenerateUID4Movie(movieFPath string) string
- func GenerateUID4Series(seriesDirFPath string, season, eps int) string
- type HotFix
- type IMDBAKA
- type IMDBInfo
- type IMDBLanguage
- type Info
- type LowVideoSubInfo
- type MediaInfo
- type SkipScanInfo
- type StringList
- type SubFormatRec
- type ThirdPartSetVideoPlayedInfo
- type VideoSubInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GenerateUID4Movie ¶
func GenerateUID4Series ¶
Types ¶
type IMDBInfo ¶
type IMDBInfo struct { IMDBID string `gorm:"primaryKey" json:"imdb_id" binding:"required"` // IMDB ID Name string `json:"name" binding:"required"` // 视频名称 Year int `gorm:"default:0" json:"year" binding:"required"` // 发布的时间 Description string `json:"description" binding:"required"` // 描述 Languages StringList `gorm:"type:varchar(255);not null" json:"languages" binding:"required"` // 语言 AKA StringList `gorm:"type:varchar(255);not null" json:"AKA" binding:"required"` // 又名 xx xxx RootDirPath string `json:"root_dir_path"` // 这个电影或者连续剧(不是季的文件夹,而是这个连续剧的目录)路径 IsMovie bool `json:"is_movie"` // 不是电影就是连续剧 TmdbId string `gorm:"type:varchar(20)"` // TMDB ID 也是 MediaInfo 的主键 VideoSubInfos []VideoSubInfo `gorm:"foreignKey:IMDBInfoID"` // 视频对应的字幕,外键约束 }
func NewIMDBInfo ¶
func NewIMDBInfo(IMDBID string, name string, year int, description string, languages StringList, AKA StringList) *IMDBInfo
func (*IMDBInfo) GetChineseNameFromAKA ¶
type IMDBLanguage ¶
type LowVideoSubInfo ¶
type LowVideoSubInfo struct { ID int64 `gorm:"primaryKey" json:"id"` IMDBID string `json:"imdb_id"` TMDBID string `json:"tmdb_id"` Feature string `json:"feature" binding:"required"` // 特征码,这个未必有,比如是蓝光格式,分散成多个视频文件的时候,暂定使用本程序的特征提前方式 SubName string `json:"sub_name" binding:"required"` // 字幕的文件名 Season int `json:"season"` // 如果对应的是电影则可能是 0,没有 Episode int `json:"episode"` // 如果对应的是电影则可能是 0,没有 LanguageISO string `json:"language_iso" binding:"required"` // 字幕的语言,目标语言,就算是双语,中英,也应该是中文。ISO_639-1_codes 标准,见 ISOLanguage.go 文件,这里无法区分简体繁体 IsDouble bool `json:"is_double" binding:"required"` // 是否是双语,上面是主体语言,比如是中文, ChineseISO string `json:"chinese_iso" binding:"required"` // 中文语言编码变种,见 ISOLanguage.go 文件,这里区分简体、繁体等,如果语言是非中文则这里是空 MyLanguage string `json:"my_language" binding:"required"` // 这个是本程序定义的语言类型,见 my_language.go 文件 StoreRPath string `json:"store_r_path"` // 字幕存在出本地的哪里相对路径上,cache/CSF-ShareSubCache ExtraPreName string `json:"extra_pre_name" binding:"required"` // 字幕额外的命名信息,指 Emby 字幕命名格式(简英,subhd),的 subhd SHA256 string `json:"sha_256" binding:"required"` // 当前文件的 sha256 的值 IsMovie bool `json:"is_movie"` // 不是电影就是连续剧 IsSend bool `json:"is_send"` // 是否已经发送 }
type MediaInfo ¶
type MediaInfo struct { TmdbId string `gorm:"type:varchar(20);primarykey"` ImdbId string `gorm:"type:varchar(20)"` OriginalTitle string `gorm:"type:varchar(100)"` OriginalLanguage string `gorm:"type:varchar(100)"` // 视频的原始语言 en zh TitleEn string `gorm:"type:varchar(100)"` // 英文标题 TitleCn string `gorm:"type:varchar(100)"` // 中文的标题 Year string `gorm:"type:varchar(20)"` // 播出的时间,如果是连续剧是第一次播出的时间 2019-01-01 2022-01-01 }
type SkipScanInfo ¶
type SkipScanInfo struct { /* 这里的 UID 计算方式有两种: 1. 电影,由电影的文件夹路径计算 sha256 得到,X:\电影\Three Thousand Years of Longing (2022) 2. 连续剧,由连续剧的文件夹路径计算 sha256 得到,只能具体到一集(S01E01 这里是拼接出来的不是真正的文件名) X:\连续剧\绝命毒师S01E01 */ UID string `gorm:"type:varchar(64);primarykey"` Skip bool `gorm:"type:bool;default:false"` }
func NewSkipScanInfoByMovie ¶
func NewSkipScanInfoByMovie(movieFPath string, skip bool) *SkipScanInfo
func NewSkipScanInfoBySeries ¶
func NewSkipScanInfoBySeries(seriesDirFPath string, season, eps int, skip bool) *SkipScanInfo
func NewSkipScanInfoByUID ¶
func NewSkipScanInfoByUID(uid string, skip bool) *SkipScanInfo
type StringList ¶
type StringList []string
func (*StringList) Scan ¶
func (p *StringList) Scan(data interface{}) error
type SubFormatRec ¶
type SubFormatRec struct { gorm.Model FormatName int // 字幕格式化格式的名称(Normal or Emby 的枚举类型) Done bool }
SubFormatRec 记录是否经过格式化,理论上只有一条
type VideoSubInfo ¶
type VideoSubInfo struct { Feature string `gorm:"primaryKey" json:"feature" binding:"required"` // 特征码,这个未必有,比如是蓝光格式,分散成多个视频文件的时候,暂定使用本程序的特征提前方式 SubName string `json:"sub_name" binding:"required"` // 字幕的文件名 Season int `json:"season"` // 如果对应的是电影则可能是 0,没有 Episode int `json:"episode"` // 如果对应的是电影则可能是 0,没有 LanguageISO string `json:"language_iso" binding:"required"` // 字幕的语言,目标语言,就算是双语,中英,也应该是中文。ISO_639-1_codes 标准,见 ISOLanguage.go 文件,这里无法区分简体繁体 IsDouble bool `json:"is_double" binding:"required"` // 是否是双语,上面是主体语言,比如是中文, ChineseISO string `json:"chinese_iso" binding:"required"` // 中文语言编码变种,见 ISOLanguage.go 文件,这里区分简体、繁体等,如果语言是非中文则这里是空 MyLanguage string `json:"my_language" binding:"required"` // 这个是本程序定义的语言类型,见 my_language.go 文件 StoreRPath string `json:"store_r_path"` // 字幕存在出本地的哪里相对路径上,cache/CSF-ShareSubCache ExtraPreName string `json:"extra_pre_name" binding:"required"` // 字幕额外的命名信息,指 Emby 字幕命名格式(简英,subhd),的 subhd SHA256 string `json:"sha_256" binding:"required"` // 当前文件的 sha256 的值 IsSend bool `json:"is_send"` // 是否已经发送 IsMovie bool `json:"is_movie"` // 不是电影就是连续剧 IMDBInfoID string `json:"imdb_info_id" binding:"required"` // IMDB ID }
VideoSubInfo 属于 IMDBInfo,IMDBInfoID 是外键,使用了 GORM 的 HasMany 关联
Click to show internal directories.
Click to hide internal directories.