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 MediaInfoBitRateLessThanOrEqual int64 `yaml:"media_info_bit_rate_lte"` // bytes per second MediaInfoVideoBitRateGreaterThanOrEqual int64 `yaml:"media_info_video_bit_rate_gte"` // bytes per second MediaInfoVideoBitRateLessThanOrEqual int64 `yaml:"media_info_video_bit_rate_lte"` // bytes per second MediaInfoAudioBitRateGreaterThanOrEqual int64 `yaml:"media_info_audio_bit_rate_gte"` // bytes per second MediaInfoAudioBitRateLessThanOrEqual int64 `yaml:"media_info_audio_bit_rate_lte"` // bytes per second MediaInfoDurationGreaterThanOrEqual int64 `yaml:"media_info_duration_gte"` // seconds MediaInfoDurationLessThanOrEqual int64 `yaml:"media_info_duration_lte"` // 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 }