models

package
v0.47.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 22, 2023 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GenerateUID4Movie

func GenerateUID4Movie(movieFPath string) string

func GenerateUID4Series

func GenerateUID4Series(seriesDirFPath string, season, eps int) string

Types

type HotFix

type HotFix struct {
	gorm.Model
	Key  string // Hotfix Key 针对修复的具体问题
	Done bool
}

type IMDBAKA

type IMDBAKA struct {
	AKA        string `json:"aka" binding:"required"`
	IMDBInfoID uint   `json:"imdb_info_id" binding:"required"`
}

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

func (i *IMDBInfo) GetChineseNameFromAKA() string

type IMDBLanguage

type IMDBLanguage struct {
	Language   string `json:"language" binding:"required"`
	IMDBInfoID uint   `json:"imdb_info_id" binding:"required"`
}

type Info

type Info struct {
	gorm.Model
	Id           string // 当前设备的随机ID
	Version      string // 当前设备的版本
	MediaServer  string // 媒体服务的名称,没有使用则是 None
	EnableShare  bool   // 是否开启了共享功能
	EnableApiKey bool   // 是否开启本地 http api 功能
}

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"`                           // 是否已经发送
}

func NewLowVideoSubInfo

func NewLowVideoSubInfo(imdbID, tmdbID, feature string, subName string, languageISO string, isDouble bool, chineseISO string, myLanguage string, storeFPath string, extraPreName string, sha256String string, IsMovie bool) *LowVideoSubInfo

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

func (StringList) Value

func (p StringList) Value() (driver.Value, error)

type SubFormatRec

type SubFormatRec struct {
	gorm.Model
	FormatName int // 字幕格式化格式的名称(Normal or Emby 的枚举类型)
	Done       bool
}

SubFormatRec 记录是否经过格式化,理论上只有一条

type ThirdPartSetVideoPlayedInfo

type ThirdPartSetVideoPlayedInfo struct {
	PhysicalVideoFileFullPath string `gorm:"primaryKey" json:"physical_video_file_full_path"` // 视频的物理路径
	SubName                   string `json:"sub_name"`                                        // 字幕的名称,需要配合视频进行推算其的文件位置
}

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 关联

func NewVideoSubInfo

func NewVideoSubInfo(feature string, subName string, languageISO string, isDouble bool, chineseISO string, myLanguage string, storeFPath string, extraPreName string, sha256String string, IsMovie bool) *VideoSubInfo

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL