video_sub_info.go 2.4 KB

12345678910111213141516171819202122
  1. package models
  2. // VideoSubInfo 属于 IMDBInfo,IMDBInfoID 是外键,使用了 GORM 的 HasMany 关联
  3. type VideoSubInfo struct {
  4. Feature string `gorm:"primaryKey" json:"feature" binding:"required"` // 特征码,这个未必有,比如是蓝光格式,分散成多个视频文件的时候,暂定使用本程序的特征提前方式
  5. SubName string `json:"sub_name" binding:"required"` // 字幕的文件名
  6. Season int `json:"season"` // 如果对应的是电影则可能是 0,没有
  7. Episode int `json:"episode"` // 如果对应的是电影则可能是 0,没有
  8. LanguageISO string `json:"language_iso" binding:"required"` // 字幕的语言,目标语言,就算是双语,中英,也应该是中文。ISO_639-1_codes 标准,见 ISOLanguage.go 文件,这里无法区分简体繁体
  9. IsDouble bool `json:"is_double" binding:"required"` // 是否是双语,上面是主体语言,比如是中文,
  10. ChineseISO string `json:"chinese_iso" binding:"required"` // 中文语言编码变种,见 ISOLanguage.go 文件,这里区分简体、繁体等,如果语言是非中文则这里是空
  11. MyLanguage string `json:"my_language" binding:"required"` // 这个是本程序定义的语言类型,见 my_language.go 文件
  12. StoreRPath string `json:"store_r_path"` // 字幕存在出本地的哪里相对路径上,cache/CSF-ShareSubCache
  13. ExtraPreName string `json:"extra_pre_name" binding:"required"` // 字幕额外的命名信息,指 Emby 字幕命名格式(简英,subhd),的 subhd
  14. SHA256 string `json:"sha_256" binding:"required"` // 当前文件的 sha256 的值
  15. IsSend bool `json:"is_send"` // 是否已经发送
  16. IMDBInfoID string `json:"imdb_info_id" binding:"required"` // IMDB ID
  17. }
  18. func NewVideoSubInfo(feature string, subName string, languageISO string, isDouble bool, chineseISO string, myLanguage string, storeFPath string, extraPreName string, sha256String string) *VideoSubInfo {
  19. return &VideoSubInfo{Feature: feature, SubName: subName, LanguageISO: languageISO, IsDouble: isDouble, ChineseISO: chineseISO, MyLanguage: myLanguage, StoreRPath: storeFPath, ExtraPreName: extraPreName, SHA256: sha256String}
  20. }