using MediaBrowser.Model.Entities; using System; using System.Collections.Generic; using System.Linq; namespace MediaBrowser.Model.Configuration { /// /// Class MetadataOptions. /// public class MetadataOptions { public string ItemType { get; set; } public ImageOption[] ImageOptions { get; set; } public string[] DisabledMetadataSavers { get; set; } public string[] LocalMetadataReaderOrder { get; set; } public string[] DisabledMetadataFetchers { get; set; } public string[] MetadataFetcherOrder { get; set; } public string[] DisabledImageFetchers { get; set; } public string[] ImageFetcherOrder { get; set; } public MetadataOptions() : this(3, 1280) { } public MetadataOptions(int backdropLimit, int minBackdropWidth) { var imageOptions = new List { new ImageOption { Limit = backdropLimit, MinWidth = minBackdropWidth, Type = ImageType.Backdrop } }; ImageOptions = imageOptions.ToArray(); DisabledMetadataSavers = new string[] { }; LocalMetadataReaderOrder = new string[] { }; DisabledMetadataFetchers = new string[] { }; MetadataFetcherOrder = new string[] { }; DisabledImageFetchers = new string[] { }; ImageFetcherOrder = new string[] { }; } public int GetLimit(ImageType type) { var option = ImageOptions.FirstOrDefault(i => i.Type == type); return option == null ? 1 : option.Limit; } public int GetMinWidth(ImageType type) { var option = ImageOptions.FirstOrDefault(i => i.Type == type); return option == null ? 0 : option.MinWidth; } public bool IsEnabled(ImageType type) { return GetLimit(type) > 0; } public bool IsMetadataSaverEnabled(string name) { return !DisabledMetadataSavers.Contains(name, StringComparer.OrdinalIgnoreCase); } } public class ImageOption { /// /// Gets or sets the type. /// /// The type. public ImageType Type { get; set; } /// /// Gets or sets the limit. /// /// The limit. public int Limit { get; set; } /// /// Gets or sets the minimum width. /// /// The minimum width. public int MinWidth { get; set; } public ImageOption() { Limit = 1; } } }