< Summary - Jellyfin

Information
Class: MediaBrowser.Providers.Plugins.Tmdb.People.TmdbPersonImageProvider
Assembly: MediaBrowser.Providers
File(s): /srv/git/jellyfin/MediaBrowser.Providers/Plugins/Tmdb/People/TmdbPersonImageProvider.cs
Line coverage
57%
Covered lines: 4
Uncovered lines: 3
Coverable lines: 7
Total lines: 78
Line coverage: 57.1%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
get_Name()100%210%
get_Order()100%210%
Supports(...)100%11100%
GetImageResponse(...)100%210%

File(s)

/srv/git/jellyfin/MediaBrowser.Providers/Plugins/Tmdb/People/TmdbPersonImageProvider.cs

#LineLine coverage
 1using System.Collections.Generic;
 2using System.Globalization;
 3using System.Linq;
 4using System.Net.Http;
 5using System.Threading;
 6using System.Threading.Tasks;
 7using MediaBrowser.Common.Net;
 8using MediaBrowser.Controller.Entities;
 9using MediaBrowser.Controller.Providers;
 10using MediaBrowser.Model.Entities;
 11using MediaBrowser.Model.Providers;
 12
 13namespace MediaBrowser.Providers.Plugins.Tmdb.People
 14{
 15    /// <summary>
 16    /// Person image provider powered by TMDb.
 17    /// </summary>
 18    public class TmdbPersonImageProvider : IRemoteImageProvider, IHasOrder
 19    {
 20        private readonly IHttpClientFactory _httpClientFactory;
 21        private readonly TmdbClientManager _tmdbClientManager;
 22
 23        /// <summary>
 24        /// Initializes a new instance of the <see cref="TmdbPersonImageProvider"/> class.
 25        /// </summary>
 26        /// <param name="httpClientFactory">The <see cref="IHttpClientFactory"/>.</param>
 27        /// <param name="tmdbClientManager">The <see cref="TmdbClientManager"/>.</param>
 28        public TmdbPersonImageProvider(IHttpClientFactory httpClientFactory, TmdbClientManager tmdbClientManager)
 29        {
 2230            _httpClientFactory = httpClientFactory;
 2231            _tmdbClientManager = tmdbClientManager;
 2232        }
 33
 34        /// <inheritdoc />
 035        public string Name => TmdbUtils.ProviderName;
 36
 37        /// <inheritdoc />
 038        public int Order => 0;
 39
 40        /// <inheritdoc />
 41        public bool Supports(BaseItem item)
 42        {
 4643            return item is Person;
 44        }
 45
 46        /// <inheritdoc />
 47        public IEnumerable<ImageType> GetSupportedImages(BaseItem item)
 48        {
 49            yield return ImageType.Primary;
 50        }
 51
 52        /// <inheritdoc />
 53        public async Task<IEnumerable<RemoteImageInfo>> GetImages(BaseItem item, CancellationToken cancellationToken)
 54        {
 55            var person = (Person)item;
 56
 57            if (!person.TryGetProviderId(MetadataProvider.Tmdb, out var personTmdbId))
 58            {
 59                return Enumerable.Empty<RemoteImageInfo>();
 60            }
 61
 62            var language = item.GetPreferredMetadataLanguage();
 63            var personResult = await _tmdbClientManager.GetPersonAsync(int.Parse(personTmdbId, CultureInfo.InvariantCult
 64            if (personResult?.Images?.Profiles is null)
 65            {
 66                return Enumerable.Empty<RemoteImageInfo>();
 67            }
 68
 69            return _tmdbClientManager.ConvertProfilesToRemoteImageInfo(personResult.Images.Profiles, language);
 70        }
 71
 72        /// <inheritdoc />
 73        public Task<HttpResponseMessage> GetImageResponse(string url, CancellationToken cancellationToken)
 74        {
 075            return _httpClientFactory.CreateClient(NamedClient.Default).GetAsync(url, cancellationToken);
 76        }
 77    }
 78}