From 2884920f0f4a298fb1e8a275f017144fc05fd366 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Fri, 13 Dec 2013 10:48:48 -0500 Subject: [PATCH] added HasImage to live tv objects --- MediaBrowser.Controller/LiveTv/Channel.cs | 2 ++ MediaBrowser.Controller/LiveTv/ChannelInfo.cs | 6 +++++ MediaBrowser.Controller/LiveTv/ProgramInfo.cs | 6 +++++ .../LiveTv/RecordingInfo.cs | 6 +++++ .../LiveTv/ChannelImageProvider.cs | 22 +++++++++++-------- .../LiveTv/LiveTvManager.cs | 3 ++- 6 files changed, 35 insertions(+), 10 deletions(-) diff --git a/MediaBrowser.Controller/LiveTv/Channel.cs b/MediaBrowser.Controller/LiveTv/Channel.cs index 8097cea1d..7186cfaf3 100644 --- a/MediaBrowser.Controller/LiveTv/Channel.cs +++ b/MediaBrowser.Controller/LiveTv/Channel.cs @@ -50,6 +50,8 @@ namespace MediaBrowser.Controller.LiveTv /// The type of the channel. public ChannelType ChannelType { get; set; } + public bool? HasProviderImage { get; set; } + protected override string CreateSortName() { double number = 0; diff --git a/MediaBrowser.Controller/LiveTv/ChannelInfo.cs b/MediaBrowser.Controller/LiveTv/ChannelInfo.cs index 27fc59630..bb0636673 100644 --- a/MediaBrowser.Controller/LiveTv/ChannelInfo.cs +++ b/MediaBrowser.Controller/LiveTv/ChannelInfo.cs @@ -30,5 +30,11 @@ namespace MediaBrowser.Controller.LiveTv /// /// The type of the channel. public ChannelType ChannelType { get; set; } + + /// + /// Set this value to true or false if it is known via channel info whether there is an image or not. + /// Leave it null if the only way to determine is by requesting the image and handling the failure. + /// + public bool? HasImage { get; set; } } } diff --git a/MediaBrowser.Controller/LiveTv/ProgramInfo.cs b/MediaBrowser.Controller/LiveTv/ProgramInfo.cs index 8059c1100..ce7a4a598 100644 --- a/MediaBrowser.Controller/LiveTv/ProgramInfo.cs +++ b/MediaBrowser.Controller/LiveTv/ProgramInfo.cs @@ -90,6 +90,12 @@ namespace MediaBrowser.Controller.LiveTv /// /// The episode title. public string EpisodeTitle { get; set; } + + /// + /// Set this value to true or false if it is known via program info whether there is an image or not. + /// Leave it null if the only way to determine is by requesting the image and handling the failure. + /// + public bool? HasImage { get; set; } public ProgramInfo() { diff --git a/MediaBrowser.Controller/LiveTv/RecordingInfo.cs b/MediaBrowser.Controller/LiveTv/RecordingInfo.cs index 1ffbb7e23..4fc8c0f7a 100644 --- a/MediaBrowser.Controller/LiveTv/RecordingInfo.cs +++ b/MediaBrowser.Controller/LiveTv/RecordingInfo.cs @@ -107,6 +107,12 @@ namespace MediaBrowser.Controller.LiveTv /// The community rating. public float? CommunityRating { get; set; } + /// + /// Set this value to true or false if it is known via recording info whether there is an image or not. + /// Leave it null if the only way to determine is by requesting the image and handling the failure. + /// + public bool? HasImage { get; set; } + public RecordingInfo() { Genres = new List(); diff --git a/MediaBrowser.Server.Implementations/LiveTv/ChannelImageProvider.cs b/MediaBrowser.Server.Implementations/LiveTv/ChannelImageProvider.cs index e16430e69..3a2413540 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/ChannelImageProvider.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/ChannelImageProvider.cs @@ -44,20 +44,24 @@ namespace MediaBrowser.Server.Implementations.LiveTv return true; } - try + var channel = (Channel)item; + + if (channel.HasProviderImage ?? true) { - await DownloadImage(item, cancellationToken).ConfigureAwait(false); - } - catch (HttpException ex) - { - // Don't fail the provider on a 404 - if (!ex.StatusCode.HasValue || ex.StatusCode.Value != HttpStatusCode.NotFound) + try { - throw; + await DownloadImage(item, cancellationToken).ConfigureAwait(false); + } + catch (HttpException ex) + { + // Don't fail the provider on a 404 + if (!ex.StatusCode.HasValue || ex.StatusCode.Value != HttpStatusCode.NotFound) + { + throw; + } } } - SetLastRefreshed(item, DateTime.UtcNow, providerInfo); return true; } diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs index b2796bc68..4cd18a523 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs @@ -269,7 +269,8 @@ namespace MediaBrowser.Server.Implementations.LiveTv Path = path, ChannelId = channelInfo.Id, ChannelNumber = channelInfo.Number, - ServiceName = serviceName + ServiceName = serviceName, + HasProviderImage = channelInfo.HasImage }; isNew = true;