< Summary - Jellyfin

Information
Class: MediaBrowser.Providers.Plugins.Omdb.OmdbEpisodeProvider
Assembly: MediaBrowser.Providers
File(s): /srv/git/jellyfin/MediaBrowser.Providers/Plugins/Omdb/OmdbEpisodeProvider.cs
Line coverage
42%
Covered lines: 3
Uncovered lines: 4
Coverable lines: 7
Total lines: 80
Line coverage: 42.8%
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_Order()100%210%
get_Name()100%210%
GetSearchResults(...)100%210%
GetImageResponse(...)100%210%

File(s)

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

#LineLine coverage
 1#pragma warning disable CS1591
 2
 3using System.Collections.Generic;
 4using System.Net.Http;
 5using System.Threading;
 6using System.Threading.Tasks;
 7using MediaBrowser.Controller.Configuration;
 8using MediaBrowser.Controller.Entities.TV;
 9using MediaBrowser.Controller.Library;
 10using MediaBrowser.Controller.Providers;
 11using MediaBrowser.Model.Entities;
 12using MediaBrowser.Model.IO;
 13using MediaBrowser.Model.Providers;
 14
 15namespace MediaBrowser.Providers.Plugins.Omdb
 16{
 17    public class OmdbEpisodeProvider : IRemoteMetadataProvider<Episode, EpisodeInfo>, IHasOrder
 18    {
 19        private readonly OmdbItemProvider _itemProvider;
 20        private readonly OmdbProvider _omdbProvider;
 21
 22        public OmdbEpisodeProvider(
 23            IHttpClientFactory httpClientFactory,
 24            ILibraryManager libraryManager,
 25            IFileSystem fileSystem,
 26            IServerConfigurationManager configurationManager)
 27        {
 2228            _itemProvider = new OmdbItemProvider(httpClientFactory, libraryManager, fileSystem, configurationManager);
 2229            _omdbProvider = new OmdbProvider(httpClientFactory, fileSystem, configurationManager);
 2230        }
 31
 32        // After TheTvDb
 033        public int Order => 1;
 34
 035        public string Name => "The Open Movie Database";
 36
 37        public Task<IEnumerable<RemoteSearchResult>> GetSearchResults(EpisodeInfo searchInfo, CancellationToken cancella
 38        {
 039            return _itemProvider.GetSearchResults(searchInfo, cancellationToken);
 40        }
 41
 42        public async Task<MetadataResult<Episode>> GetMetadata(EpisodeInfo info, CancellationToken cancellationToken)
 43        {
 44            var result = new MetadataResult<Episode>
 45            {
 46                Item = new Episode(),
 47                QueriedById = true
 48            };
 49
 50            // Allowing this will dramatically increase scan times
 51            if (info.IsMissingEpisode)
 52            {
 53                return result;
 54            }
 55
 56            if (info.SeriesProviderIds.TryGetValue(MetadataProvider.Imdb.ToString(), out string? seriesImdbId)
 57                && !string.IsNullOrEmpty(seriesImdbId)
 58                && info.IndexNumber.HasValue
 59                && info.ParentIndexNumber.HasValue)
 60            {
 61                result.HasMetadata = await _omdbProvider.FetchEpisodeData(
 62                    result,
 63                    info.IndexNumber.Value,
 64                    info.ParentIndexNumber.Value,
 65                    info.GetProviderId(MetadataProvider.Imdb),
 66                    seriesImdbId,
 67                    info.MetadataLanguage,
 68                    info.MetadataCountryCode,
 69                    cancellationToken).ConfigureAwait(false);
 70            }
 71
 72            return result;
 73        }
 74
 75        public Task<HttpResponseMessage> GetImageResponse(string url, CancellationToken cancellationToken)
 76        {
 077            return _itemProvider.GetImageResponse(url, cancellationToken);
 78        }
 79    }
 80}