aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeImageProvider.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeImageProvider.cs')
-rw-r--r--MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeImageProvider.cs21
1 files changed, 18 insertions, 3 deletions
diff --git a/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeImageProvider.cs b/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeImageProvider.cs
index caa0a5aba..8f02b1377 100644
--- a/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeImageProvider.cs
+++ b/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeImageProvider.cs
@@ -53,13 +53,28 @@ namespace MediaBrowser.Providers.TV.TheTVDB
if (series != null && TvdbSeriesProvider.IsValidSeries(series.ProviderIds))
{
- var tvdbId = episode.GetProviderId(MetadataProviders.Tvdb);
+ var episodeTvdbId = episode.GetProviderId(MetadataProviders.Tvdb);
// Process images
try
{
+ if (string.IsNullOrEmpty(episodeTvdbId))
+ {
+ var episodeNumber = episode.IndexNumber.Value;
+ var seasonNumber = episode.ParentIndexNumber.Value;
+ episodeTvdbId = await _tvDbClientManager.GetEpisodeTvdbId(
+ Convert.ToInt32(series.GetProviderId(MetadataProviders.Tvdb)), episodeNumber, seasonNumber,
+ cancellationToken);
+ if (string.IsNullOrEmpty(episodeTvdbId))
+ {
+ _logger.LogError("Episode {SeasonNumber}x{EpisodeNumber}found for series {SeriesTvdbId}",
+ seasonNumber, episodeNumber);
+ return imageResult;
+ }
+ }
+
var episodeResult =
- await _tvDbClientManager.GetEpisodesAsync(Convert.ToInt32(tvdbId), cancellationToken);
+ await _tvDbClientManager.GetEpisodesAsync(Convert.ToInt32(episodeTvdbId), cancellationToken);
var image = GetImageInfo(episodeResult.Data);
if (image != null)
@@ -69,7 +84,7 @@ namespace MediaBrowser.Providers.TV.TheTVDB
}
catch (TvDbServerException e)
{
- _logger.LogError(e, "Failed to retrieve episode images for {TvDbId}", tvdbId);
+ _logger.LogError(e, "Failed to retrieve episode images for {TvDbId}", episodeTvdbId);
}
}