Files
zurg/internal/config/v1types.go
2024-06-20 05:27:41 +02:00

56 lines
3.0 KiB
Go

package config
import "github.com/debridmediamanager/zurg/pkg/logutil"
type ZurgConfigV1 struct {
ZurgConfig `yaml:",inline"`
Directories map[string]*DirectoryV1 `yaml:"directories"`
log *logutil.Logger
}
type DirectoryV1 struct {
GroupOrder int `yaml:"group_order"`
Group string `yaml:"group"`
Filters []*FilterConditionsV1 `yaml:"filters"`
OnlyShowTheBiggestFile bool `yaml:"only_show_the_biggest_file"`
OnlyShowFilesWithSizeLte int64 `yaml:"only_show_files_with_size_lte"`
OnlyShowFilesWithSizeGte int64 `yaml:"only_show_files_with_size_gte"`
}
type FilterConditionsV1 struct {
ID string `yaml:"id"`
RegexStr string `yaml:"regex"`
Contains string `yaml:"contains"`
ContainsStrict string `yaml:"contains_strict"`
NotRegexStr string `yaml:"not_regex"`
NotContains string `yaml:"not_contains"`
NotContainsStrict string `yaml:"not_contains_strict"`
SizeGreaterThanOrEqual int64 `yaml:"size_gte"`
SizeLessThanOrEqual int64 `yaml:"size_lte"`
And []*FilterConditionsV1 `yaml:"and"`
Or []*FilterConditionsV1 `yaml:"or"`
FileInsideRegexStr string `yaml:"any_file_inside_regex"`
FileInsideContains string `yaml:"any_file_inside_contains"`
FileInsideContainsStrict string `yaml:"any_file_inside_contains_strict"`
FileInsideNotRegexStr string `yaml:"any_file_inside_not_regex"`
FileInsideNotContains string `yaml:"any_file_inside_not_contains"`
FileInsideNotContainsStrict string `yaml:"any_file_inside_not_contains_strict"`
FileInsideSizeGreaterThanOrEqual int64 `yaml:"any_file_inside_size_gte"`
FileInsideSizeLessThanOrEqual int64 `yaml:"any_file_inside_size_lte"`
HasEpisodes bool `yaml:"has_episodes"`
IsMusic bool `yaml:"is_music"`
MediaInfoResolution string `yaml:"media_info_resolution"` // possible values: 8k 4k 1080p 720p 480p 360p 240p 144p
MediaInfoBitRateGreaterThanOrEqual int64 `yaml:"media_info_bit_rate_gte"` // bytes per second
MediaInfoVideoBitRateGreaterThanOrEqual int64 `yaml:"media_info_video_bit_rate_gte"` // bytes per second
MediaInfoAudioBitRateGreaterThanOrEqual int64 `yaml:"media_info_audio_bit_rate_gte"` // bytes per second
MediaInfoDurationGreaterThanOrEqual int64 `yaml:"media_info_duration_gte"` // seconds
MediaInfoWithAudioLanguage string `yaml:"media_info_with_audio_language"` // 3 char language code
MediaInfoWithoutAudioLanguage string `yaml:"media_info_without_audio_language"` // 3 char language code
MediaInfoWithSubtitleLanguage string `yaml:"media_info_with_subtitle_language"` // 3 char language code
MediaInfoWithoutSubtitleLanguage string `yaml:"media_info_without_subtitle_language"` // 3 char language code
}