From 126aa9c893a5b5e3107ca9b6355d354753d45ed3 Mon Sep 17 00:00:00 2001 From: Patrick Barron Date: Tue, 9 Jan 2024 09:54:02 -0500 Subject: Move channels to LiveTv project --- .../Channels/ChannelPostScanTask.cs | 100 --------------------- 1 file changed, 100 deletions(-) delete mode 100644 Emby.Server.Implementations/Channels/ChannelPostScanTask.cs (limited to 'Emby.Server.Implementations/Channels/ChannelPostScanTask.cs') diff --git a/Emby.Server.Implementations/Channels/ChannelPostScanTask.cs b/Emby.Server.Implementations/Channels/ChannelPostScanTask.cs deleted file mode 100644 index b358ba4d5..000000000 --- a/Emby.Server.Implementations/Channels/ChannelPostScanTask.cs +++ /dev/null @@ -1,100 +0,0 @@ -using System; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using Jellyfin.Data.Enums; -using MediaBrowser.Controller.Channels; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Library; -using Microsoft.Extensions.Logging; - -namespace Emby.Server.Implementations.Channels -{ - /// - /// A task to remove all non-installed channels from the database. - /// - public class ChannelPostScanTask - { - private readonly IChannelManager _channelManager; - private readonly ILogger _logger; - private readonly ILibraryManager _libraryManager; - - /// - /// Initializes a new instance of the class. - /// - /// The channel manager. - /// The logger. - /// The library manager. - public ChannelPostScanTask(IChannelManager channelManager, ILogger logger, ILibraryManager libraryManager) - { - _channelManager = channelManager; - _logger = logger; - _libraryManager = libraryManager; - } - - /// - /// Runs this task. - /// - /// The progress. - /// The cancellation token. - /// The completed task. - public Task Run(IProgress progress, CancellationToken cancellationToken) - { - CleanDatabase(cancellationToken); - - progress.Report(100); - return Task.CompletedTask; - } - - private void CleanDatabase(CancellationToken cancellationToken) - { - var installedChannelIds = ((ChannelManager)_channelManager).GetInstalledChannelIds(); - - var uninstalledChannels = _libraryManager.GetItemList(new InternalItemsQuery - { - IncludeItemTypes = new[] { BaseItemKind.Channel }, - ExcludeItemIds = installedChannelIds.ToArray() - }); - - foreach (var channel in uninstalledChannels) - { - cancellationToken.ThrowIfCancellationRequested(); - - CleanChannel((Channel)channel, cancellationToken); - } - } - - private void CleanChannel(Channel channel, CancellationToken cancellationToken) - { - _logger.LogInformation("Cleaning channel {0} from database", channel.Id); - - // Delete all channel items - var items = _libraryManager.GetItemList(new InternalItemsQuery - { - ChannelIds = new[] { channel.Id } - }); - - foreach (var item in items) - { - cancellationToken.ThrowIfCancellationRequested(); - - _libraryManager.DeleteItem( - item, - new DeleteOptions - { - DeleteFileLocation = false - }, - false); - } - - // Finally, delete the channel itself - _libraryManager.DeleteItem( - channel, - new DeleteOptions - { - DeleteFileLocation = false - }, - false); - } - } -} -- cgit v1.2.3