private MetadataPluginSummary GetPluginSummary <T>() where T : BaseItem, new() { // Give it a dummy path just so that it looks like a file system item var dummy = new T() { Path = "C:\\", // Dummy this up to fool the local trailer check Parent = new Folder() }; var options = GetMetadataOptions(dummy); var summary = new MetadataPluginSummary { ItemType = typeof(T).Name }; var imageProviders = GetImageProviders(dummy, options, true).ToList(); AddMetadataPlugins(summary.Plugins, dummy, options); AddImagePlugins(summary.Plugins, dummy, imageProviders); var supportedImageTypes = imageProviders.OfType <IRemoteImageProvider>() .SelectMany(i => i.GetSupportedImages(dummy)) .ToList(); supportedImageTypes.AddRange(imageProviders.OfType <IDynamicImageProvider>() .SelectMany(i => i.GetSupportedImages(dummy))); summary.SupportedImageTypes = supportedImageTypes.Distinct().ToList(); return(summary); }
private MetadataPluginSummary GetPluginSummary <T>() where T : BaseItem, new() { // Give it a dummy path just so that it looks like a file system item var dummy = new T() { Path = Path.Combine(_appPaths.InternalMetadataPath, "dummy"), ParentId = Guid.NewGuid() }; var options = GetMetadataOptions(dummy); var summary = new MetadataPluginSummary { ItemType = typeof(T).Name }; var imageProviders = GetImageProviders(dummy, options, new ImageRefreshOptions(new DirectoryService(_logger, _fileSystem)), true).ToList(); AddMetadataPlugins(summary.Plugins, dummy, options); AddImagePlugins(summary.Plugins, dummy, imageProviders); var supportedImageTypes = imageProviders.OfType <IRemoteImageProvider>() .SelectMany(i => i.GetSupportedImages(dummy)) .ToList(); supportedImageTypes.AddRange(imageProviders.OfType <IDynamicImageProvider>() .SelectMany(i => i.GetSupportedImages(dummy))); summary.SupportedImageTypes = supportedImageTypes.Distinct().ToList(); return(summary); }
private MetadataPluginSummary GetPluginSummary <T>() where T : BaseItem, new() { // Give it a dummy path just so that it looks like a file system item var dummy = new T { Path = Path.Combine(_appPaths.InternalMetadataPath, "dummy"), ParentId = Guid.NewGuid() }; var options = GetMetadataOptions(dummy); var summary = new MetadataPluginSummary { ItemType = typeof(T).Name }; var libraryOptions = new LibraryOptions(); var imageProviders = GetImageProviders( dummy, libraryOptions, options, new ImageRefreshOptions(new DirectoryService(_fileSystem)), true).ToList(); var pluginList = summary.Plugins.ToList(); AddMetadataPlugins(pluginList, dummy, libraryOptions, options); AddImagePlugins(pluginList, imageProviders); var subtitleProviders = _subtitleManager.GetSupportedProviders(dummy); // Subtitle fetchers pluginList.AddRange(subtitleProviders.Select(i => new MetadataPlugin { Name = i.Name, Type = MetadataPluginType.SubtitleFetcher })); summary.Plugins = pluginList.ToArray(); var supportedImageTypes = imageProviders.OfType <IRemoteImageProvider>() .SelectMany(i => i.GetSupportedImages(dummy)) .ToList(); supportedImageTypes.AddRange(imageProviders.OfType <IDynamicImageProvider>() .SelectMany(i => i.GetSupportedImages(dummy))); summary.SupportedImageTypes = supportedImageTypes.Distinct().ToArray(); return(summary); }