update tv

This commit is contained in:
Luke Pulverenti 2015-08-10 15:09:10 -04:00
parent 4f6fb1a76e
commit 1e9292c454
6 changed files with 32 additions and 14 deletions

View File

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

View File

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

View File

@ -48,7 +48,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings.Emby
public Task<List<NameIdPair>> GetLineups(ListingsProviderInfo info, string country, string location)
{
return GetListingsProvider(country).GetLineups(info, country, location);
return GetListingsProvider(country).GetLineups(country, location);
}
private IEmbyListingProvider GetListingsProvider(string country)

View File

@ -43,7 +43,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings.Emby
return Task.FromResult(true);
}
public async Task<List<NameIdPair>> GetLineups(ListingsProviderInfo info, string country, string location)
public async Task<List<NameIdPair>> GetLineups(string country, string location)
{
// location = postal code
var path = await GetResponse<String>("https://data.emby.media/service/lineups?postalCode=" + location).ConfigureAwait(false);

View File

@ -13,6 +13,6 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings.Emby
Task<IEnumerable<ProgramInfo>> GetProgramsAsync(ListingsProviderInfo info, string channelNumber, DateTime startDateUtc, DateTime endDateUtc, CancellationToken cancellationToken);
Task AddMetadata(ListingsProviderInfo info, List<ChannelInfo> channels, CancellationToken cancellationToken);
Task Validate(ListingsProviderInfo info, bool validateLogin, bool validateListings);
Task<List<NameIdPair>> GetLineups(ListingsProviderInfo info, string country, string location);
Task<List<NameIdPair>> GetLineups(string country, string location);
}
}

View File

@ -2272,20 +2272,34 @@ namespace MediaBrowser.Server.Implementations.LiveTv
return info;
}
public Task<List<NameIdPair>> GetLineups(string providerId, string country, string location)
public Task<List<NameIdPair>> GetLineups(string providerType, string providerId, string country, string location)
{
var config = GetConfiguration();
var info = config.ListingProviders.FirstOrDefault(i => string.Equals(i.Id, providerId, StringComparison.OrdinalIgnoreCase));
var provider = _listingProviders.FirstOrDefault(i => string.Equals(info.Type, i.Type, StringComparison.OrdinalIgnoreCase));
if (provider == null)
if (string.IsNullOrWhiteSpace(providerId))
{
throw new ResourceNotFoundException();
}
var provider = _listingProviders.FirstOrDefault(i => string.Equals(providerType, i.Type, StringComparison.OrdinalIgnoreCase));
return provider.GetLineups(info, country, location);
if (provider == null)
{
throw new ResourceNotFoundException();
}
return provider.GetLineups(null, country, location);
}
else
{
var info = config.ListingProviders.FirstOrDefault(i => string.Equals(i.Id, providerId, StringComparison.OrdinalIgnoreCase));
var provider = _listingProviders.FirstOrDefault(i => string.Equals(info.Type, i.Type, StringComparison.OrdinalIgnoreCase));
if (provider == null)
{
throw new ResourceNotFoundException();
}
return provider.GetLineups(info, country, location);
}
}
}
}