aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/LiveTv/ChannelImageProvider.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/LiveTv/ChannelImageProvider.cs')
-rw-r--r--MediaBrowser.Server.Implementations/LiveTv/ChannelImageProvider.cs40
1 files changed, 30 insertions, 10 deletions
diff --git a/MediaBrowser.Server.Implementations/LiveTv/ChannelImageProvider.cs b/MediaBrowser.Server.Implementations/LiveTv/ChannelImageProvider.cs
index 3d0cdd33f..d04ebe32d 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/ChannelImageProvider.cs
+++ b/MediaBrowser.Server.Implementations/LiveTv/ChannelImageProvider.cs
@@ -51,9 +51,11 @@ namespace MediaBrowser.Server.Implementations.LiveTv
return true;
}
+ var changed = true;
+
try
{
- await DownloadImage((LiveTvChannel)item, cancellationToken).ConfigureAwait(false);
+ changed = await DownloadImage((LiveTvChannel)item, cancellationToken).ConfigureAwait(false);
}
catch (HttpException ex)
{
@@ -64,11 +66,15 @@ namespace MediaBrowser.Server.Implementations.LiveTv
}
}
- SetLastRefreshed(item, DateTime.UtcNow, providerInfo);
- return true;
+ if (changed)
+ {
+ SetLastRefreshed(item, DateTime.UtcNow, providerInfo);
+ }
+
+ return changed;
}
- private async Task DownloadImage(LiveTvChannel item, CancellationToken cancellationToken)
+ private async Task<bool> DownloadImage(LiveTvChannel item, CancellationToken cancellationToken)
{
var channelInfo = item.ChannelInfo;
@@ -92,22 +98,33 @@ namespace MediaBrowser.Server.Implementations.LiveTv
if (!response.ContentType.StartsWith("image/", StringComparison.OrdinalIgnoreCase))
{
- throw new InvalidOperationException("Provider did not return an image content type.");
+ Logger.Error("Provider did not return an image content type.");
+ return false;
}
imageStream = response.Content;
contentType = response.ContentType;
}
- else
+ else if (channelInfo.HasImage ?? true)
{
var service = _liveTvManager.Services.FirstOrDefault(i => string.Equals(i.Name, item.ServiceName, StringComparison.OrdinalIgnoreCase));
if (service != null)
{
- var response = await service.GetChannelImageAsync(channelInfo.Id, cancellationToken).ConfigureAwait(false);
-
- imageStream = response.Stream;
- contentType = response.MimeType;
+ try
+ {
+ var response = await service.GetChannelImageAsync(channelInfo.Id, cancellationToken).ConfigureAwait(false);
+
+ if (response != null)
+ {
+ imageStream = response.Stream;
+ contentType = response.MimeType;
+ }
+ }
+ catch (NotImplementedException)
+ {
+ return false;
+ }
}
}
@@ -117,7 +134,10 @@ namespace MediaBrowser.Server.Implementations.LiveTv
var url = item.ServiceName + channelInfo.Id;
await _providerManager.SaveImage(item, imageStream, contentType, ImageType.Primary, null, url, cancellationToken).ConfigureAwait(false);
+ return true;
}
+
+ return false;
}
public override MetadataProviderPriority Priority