aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-03-16 17:39:49 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-03-16 17:39:49 -0400
commit67f698ea9619ba7ac0c805ab01f46b730c18942f (patch)
treea8f98b338bdcb314cc47d290de34d2684c11e7d3
parent30bc82a8d389ea184794277018318ae433eae530 (diff)
update sat discovery
-rw-r--r--MediaBrowser.Model/LiveTv/LiveTvOptions.cs1
-rw-r--r--MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpDiscovery.cs39
-rw-r--r--MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpHost.cs2
3 files changed, 25 insertions, 17 deletions
diff --git a/MediaBrowser.Model/LiveTv/LiveTvOptions.cs b/MediaBrowser.Model/LiveTv/LiveTvOptions.cs
index f92a0c6e2..71f87ac3a 100644
--- a/MediaBrowser.Model/LiveTv/LiveTvOptions.cs
+++ b/MediaBrowser.Model/LiveTv/LiveTvOptions.cs
@@ -33,6 +33,7 @@ namespace MediaBrowser.Model.LiveTv
public bool ImportFavoritesOnly { get; set; }
public bool IsEnabled { get; set; }
public string M3UUrl { get; set; }
+ public string InfoUrl { get; set; }
public string FriendlyName { get; set; }
public int Tuners { get; set; }
public string DiseqC { get; set; }
diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpDiscovery.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpDiscovery.cs
index 19b91a34f..cdeb6dfa8 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpDiscovery.cs
+++ b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpDiscovery.cs
@@ -17,6 +17,7 @@ using MediaBrowser.Controller.Plugins;
using MediaBrowser.Model.LiveTv;
using MediaBrowser.Model.Logging;
using MediaBrowser.Model.Serialization;
+using MediaBrowser.Model.Extensions;
namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp
{
@@ -64,26 +65,33 @@ namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp
_logger.Debug("SAT IP found at {0}", location);
// Just get the beginning of the url
- AddDevice(location);
+ Uri uri;
+ if (Uri.TryCreate(location, UriKind.Absolute, out uri))
+ {
+ var apiUrl = location.Replace(uri.LocalPath, String.Empty, StringComparison.OrdinalIgnoreCase)
+ .TrimEnd('/');
+
+ AddDevice(apiUrl, location);
+ }
}
}
}
- private async void AddDevice(string location)
+ private async void AddDevice(string deviceUrl, string infoUrl)
{
await _semaphore.WaitAsync().ConfigureAwait(false);
try
{
var options = GetConfiguration();
-
- if (options.TunerHosts.Any(i => string.Equals(i.Type, SatIpHost.DeviceType, StringComparison.OrdinalIgnoreCase) && UriEquals(i.Url, location)))
+
+ if (options.TunerHosts.Any(i => string.Equals(i.Type, SatIpHost.DeviceType, StringComparison.OrdinalIgnoreCase) && UriEquals(i.Url, deviceUrl)))
{
return;
}
-
- _logger.Debug("Will attempt to add SAT device {0}", location);
- var info = await GetInfo(location, CancellationToken.None).ConfigureAwait(false);
+
+ _logger.Debug("Will attempt to add SAT device {0}", deviceUrl);
+ var info = await GetInfo(infoUrl, CancellationToken.None).ConfigureAwait(false);
var existing = GetConfiguration().TunerHosts
.FirstOrDefault(i => string.Equals(i.Type, SatIpHost.DeviceType, StringComparison.OrdinalIgnoreCase) && string.Equals(i.DeviceId, info.DeviceId, StringComparison.OrdinalIgnoreCase));
@@ -98,7 +106,8 @@ namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp
await _liveTvManager.SaveTunerHost(new TunerHostInfo
{
Type = SatIpHost.DeviceType,
- Url = location,
+ Url = deviceUrl,
+ InfoUrl = infoUrl,
DataVersion = 1,
DeviceId = info.DeviceId,
FriendlyName = info.FriendlyName,
@@ -110,14 +119,12 @@ namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp
}
else
{
- if (!string.Equals(existing.Url, location, StringComparison.OrdinalIgnoreCase))
- {
- existing.Url = location;
- existing.M3UUrl = info.M3UUrl;
- existing.FriendlyName = info.FriendlyName;
- existing.Tuners = info.Tuners;
- await _liveTvManager.SaveTunerHost(existing).ConfigureAwait(false);
- }
+ existing.Url = deviceUrl;
+ existing.InfoUrl = infoUrl;
+ existing.M3UUrl = info.M3UUrl;
+ existing.FriendlyName = info.FriendlyName;
+ existing.Tuners = info.Tuners;
+ await _liveTvManager.SaveTunerHost(existing).ConfigureAwait(false);
}
}
catch (OperationCanceledException)
diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpHost.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpHost.cs
index 4bbb7e85c..48acbfee3 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpHost.cs
+++ b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpHost.cs
@@ -116,7 +116,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp
protected override async Task<bool> IsAvailableInternal(TunerHostInfo tuner, string channelId, CancellationToken cancellationToken)
{
- var updatedInfo = await SatIpDiscovery.Current.GetInfo(tuner.Url, cancellationToken).ConfigureAwait(false);
+ var updatedInfo = await SatIpDiscovery.Current.GetInfo(tuner.InfoUrl, cancellationToken).ConfigureAwait(false);
return updatedInfo.TunersAvailable > 0;
}