diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-08-15 17:58:52 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-08-15 17:58:52 -0400 |
| commit | e376c31436c72fa870a2c1991ff48d3543069ce0 (patch) | |
| tree | 0a529cac3cd9ea00dd875b92c486fd05c9777dc0 | |
| parent | 8e4c9940ee13cb81e0ea8da2b867b517bedc59ec (diff) | |
fix subs not starting initially
| -rw-r--r-- | MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs | 31 |
1 files changed, 12 insertions, 19 deletions
diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs b/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs index cf294997b..6e5749250 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs @@ -238,20 +238,18 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV return Task.FromResult(0); } - public Task CreateSeriesTimerAsync(SeriesTimerInfo info, CancellationToken cancellationToken) + public async Task CreateSeriesTimerAsync(SeriesTimerInfo info, CancellationToken cancellationToken) { info.Id = Guid.NewGuid().ToString("N"); - UpdateTimersForSeriesTimer(info); + await UpdateTimersForSeriesTimer(info).ConfigureAwait(false); _seriesTimerProvider.Add(info); - return Task.FromResult(true); } - public Task UpdateSeriesTimerAsync(SeriesTimerInfo info, CancellationToken cancellationToken) + public async Task UpdateSeriesTimerAsync(SeriesTimerInfo info, CancellationToken cancellationToken) { _seriesTimerProvider.Update(info); - UpdateTimersForSeriesTimer(info); - return Task.FromResult(true); + await UpdateTimersForSeriesTimer(info).ConfigureAwait(false); } public Task UpdateTimerAsync(TimerInfo info, CancellationToken cancellationToken) @@ -594,12 +592,14 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV return _config.GetConfiguration<LiveTvOptions>("livetv"); } - private void UpdateTimersForSeriesTimer(SeriesTimerInfo seriesTimer) + private async Task UpdateTimersForSeriesTimer(SeriesTimerInfo seriesTimer) { List<ProgramInfo> epgData; if (seriesTimer.RecordAnyChannel) { - epgData = GetEpgDataForAllChannels(); + var channels = await GetChannelsAsync(CancellationToken.None).ConfigureAwait(false); + var channelIds = channels.Select(i => i.Id).ToList(); + epgData = GetEpgDataForChannels(channelIds); } else { @@ -656,9 +656,9 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV allPrograms = allPrograms.Where(epg => string.Equals(epg.ChannelId, seriesTimer.ChannelId, StringComparison.OrdinalIgnoreCase)); } - allPrograms = allPrograms.Where(epg => seriesTimer.Days.Contains(epg.StartDate.DayOfWeek)); + allPrograms = allPrograms.Where(i => seriesTimer.Days.Contains(i.StartDate.DayOfWeek)); - return allPrograms.Where(epg => string.Equals(epg.SeriesId, seriesTimer.SeriesId, StringComparison.OrdinalIgnoreCase)); + return allPrograms.Where(i => string.Equals(i.SeriesId, seriesTimer.SeriesId, StringComparison.OrdinalIgnoreCase)); } private string GetChannelEpgCachePath(string channelId) @@ -690,16 +690,9 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV return new List<ProgramInfo>(); } } - private List<ProgramInfo> GetEpgDataForAllChannels() + private List<ProgramInfo> GetEpgDataForChannels(List<string> channelIds) { - List<ProgramInfo> channelEpg = new List<ProgramInfo>(); - DirectoryInfo dir = new DirectoryInfo(Path.Combine(DataPath, "epg")); - List<string> channels = dir.GetFiles("*").Where(i => string.Equals(i.Extension, ".json", StringComparison.OrdinalIgnoreCase)).Select(f => f.Name).ToList(); - foreach (var channel in channels) - { - channelEpg.AddRange(GetEpgDataForChannel(channel)); - } - return channelEpg; + return channelIds.SelectMany(GetEpgDataForChannel).ToList(); } public void Dispose() |
