< Summary - Jellyfin

Information
Class: MediaBrowser.Providers.Plugins.Omdb.OmdbImageProvider
Assembly: MediaBrowser.Providers
File(s): /srv/git/jellyfin/MediaBrowser.Providers/Plugins/Omdb/OmdbImageProvider.cs
Line coverage
57%
Covered lines: 4
Uncovered lines: 3
Coverable lines: 7
Total lines: 80
Line coverage: 57.1%
Branch coverage
50%
Covered branches: 2
Total branches: 4
Branch coverage: 50%
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%
GetImageResponse(...)100%210%
Supports(...)50%44100%

File(s)

/srv/git/jellyfin/MediaBrowser.Providers/Plugins/Omdb/OmdbImageProvider.cs

#LineLine coverage
 1#nullable disable
 2
 3#pragma warning disable CS1591
 4
 5using System.Collections.Generic;
 6using System.Linq;
 7using System.Net.Http;
 8using System.Threading;
 9using System.Threading.Tasks;
 10using MediaBrowser.Common.Net;
 11using MediaBrowser.Controller.Configuration;
 12using MediaBrowser.Controller.Entities;
 13using MediaBrowser.Controller.Entities.Movies;
 14using MediaBrowser.Controller.Entities.TV;
 15using MediaBrowser.Controller.Providers;
 16using MediaBrowser.Model.Entities;
 17using MediaBrowser.Model.IO;
 18using MediaBrowser.Model.Providers;
 19
 20namespace MediaBrowser.Providers.Plugins.Omdb
 21{
 22    public class OmdbImageProvider : IRemoteImageProvider, IHasOrder
 23    {
 24        private readonly IHttpClientFactory _httpClientFactory;
 25        private readonly OmdbProvider _omdbProvider;
 26
 27        public OmdbImageProvider(IHttpClientFactory httpClientFactory, IFileSystem fileSystem, IServerConfigurationManag
 28        {
 2229            _httpClientFactory = httpClientFactory;
 2230            _omdbProvider = new OmdbProvider(_httpClientFactory, fileSystem, configurationManager);
 2231        }
 32
 033        public string Name => "The Open Movie Database";
 34
 35        // After other internet providers, because they're better
 36        // But before fallback providers like screengrab
 037        public int Order => 90;
 38
 39        public IEnumerable<ImageType> GetSupportedImages(BaseItem item)
 40        {
 41            yield return ImageType.Primary;
 42        }
 43
 44        public async Task<IEnumerable<RemoteImageInfo>> GetImages(BaseItem item, CancellationToken cancellationToken)
 45        {
 46            var imdbId = item.GetProviderId(MetadataProvider.Imdb);
 47            if (string.IsNullOrWhiteSpace(imdbId))
 48            {
 49                return Enumerable.Empty<RemoteImageInfo>();
 50            }
 51
 52            var rootObject = await _omdbProvider.GetRootObject(imdbId, cancellationToken).ConfigureAwait(false);
 53
 54            if (string.IsNullOrEmpty(rootObject.Poster))
 55            {
 56                return Enumerable.Empty<RemoteImageInfo>();
 57            }
 58
 59            // the poster url is sometimes higher quality than the poster api
 60            return new[]
 61            {
 62                new RemoteImageInfo
 63                {
 64                    ProviderName = Name,
 65                    Url = rootObject.Poster
 66                }
 67            };
 68        }
 69
 70        public Task<HttpResponseMessage> GetImageResponse(string url, CancellationToken cancellationToken)
 71        {
 072            return _httpClientFactory.CreateClient(NamedClient.Default).GetAsync(url, cancellationToken);
 73        }
 74
 75        public bool Supports(BaseItem item)
 76        {
 4677            return item is Movie || item is Trailer || item is Episode;
 78        }
 79    }
 80}