Converted StaleMediaTask to StaleMediaScanner for use in plugin home page. Also added a generic Media Info class that can be filtered to return the data you desire.

This commit is contained in:
2026-01-25 14:52:47 -07:00
parent 66716a9bc9
commit 04ef815a9b
10 changed files with 213 additions and 111 deletions

View File

@@ -0,0 +1,49 @@
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>();
}
}
}