diff options
3 files changed, 23 insertions, 70 deletions
diff --git a/MediaBrowser.Server.Implementations/LiveTv/CleanDatabaseScheduledTask.cs b/MediaBrowser.Server.Implementations/LiveTv/CleanDatabaseScheduledTask.cs deleted file mode 100644 index bed9458ec..000000000 --- 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 33c3b97dc..be3926f4c 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; diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj index ce77b3db1..1db1f8f5b 100644 --- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj +++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj @@ -153,8 +153,8 @@ <Compile Include="EntryPoints\ServerEventNotifier.cs" /> <Compile Include="EntryPoints\UserDataChangeNotifier.cs" /> <Compile Include="FileOrganization\OrganizerScheduledTask.cs" /> - <Compile Include="HttpServer\NetListener\HttpListenerServer.cs" /> <Compile Include="HttpServer\IHttpListener.cs" /> + <Compile Include="HttpServer\NetListener\HttpListenerServer.cs" /> <Compile Include="HttpServer\Security\AuthorizationContext.cs" /> <Compile Include="HttpServer\ContainerAdapter.cs" /> <Compile Include="HttpServer\GetSwaggerResource.cs" /> @@ -222,7 +222,6 @@ <Compile Include="Library\Validators\StudiosValidator.cs" /> <Compile Include="Library\Validators\YearsPostScanTask.cs" /> <Compile Include="LiveTv\ChannelImageProvider.cs" /> - <Compile Include="LiveTv\CleanDatabaseScheduledTask.cs" /> <Compile Include="LiveTv\LiveTvConfigurationFactory.cs" /> <Compile Include="LiveTv\LiveTvDtoService.cs" /> <Compile Include="LiveTv\LiveTvManager.cs" /> |
