Files

43 lines
1.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.ModelConfiguration;
using Jellyfin.Plugin.MediaCleaner;
using Jellyfin.Plugin.MediaCleaner.Models;
using Jellyfin.Plugin.MediaCleaner.ScheduledTasks;
using MediaBrowser.Controller.Library;
using Microsoft.Extensions.Logging;
namespace Jellyfin.Plugin.MediaCleaner.Data;
public class MediaCleanerState(ILogger<StaleMediaScanner> logger, ILibraryManager libraryManager)
{
private readonly Lock _lock = new();
private IEnumerable<MediaInfo> _mediaInfo = [];
private readonly StaleMediaScanner _staleMediaScanner = new(logger, libraryManager);
public async Task UpdateState()
{
_mediaInfo = await _staleMediaScanner.ScanStaleMedia().ConfigureAwait(false);
}
public IEnumerable<SeriesInfo> GetSeriesInfo()
{
lock (_lock)
{
return _mediaInfo.OfType<SeriesInfo>();
}
}
public IEnumerable<MovieInfo> GetMovieInfo()
{
lock (_lock)
{
return _mediaInfo.OfType<MovieInfo>();
}
}
}