aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Controller/LiveTv/Channel.cs2
-rw-r--r--MediaBrowser.Controller/LiveTv/ChannelInfo.cs6
-rw-r--r--MediaBrowser.Controller/LiveTv/ProgramInfo.cs6
-rw-r--r--MediaBrowser.Controller/LiveTv/RecordingInfo.cs6
-rw-r--r--MediaBrowser.Server.Implementations/LiveTv/ChannelImageProvider.cs22
-rw-r--r--MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs3
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
/// <value>The type of the channel.</value>
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
/// </summary>
/// <value>The type of the channel.</value>
public ChannelType ChannelType { get; set; }
+
+ /// <summary>
+ /// 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.
+ /// </summary>
+ 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
/// </summary>
/// <value>The episode title.</value>
public string EpisodeTitle { get; set; }
+
+ /// <summary>
+ /// 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.
+ /// </summary>
+ 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
/// <value>The community rating.</value>
public float? CommunityRating { get; set; }
+ /// <summary>
+ /// 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.
+ /// </summary>
+ public bool? HasImage { get; set; }
+
public RecordingInfo()
{
Genres = new List<string>();
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
- {
- await DownloadImage(item, cancellationToken).ConfigureAwait(false);
- }
- catch (HttpException ex)
+ var channel = (Channel)item;
+
+ if (channel.HasProviderImage ?? true)
{
- // 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;