using System; using Jellyfin.Extensions; using MediaBrowser.Controller.Channels; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Configuration; namespace MediaBrowser.Controller.BaseItemManager { /// public class BaseItemManager : IBaseItemManager { private readonly IServerConfigurationManager _serverConfigurationManager; /// /// Initializes a new instance of the class. /// /// Instance of the interface. public BaseItemManager(IServerConfigurationManager serverConfigurationManager) { _serverConfigurationManager = serverConfigurationManager; } /// public bool IsMetadataFetcherEnabled(BaseItem baseItem, TypeOptions? libraryTypeOptions, string name) { if (baseItem is Channel) { // Hack alert. return true; } if (baseItem.SourceType == SourceType.Channel) { // Hack alert. return !baseItem.EnableMediaSourceDisplay; } if (libraryTypeOptions is not null) { return libraryTypeOptions.MetadataFetchers.Contains(name, StringComparison.OrdinalIgnoreCase); } var itemConfig = _serverConfigurationManager.GetMetadataOptionsForType(baseItem.GetType().Name); return itemConfig is null || !itemConfig.DisabledMetadataFetchers.Contains(name, StringComparison.OrdinalIgnoreCase); } /// public bool IsImageFetcherEnabled(BaseItem baseItem, TypeOptions? libraryTypeOptions, string name) { if (baseItem is Channel) { // Hack alert. return true; } if (baseItem.SourceType == SourceType.Channel) { // Hack alert. return !baseItem.EnableMediaSourceDisplay; } if (libraryTypeOptions is not null) { return libraryTypeOptions.ImageFetchers.Contains(name, StringComparison.OrdinalIgnoreCase); } var itemConfig = _serverConfigurationManager.GetMetadataOptionsForType(baseItem.GetType().Name); return itemConfig is null || !itemConfig.DisabledImageFetchers.Contains(name, StringComparison.OrdinalIgnoreCase); } } }