From 2d29a77dce289185fda3a01c04a054cc1e5f5b68 Mon Sep 17 00:00:00 2001 From: Alex Stevens Date: Wed, 8 Jun 2016 10:43:18 +0100 Subject: [PATCH] Added code to GetChannels and fixed IsPremiere to use the new XmlTvPremiere object --- .../LiveTv/Listings/XmlTvListingsProvider.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/MediaBrowser.Server.Implementations/LiveTv/Listings/XmlTvListingsProvider.cs b/MediaBrowser.Server.Implementations/LiveTv/Listings/XmlTvListingsProvider.cs index d9b7e8f4be..3627181128 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/Listings/XmlTvListingsProvider.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/Listings/XmlTvListingsProvider.cs @@ -66,7 +66,6 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings return cacheFile; } - // TODO: Should this method be async? public async Task> GetProgramsAsync(ListingsProviderInfo info, string channelNumber, string channelName, DateTime startDateUtc, DateTime endDateUtc, CancellationToken cancellationToken) { var path = await GetXml(info.Path, cancellationToken).ConfigureAwait(false); @@ -89,7 +88,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings SeasonNumber = p.Episode == null ? null : p.Episode.Series, IsSeries = p.IsSeries, IsRepeat = p.IsRepeat, - // IsPremiere = !p.PreviouslyShown.HasValue, + IsPremiere = p.Premiere != null, IsKids = p.Categories.Any(c => info.KidsCategories.Contains(c, StringComparer.InvariantCultureIgnoreCase)), IsMovie = p.Categories.Any(c => info.MovieCategories.Contains(c, StringComparer.InvariantCultureIgnoreCase)), IsNews = p.Categories.Any(c => info.NewsCategories.Contains(c, StringComparer.InvariantCultureIgnoreCase)), @@ -147,7 +146,17 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings public async Task> GetChannels(ListingsProviderInfo info, CancellationToken cancellationToken) { - return new List(); + // In theory this should never be called because there is always only one lineup + var reader = new XmlTvReader(info.Path, GetLanguage(), null); + var results = reader.GetChannels(); + + // Should this method be async? + return results.Select(c => new ChannelInfo() + { + Id = c.Id, + Name = c.DisplayName, + ImageUrl = c.Icon != null && !String.IsNullOrEmpty(c.Icon.Source) ? c.Icon.Source : null + }).ToList(); } } } \ No newline at end of file