diff options
| author | Luke <luke.pulverenti@gmail.com> | 2015-02-10 23:10:38 -0500 |
|---|---|---|
| committer | Luke <luke.pulverenti@gmail.com> | 2015-02-10 23:10:38 -0500 |
| commit | 177a5d78bf66df61fae7248bbe1b5ccfde4971ac (patch) | |
| tree | 55e5040e2e45d0c14f81f7e492ac4663fa672952 /MediaBrowser.Server.Implementations/LiveTv | |
| parent | adab5b362c92cdfd7ac2ae39fb23da29fc67eef2 (diff) | |
| parent | f64043004f8bc3fb3199a44023f72730a059f68f (diff) | |
Merge pull request #1008 from MediaBrowser/dev
3.0.5518.2
Diffstat (limited to 'MediaBrowser.Server.Implementations/LiveTv')
| -rw-r--r-- | MediaBrowser.Server.Implementations/LiveTv/CleanDatabaseScheduledTask.cs | 58 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs | 32 |
2 files changed, 22 insertions, 68 deletions
diff --git a/MediaBrowser.Server.Implementations/LiveTv/CleanDatabaseScheduledTask.cs b/MediaBrowser.Server.Implementations/LiveTv/CleanDatabaseScheduledTask.cs deleted file mode 100644 index bed9458ecf..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/CleanDatabaseScheduledTask.cs +++ /dev/null @@ -1,58 +0,0 @@ -using MediaBrowser.Common.ScheduledTasks; -using MediaBrowser.Controller.LiveTv; -using System; -using System.Collections.Generic; -using System.Threading.Tasks; - -namespace MediaBrowser.Server.Implementations.LiveTv -{ - class CleanDatabaseScheduledTask : IScheduledTask, IConfigurableScheduledTask - { - private readonly ILiveTvManager _liveTvManager; - - public CleanDatabaseScheduledTask(ILiveTvManager liveTvManager) - { - _liveTvManager = liveTvManager; - } - - public string Name - { - get { return "Clean TV Database"; } - } - - public string Description - { - get { return "Deletes old programs from the tv database."; } - } - - public string Category - { - get { return "Live TV"; } - } - - public Task Execute(System.Threading.CancellationToken cancellationToken, IProgress<double> progress) - { - var manager = (LiveTvManager)_liveTvManager; - - return manager.CleanDatabase(progress, cancellationToken); - } - - public IEnumerable<ITaskTrigger> GetDefaultTriggers() - { - return new ITaskTrigger[] - { - new IntervalTrigger{ Interval = TimeSpan.FromHours(12)} - }; - } - - public bool IsHidden - { - get { return _liveTvManager.ActiveService == null; } - } - - public bool IsEnabled - { - get { return true; } - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs index 33c3b97dc9..be3926f4c1 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs @@ -2,6 +2,7 @@ using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Extensions; using MediaBrowser.Common.IO; +using MediaBrowser.Common.Progress; using MediaBrowser.Common.ScheduledTasks; using MediaBrowser.Controller.Channels; using MediaBrowser.Controller.Configuration; @@ -475,7 +476,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv item.ProviderImageUrl = channelInfo.ImageUrl; item.HasProviderImage = channelInfo.HasImage; item.ProviderImagePath = channelInfo.ImagePath; - + if (string.IsNullOrEmpty(item.Name)) { item.Name = channelInfo.Name; @@ -887,7 +888,13 @@ namespace MediaBrowser.Server.Implementations.LiveTv try { - await RefreshChannelsInternal(progress, cancellationToken).ConfigureAwait(false); + var innerProgress = new ActionableProgress<double>(); + innerProgress.RegisterAction(p => progress.Report(p * .9)); + await RefreshChannelsInternal(innerProgress, cancellationToken).ConfigureAwait(false); + + innerProgress = new ActionableProgress<double>(); + innerProgress.RegisterAction(p => progress.Report(90 + (p * .1))); + await CleanDatabaseInternal(progress, cancellationToken).ConfigureAwait(false); } finally { @@ -998,14 +1005,6 @@ namespace MediaBrowser.Server.Implementations.LiveTv public async Task CleanDatabase(IProgress<double> progress, CancellationToken cancellationToken) { - var service = ActiveService; - - if (service == null) - { - progress.Report(100); - return; - } - await _refreshSemaphore.WaitAsync(cancellationToken).ConfigureAwait(false); try @@ -1018,8 +1017,21 @@ namespace MediaBrowser.Server.Implementations.LiveTv } } + private Task CleanDatabaseInternal(IProgress<double> progress, CancellationToken cancellationToken) + { + return DeleteOldPrograms(_programs.Keys.ToList(), progress, cancellationToken); + } + private async Task DeleteOldPrograms(List<Guid> currentIdList, IProgress<double> progress, CancellationToken cancellationToken) { + var service = ActiveService; + + if (service == null) + { + progress.Report(100); + return; + } + var list = _itemRepo.GetItemsOfType(typeof(LiveTvProgram)).ToList(); var numComplete = 0; |
