diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-02-19 23:53:15 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-02-19 23:53:15 -0500 |
| commit | 13e4b2a6a76df957a85e444822c816b42f2bb60c (patch) | |
| tree | 35140e9b5447937ad70744c6605b9c890cb342a2 /MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs | |
| parent | 120c8bcbb9381086bf9171eae1ba2df9b3c11bde (diff) | |
add search methods to remote metadata providers
Diffstat (limited to 'MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs index f25cf541b..989ed3c35 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs @@ -726,7 +726,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv foreach (var channelInfo in allChannelsList) { cancellationToken.ThrowIfCancellationRequested(); - + try { var item = await GetChannel(channelInfo.Item2, channelInfo.Item1, cancellationToken).ConfigureAwait(false); @@ -764,7 +764,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv foreach (var item in list) { cancellationToken.ThrowIfCancellationRequested(); - + // Avoid implicitly captured closure var currentChannel = item; @@ -793,17 +793,44 @@ namespace MediaBrowser.Server.Implementations.LiveTv double percent = numComplete; percent /= allChannelsList.Count; - progress.Report(80 * percent + 10); + progress.Report(70 * percent + 10); } _programs = programs.ToDictionary(i => i.Id); + progress.Report(80); // Load these now which will prefetch metadata await GetRecordings(new RecordingQuery(), cancellationToken).ConfigureAwait(false); - + progress.Report(85); + + await DeleteOldPrograms(_programs.Keys.ToList(), progress, cancellationToken).ConfigureAwait(false); + progress.Report(100); } + private async Task DeleteOldPrograms(List<Guid> currentIdList, IProgress<double> progress, CancellationToken cancellationToken) + { + var list = _itemRepo.GetItemsOfType(typeof(LiveTvProgram)).ToList(); + + var numComplete = 0; + + foreach (var program in list) + { + cancellationToken.ThrowIfCancellationRequested(); + + if (!currentIdList.Contains(program.Id)) + { + await _libraryManager.DeleteItem(program).ConfigureAwait(false); + } + + numComplete++; + double percent = numComplete; + percent /= list.Count; + + progress.Report(15 * percent + 85); + } + } + private double GetGuideDays(int channelCount) { if (_config.Configuration.LiveTvOptions.GuideDays.HasValue) |
