using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Providers; namespace MediaBrowser.Providers.Books; /// /// Comic provider. /// public class ComicProvider : ILocalMetadataProvider, IHasItemChangeMonitor { private readonly IEnumerable _comicProviders; /// /// Initializes a new instance of the class. /// /// The list of comic providers. public ComicProvider(IEnumerable comicProviders) { _comicProviders = comicProviders; } /// public string Name => "Comic Provider"; /// public async Task> GetMetadata(ItemInfo info, IDirectoryService directoryService, CancellationToken cancellationToken) { foreach (IComicProvider comicProvider in _comicProviders) { var metadata = await comicProvider.ReadMetadata(info, directoryService, cancellationToken).ConfigureAwait(false); if (metadata.HasMetadata) { return metadata; } } return new MetadataResult { HasMetadata = false }; } /// public bool HasChanged(BaseItem item, IDirectoryService directoryService) { foreach (IComicProvider iComicFileProvider in _comicProviders) { var fileChanged = iComicFileProvider.HasItemChanged(item); if (fileChanged) { return fileChanged; } } return false; } }