update schedules direct

This commit is contained in:
Luke Pulverenti 2015-07-23 13:58:20 -04:00
parent f5c83f5578
commit f7c1a88166
7 changed files with 45 additions and 18 deletions

View File

@ -369,6 +369,9 @@ namespace MediaBrowser.Api.LiveTv
[ApiMember(Name = "Location", Description = "Location", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")] [ApiMember(Name = "Location", Description = "Location", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
public string Location { get; set; } public string Location { get; set; }
[ApiMember(Name = "Country", Description = "Country", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
public string Country { get; set; }
} }
public class LiveTvService : BaseApiService public class LiveTvService : BaseApiService
@ -436,7 +439,7 @@ namespace MediaBrowser.Api.LiveTv
public async Task<object> Get(GetLineups request) public async Task<object> Get(GetLineups request)
{ {
var info = await _liveTvManager.GetLineups(request.Id, request.Location).ConfigureAwait(false); var info = await _liveTvManager.GetLineups(request.Id, request.Country, request.Location).ConfigureAwait(false);
return ToOptimizedSerializedResultUsingCache(info); return ToOptimizedSerializedResultUsingCache(info);
} }

View File

@ -14,6 +14,6 @@ namespace MediaBrowser.Controller.LiveTv
Task<IEnumerable<ProgramInfo>> GetProgramsAsync(ListingsProviderInfo info, string channelNumber, DateTime startDateUtc, DateTime endDateUtc, CancellationToken cancellationToken); Task<IEnumerable<ProgramInfo>> GetProgramsAsync(ListingsProviderInfo info, string channelNumber, DateTime startDateUtc, DateTime endDateUtc, CancellationToken cancellationToken);
Task AddMetadata(ListingsProviderInfo info, List<ChannelInfo> channels, CancellationToken cancellationToken); Task AddMetadata(ListingsProviderInfo info, List<ChannelInfo> channels, CancellationToken cancellationToken);
Task Validate(ListingsProviderInfo info); Task Validate(ListingsProviderInfo info);
Task<List<NameIdPair>> GetLineups(ListingsProviderInfo info, string location); Task<List<NameIdPair>> GetLineups(ListingsProviderInfo info, string country, string location);
} }
} }

View File

@ -355,8 +355,9 @@ namespace MediaBrowser.Controller.LiveTv
/// Gets the lineups. /// Gets the lineups.
/// </summary> /// </summary>
/// <param name="providerId">The provider identifier.</param> /// <param name="providerId">The provider identifier.</param>
/// <param name="country">The country.</param>
/// <param name="location">The location.</param> /// <param name="location">The location.</param>
/// <returns>Task&lt;List&lt;NameIdPair&gt;&gt;.</returns> /// <returns>Task&lt;List&lt;NameIdPair&gt;&gt;.</returns>
Task<List<NameIdPair>> GetLineups(string providerId, string location); Task<List<NameIdPair>> GetLineups(string providerId, string country, string location);
} }
} }

View File

@ -387,7 +387,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
return images; return images;
} }
public async Task<List<NameIdPair>> GetHeadends(ListingsProviderInfo info, string location, CancellationToken cancellationToken) public async Task<List<NameIdPair>> GetHeadends(ListingsProviderInfo info, string country, string location, CancellationToken cancellationToken)
{ {
var token = await GetToken(info, cancellationToken); var token = await GetToken(info, cancellationToken);
@ -400,9 +400,13 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
_logger.Info("Headends on account "); _logger.Info("Headends on account ");
var countryParam = string.Equals("ca", country, StringComparison.OrdinalIgnoreCase)
? "Canada"
: "USA";
var options = new HttpRequestOptions() var options = new HttpRequestOptions()
{ {
Url = ApiUrl + "/headends?country=USA&postalcode=" + location, Url = ApiUrl + "/headends?country=" + countryParam + "&postalcode=" + location,
UserAgent = UserAgent, UserAgent = UserAgent,
CancellationToken = cancellationToken CancellationToken = cancellationToken
}; };
@ -839,12 +843,12 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
public async Task Validate(ListingsProviderInfo info) public async Task Validate(ListingsProviderInfo info)
{ {
await AddLineupToAccount(info, CancellationToken.None).ConfigureAwait(false); //await AddLineupToAccount(info, CancellationToken.None).ConfigureAwait(false);
} }
public Task<List<NameIdPair>> GetLineups(ListingsProviderInfo info, string location) public Task<List<NameIdPair>> GetLineups(ListingsProviderInfo info, string country, string location)
{ {
return GetHeadends(info, location, CancellationToken.None); return GetHeadends(info, country, location, CancellationToken.None);
} }
} }
} }

