mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-07-09 03:04:24 -04:00
merge live tv tasks
This commit is contained in:
parent
7c880201ed
commit
f1a715b836
@ -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; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -2,6 +2,7 @@
|
|||||||
using MediaBrowser.Common.Configuration;
|
using MediaBrowser.Common.Configuration;
|
||||||
using MediaBrowser.Common.Extensions;
|
using MediaBrowser.Common.Extensions;
|
||||||
using MediaBrowser.Common.IO;
|
using MediaBrowser.Common.IO;
|
||||||
|
using MediaBrowser.Common.Progress;
|
||||||
using MediaBrowser.Common.ScheduledTasks;
|
using MediaBrowser.Common.ScheduledTasks;
|
||||||
using MediaBrowser.Controller.Channels;
|
using MediaBrowser.Controller.Channels;
|
||||||
using MediaBrowser.Controller.Configuration;
|
using MediaBrowser.Controller.Configuration;
|
||||||
@ -475,7 +476,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
|||||||
item.ProviderImageUrl = channelInfo.ImageUrl;
|
item.ProviderImageUrl = channelInfo.ImageUrl;
|
||||||
item.HasProviderImage = channelInfo.HasImage;
|
item.HasProviderImage = channelInfo.HasImage;
|
||||||
item.ProviderImagePath = channelInfo.ImagePath;
|
item.ProviderImagePath = channelInfo.ImagePath;
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(item.Name))
|
if (string.IsNullOrEmpty(item.Name))
|
||||||
{
|
{
|
||||||
item.Name = channelInfo.Name;
|
item.Name = channelInfo.Name;
|
||||||
@ -887,7 +888,13 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
|||||||
|
|
||||||
try
|
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
|
finally
|
||||||
{
|
{
|
||||||
@ -998,14 +1005,6 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
|||||||
|
|
||||||
public async Task CleanDatabase(IProgress<double> progress, CancellationToken cancellationToken)
|
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);
|
await _refreshSemaphore.WaitAsync(cancellationToken).ConfigureAwait(false);
|
||||||
|
|
||||||
try
|
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)
|
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 list = _itemRepo.GetItemsOfType(typeof(LiveTvProgram)).ToList();
|
||||||
|
|
||||||
var numComplete = 0;
|
var numComplete = 0;
|
||||||
|
@ -153,8 +153,8 @@
|
|||||||
<Compile Include="EntryPoints\ServerEventNotifier.cs" />
|
<Compile Include="EntryPoints\ServerEventNotifier.cs" />
|
||||||
<Compile Include="EntryPoints\UserDataChangeNotifier.cs" />
|
<Compile Include="EntryPoints\UserDataChangeNotifier.cs" />
|
||||||
<Compile Include="FileOrganization\OrganizerScheduledTask.cs" />
|
<Compile Include="FileOrganization\OrganizerScheduledTask.cs" />
|
||||||
<Compile Include="HttpServer\NetListener\HttpListenerServer.cs" />
|
|
||||||
<Compile Include="HttpServer\IHttpListener.cs" />
|
<Compile Include="HttpServer\IHttpListener.cs" />
|
||||||
|
<Compile Include="HttpServer\NetListener\HttpListenerServer.cs" />
|
||||||
<Compile Include="HttpServer\Security\AuthorizationContext.cs" />
|
<Compile Include="HttpServer\Security\AuthorizationContext.cs" />
|
||||||
<Compile Include="HttpServer\ContainerAdapter.cs" />
|
<Compile Include="HttpServer\ContainerAdapter.cs" />
|
||||||
<Compile Include="HttpServer\GetSwaggerResource.cs" />
|
<Compile Include="HttpServer\GetSwaggerResource.cs" />
|
||||||
@ -222,7 +222,6 @@
|
|||||||
<Compile Include="Library\Validators\StudiosValidator.cs" />
|
<Compile Include="Library\Validators\StudiosValidator.cs" />
|
||||||
<Compile Include="Library\Validators\YearsPostScanTask.cs" />
|
<Compile Include="Library\Validators\YearsPostScanTask.cs" />
|
||||||
<Compile Include="LiveTv\ChannelImageProvider.cs" />
|
<Compile Include="LiveTv\ChannelImageProvider.cs" />
|
||||||
<Compile Include="LiveTv\CleanDatabaseScheduledTask.cs" />
|
|
||||||
<Compile Include="LiveTv\LiveTvConfigurationFactory.cs" />
|
<Compile Include="LiveTv\LiveTvConfigurationFactory.cs" />
|
||||||
<Compile Include="LiveTv\LiveTvDtoService.cs" />
|
<Compile Include="LiveTv\LiveTvDtoService.cs" />
|
||||||
<Compile Include="LiveTv\LiveTvManager.cs" />
|
<Compile Include="LiveTv\LiveTvManager.cs" />
|
||||||
|
Loading…
x
Reference in New Issue
Block a user