50 lines
1.3 KiB
C#
50 lines
1.3 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
|
|
{
|
|
private readonly Lock _lock = new();
|
|
private IEnumerable<MediaInfo> _mediaInfo = [];
|
|
private ILogger<StaleMediaScanner> _logger;
|
|
private readonly StaleMediaScanner _staleMediaScanner;
|
|
|
|
public MediaCleanerState(ILogger<StaleMediaScanner> logger, ILibraryManager libraryManager)
|
|
{
|
|
_logger = logger;
|
|
_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>();
|
|
}
|
|
}
|
|
}
|