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:
49
Jellyfin.Plugin.MediaCleaner/Data/MediaCleanerState.cs
Normal file
49
Jellyfin.Plugin.MediaCleaner/Data/MediaCleanerState.cs
Normal 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>();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user