-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathAniDbMovieImageProvider.cs
56 lines (49 loc) · 1.94 KB
/
AniDbMovieImageProvider.cs
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
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Providers;
namespace Jellyfin.Plugin.Anime.Providers.AniDB.Metadata
{
/// <summary>
/// Provides movie images fetched from AniDB. Interally, this class uses AniDbSeriesImagesProvider
/// as AniDB does not differentiate between shows and movies.
/// </summary>
public class AniDbMovieImageProvider : IRemoteImageProvider
{
public string Name => "AniDB";
private readonly AniDbSeriesImagesProvider _seriesImagesProvider;
public AniDbMovieImageProvider(IApplicationPaths appPaths, IHttpClient httpClient)
{
_seriesImagesProvider = new AniDbSeriesImagesProvider(httpClient, appPaths);
}
public Task<HttpResponseInfo> GetImageResponse(string url, CancellationToken cancellationToken)
{
return _seriesImagesProvider.GetImageResponse(url, cancellationToken);
}
public async Task<IEnumerable<RemoteImageInfo>> GetImages(BaseItem item, CancellationToken cancellationToken)
{
var movie = (Movie)item;
var seriesId = movie.ProviderIds.GetOrDefault(ProviderNames.AniDb);
if (string.IsNullOrEmpty(seriesId))
{
return Enumerable.Empty<RemoteImageInfo>();
}
return await _seriesImagesProvider.GetImages(seriesId, cancellationToken);
}
public IEnumerable<ImageType> GetSupportedImages(BaseItem item)
{
return _seriesImagesProvider.GetSupportedImages(item);
}
public bool Supports(BaseItem item)
{
return item is Movie;
}
}
}