diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-12-22 12:16:24 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-12-22 12:16:24 -0500 |
| commit | f20f3b4b68cc7309a7d0d62f6ebcb3db4482a9e1 (patch) | |
| tree | 32a85b2b8e6eb0cf3b53955dad254d283836c817 /MediaBrowser.Server.Implementations/LiveTv/ProgramImageProvider.cs | |
| parent | 7251d9d75c5fea690eff497e9c90343e9ec4a2fb (diff) | |
live tv updates
Diffstat (limited to 'MediaBrowser.Server.Implementations/LiveTv/ProgramImageProvider.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/LiveTv/ProgramImageProvider.cs | 40 |
1 files changed, 30 insertions, 10 deletions
diff --git a/MediaBrowser.Server.Implementations/LiveTv/ProgramImageProvider.cs b/MediaBrowser.Server.Implementations/LiveTv/ProgramImageProvider.cs index 2286e3ac5..7c343f77c 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/ProgramImageProvider.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/ProgramImageProvider.cs @@ -51,9 +51,11 @@ namespace MediaBrowser.Server.Implementations.LiveTv return true; } + var changed = true; + try { - await DownloadImage((LiveTvProgram)item, cancellationToken).ConfigureAwait(false); + changed = await DownloadImage((LiveTvProgram)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(LiveTvProgram item, CancellationToken cancellationToken) + private async Task<bool> DownloadImage(LiveTvProgram item, CancellationToken cancellationToken) { var programInfo = item.ProgramInfo; @@ -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 (programInfo.HasImage ?? true) { var service = _liveTvManager.Services.FirstOrDefault(i => string.Equals(i.Name, item.ServiceName, StringComparison.OrdinalIgnoreCase)); if (service != null) { - var response = await service.GetProgramImageAsync(programInfo.Id, programInfo.ChannelId, cancellationToken).ConfigureAwait(false); - - imageStream = response.Stream; - contentType = response.MimeType; + try + { + var response = await service.GetProgramImageAsync(programInfo.Id, programInfo.ChannelId, 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 + programInfo.Id; await _providerManager.SaveImage(item, imageStream, contentType, ImageType.Primary, null, url, cancellationToken).ConfigureAwait(false); + return true; } + + return false; } public override MetadataProviderPriority Priority |
