handle HDHR's with older firmware

This commit is contained in:
Luke Pulverenti 2016-07-07 23:22:16 -04:00
parent f952ac0f1f
commit 9fdc9faba2

View File

@ -17,6 +17,7 @@ using System.Threading.Tasks;
using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Extensions;
using MediaBrowser.Controller.MediaEncoding; using MediaBrowser.Controller.MediaEncoding;
using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Net;
namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.HdHomerun namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.HdHomerun
{ {
@ -106,18 +107,31 @@ namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.HdHomerun
private async Task<string> GetModelInfo(TunerHostInfo info, CancellationToken cancellationToken) private async Task<string> GetModelInfo(TunerHostInfo info, CancellationToken cancellationToken)
{ {
using (var stream = await _httpClient.Get(new HttpRequestOptions() try
{ {
Url = string.Format("{0}/discover.json", GetApiUrl(info, false)), using (var stream = await _httpClient.Get(new HttpRequestOptions()
CancellationToken = cancellationToken, {
CacheLength = TimeSpan.FromDays(1), Url = string.Format("{0}/discover.json", GetApiUrl(info, false)),
CacheMode = CacheMode.Unconditional, CancellationToken = cancellationToken,
TimeoutMs = Convert.ToInt32(TimeSpan.FromSeconds(5).TotalMilliseconds) CacheLength = TimeSpan.FromDays(1),
})) CacheMode = CacheMode.Unconditional,
{ TimeoutMs = Convert.ToInt32(TimeSpan.FromSeconds(5).TotalMilliseconds)
var response = JsonSerializer.DeserializeFromStream<DiscoverResponse>(stream); }))
{
var response = JsonSerializer.DeserializeFromStream<DiscoverResponse>(stream);
return response.ModelNumber; return response.ModelNumber;
}
}
catch (HttpException ex)
{
if (ex.StatusCode.HasValue && ex.StatusCode.Value == System.Net.HttpStatusCode.NotFound)
{
// HDHR4 doesn't have this api
return "HDHR";
}
throw;
} }
} }
@ -455,16 +469,29 @@ namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.HdHomerun
return; return;
} }
// Test it by pulling down the lineup try
using (var stream = await _httpClient.Get(new HttpRequestOptions
{ {
Url = string.Format("{0}/discover.json", GetApiUrl(info, false)), // Test it by pulling down the lineup
CancellationToken = CancellationToken.None using (var stream = await _httpClient.Get(new HttpRequestOptions
})) {
{ Url = string.Format("{0}/discover.json", GetApiUrl(info, false)),
var response = JsonSerializer.DeserializeFromStream<DiscoverResponse>(stream); CancellationToken = CancellationToken.None
}))
{
var response = JsonSerializer.DeserializeFromStream<DiscoverResponse>(stream);
info.DeviceId = response.DeviceID; info.DeviceId = response.DeviceID;
}
}
catch (HttpException ex)
{
if (ex.StatusCode.HasValue && ex.StatusCode.Value == System.Net.HttpStatusCode.NotFound)
{
// HDHR4 doesn't have this api
return;
}
throw;
} }
} }