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;
}
}