View File

@ -2238,7 +2238,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
return info; return info;
} }
public Task<List<NameIdPair>> GetLineups(string providerId, string location) public Task<List<NameIdPair>> GetLineups(string providerId, string country, string location)
{ {
var config = GetConfiguration(); var config = GetConfiguration();
@ -2251,7 +2251,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
throw new ResourceNotFoundException(); throw new ResourceNotFoundException();
} }
return provider.GetLineups(info, location); return provider.GetLineups(info, country, location);
} }
} }
} }

View File

@ -1,5 +1,7 @@
using MediaBrowser.Common.ScheduledTasks; using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.ScheduledTasks;
using MediaBrowser.Controller.LiveTv; using MediaBrowser.Controller.LiveTv;
using MediaBrowser.Model.LiveTv;
using MediaBrowser.Model.Tasks; using MediaBrowser.Model.Tasks;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -10,10 +12,12 @@ namespace MediaBrowser.Server.Implementations.LiveTv
class RefreshChannelsScheduledTask : IScheduledTask, IConfigurableScheduledTask, IHasKey class RefreshChannelsScheduledTask : IScheduledTask, IConfigurableScheduledTask, IHasKey
{ {
private readonly ILiveTvManager _liveTvManager; private readonly ILiveTvManager _liveTvManager;
private readonly IConfigurationManager _config;
public RefreshChannelsScheduledTask(ILiveTvManager liveTvManager) public RefreshChannelsScheduledTask(ILiveTvManager liveTvManager, IConfigurationManager config)
{ {
_liveTvManager = liveTvManager; _liveTvManager = liveTvManager;
_config = config;
} }
public string Name public string Name
@ -50,9 +54,14 @@ namespace MediaBrowser.Server.Implementations.LiveTv
}; };
} }
private LiveTvOptions GetConfiguration()
{
return _config.GetConfiguration<LiveTvOptions>("livetv");
}
public bool IsHidden public bool IsHidden
{ {
get { return _liveTvManager.Services.Count == 0; } get { return _liveTvManager.Services.Count == 1 && GetConfiguration().TunerHosts.Count == 0; }
} }
public bool IsEnabled public bool IsEnabled

View File

@ -91,15 +91,25 @@ namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.HdHomerun
private bool UriEquals(string savedUri, string location) private bool UriEquals(string savedUri, string location)
{ {
if (!savedUri.StartsWith("http", StringComparison.OrdinalIgnoreCase)) return string.Equals(NormalizeUrl(location), NormalizeUrl(savedUri), StringComparison.OrdinalIgnoreCase);
}
private string NormalizeUrl(string url)
{
if (!url.StartsWith("http", StringComparison.OrdinalIgnoreCase))
{ {
savedUri = "http://" + savedUri; url = "http://" + url;
} }
savedUri = savedUri.TrimEnd('/'); url = url.TrimEnd('/');
location = location.TrimEnd('/');
return string.Equals(location, savedUri, StringComparison.OrdinalIgnoreCase); // If there isn't a port, add the default port of 80
if (url.Split(':').Length < 3)
{
url += ":80";
}
return url;
} }
private LiveTvOptions GetConfiguration() private LiveTvOptions GetConfiguration()