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 progress) - { - var manager = (LiveTvManager)_liveTvManager; - - return manager.CleanDatabase(progress, cancellationToken); - } - - public IEnumerable 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(); + innerProgress.RegisterAction(p => progress.Report(p * .9)); + await RefreshChannelsInternal(innerProgress, cancellationToken).ConfigureAwait(false); + + innerProgress = new ActionableProgress(); + 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 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 progress, CancellationToken cancellationToken) + { + return DeleteOldPrograms(_programs.Keys.ToList(), progress, cancellationToken); + } + private async Task DeleteOldPrograms(List currentIdList, IProgress progress, CancellationToken cancellationToken) { + var service = ActiveService; + + if (service == null) + { + progress.Report(100); + return; + } + var list = _itemRepo.GetItemsOfType(typeof(LiveTvProgram)).ToList(); var numComplete = 0; diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj index ce77b3db1e..1db1f8f5b4 100644 --- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj +++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj @@ -153,8 +153,8 @@ - + @@ -222,7 +222,6 @@ -