aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/People
diff options
context:
space:
mode:
authordkanada <dkanada@users.noreply.github.com>2020-03-09 23:53:07 +0900
committerdkanada <dkanada@users.noreply.github.com>2020-03-09 23:53:07 +0900
commitd7c34b461134d591062416da7d5c8639efb98b9a (patch)
tree7022d9d562828b5225aa530e6a7d16ac3db59c1a /MediaBrowser.Providers/People
parentd16f68bb14588ba9869a5a74e8f71dfc4af2856a (diff)
start tvdb migration for plugin interface
Diffstat (limited to 'MediaBrowser.Providers/People')
-rw-r--r--MediaBrowser.Providers/People/TvdbPersonImageProvider.cs116
1 files changed, 0 insertions, 116 deletions
diff --git a/MediaBrowser.Providers/People/TvdbPersonImageProvider.cs b/MediaBrowser.Providers/People/TvdbPersonImageProvider.cs
deleted file mode 100644
index 50476044b..000000000
--- a/MediaBrowser.Providers/People/TvdbPersonImageProvider.cs
+++ /dev/null
@@ -1,116 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading;
-using System.Threading.Tasks;
-using MediaBrowser.Common.Net;
-using MediaBrowser.Controller.Dto;
-using MediaBrowser.Controller.Entities;
-using MediaBrowser.Controller.Entities.TV;
-using MediaBrowser.Controller.Library;
-using MediaBrowser.Controller.Providers;
-using MediaBrowser.Model.Entities;
-using MediaBrowser.Model.Providers;
-using MediaBrowser.Providers.TV.TheTVDB;
-using Microsoft.Extensions.Logging;
-using TvDbSharper;
-
-namespace MediaBrowser.Providers.People
-{
- public class TvdbPersonImageProvider : IRemoteImageProvider, IHasOrder
- {
- private readonly IHttpClient _httpClient;
- private readonly ILogger _logger;
- private readonly ILibraryManager _libraryManager;
- private readonly TvDbClientManager _tvDbClientManager;
-
- public TvdbPersonImageProvider(ILibraryManager libraryManager, IHttpClient httpClient, ILogger<TvdbPersonImageProvider> logger, TvDbClientManager tvDbClientManager)
- {
- _libraryManager = libraryManager;
- _httpClient = httpClient;
- _logger = logger;
- _tvDbClientManager = tvDbClientManager;
- }
-
- /// <inheritdoc />
- public string Name => "TheTVDB";
-
- /// <inheritdoc />
- public int Order => 1;
-
- /// <inheritdoc />
- public bool Supports(BaseItem item) => item is Person;
-
- /// <inheritdoc />
- public IEnumerable<ImageType> GetSupportedImages(BaseItem item)
- {
- yield return ImageType.Primary;
- }
-
- /// <inheritdoc />
- public async Task<IEnumerable<RemoteImageInfo>> GetImages(BaseItem item, CancellationToken cancellationToken)
- {
- var seriesWithPerson = _libraryManager.GetItemList(new InternalItemsQuery
- {
- IncludeItemTypes = new[] { typeof(Series).Name },
- PersonIds = new[] { item.Id },
- DtoOptions = new DtoOptions(false)
- {
- EnableImages = false
- }
-
- }).Cast<Series>()
- .Where(i => TvdbSeriesProvider.IsValidSeries(i.ProviderIds))
- .ToList();
-
- var infos = (await Task.WhenAll(seriesWithPerson.Select(async i =>
- await GetImageFromSeriesData(i, item.Name, cancellationToken).ConfigureAwait(false)))
- .ConfigureAwait(false))
- .Where(i => i != null)
- .Take(1);
-
- return infos;
- }
-
- private async Task<RemoteImageInfo> GetImageFromSeriesData(Series series, string personName, CancellationToken cancellationToken)
- {
- var tvdbId = Convert.ToInt32(series.GetProviderId(MetadataProviders.Tvdb));
-
- try
- {
- var actorsResult = await _tvDbClientManager
- .GetActorsAsync(tvdbId, series.GetPreferredMetadataLanguage(), cancellationToken)
- .ConfigureAwait(false);
- var actor = actorsResult.Data.FirstOrDefault(a =>
- string.Equals(a.Name, personName, StringComparison.OrdinalIgnoreCase) &&
- !string.IsNullOrEmpty(a.Image));
- if (actor == null)
- {
- return null;
- }
-
- return new RemoteImageInfo
- {
- Url = TvdbUtils.BannerUrl + actor.Image,
- Type = ImageType.Primary,
- ProviderName = Name
- };
- }
- catch (TvDbServerException e)
- {
- _logger.LogError(e, "Failed to retrieve actor {ActorName} from series {SeriesTvdbId}", personName, tvdbId);
- return null;
- }
- }
-
- /// <inheritdoc />
- public Task<HttpResponseInfo> GetImageResponse(string url, CancellationToken cancellationToken)
- {
- return _httpClient.GetResponse(new HttpRequestOptions
- {
- CancellationToken = cancellationToken,
- Url = url
- });
- }
- }
-}