blob: d59c58c330e79bc12c0f68b377f05f6cf8254cdb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Providers;
namespace MediaBrowser.Providers.Books;
/// <summary>
/// Comic provider.
/// </summary>
public class ComicProvider : ILocalMetadataProvider<Book>, IHasItemChangeMonitor
{
private readonly IEnumerable<IComicProvider> _comicProviders;
/// <summary>
/// Initializes a new instance of the <see cref="ComicProvider"/> class.
/// </summary>
/// <param name="comicProviders">The list of comic providers.</param>
public ComicProvider(IEnumerable<IComicProvider> comicProviders)
{
_comicProviders = comicProviders;
}
/// <inheritdoc />
public string Name => "Comic Provider";
/// <inheritdoc />
public async Task<MetadataResult<Book>> 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<Book> { HasMetadata = false };
}
/// <inheritdoc />
public bool HasChanged(BaseItem item, IDirectoryService directoryService)
{
foreach (IComicProvider iComicFileProvider in _comicProviders)
{
var fileChanged = iComicFileProvider.HasItemChanged(item);
if (fileChanged)
{
return fileChanged;
}
}
return false;
}
}
|