Updated state to scan library first before looking for stale media to ensure data in table is accurate

This commit is contained in:
2026-03-10 07:43:53 -06:00
parent a10769779a
commit 1de8e31468
4 changed files with 21 additions and 5 deletions

View File

@@ -11,18 +11,32 @@ using System.Net.Http;
using System;
using System.Text.Json;
using System.Globalization;
using MediaBrowser.Model.Tasks;
using Microsoft.AspNetCore.Mvc;
namespace Jellyfin.Plugin.MediaCleaner.Data;
public class MediaCleanerState(ILogger<StaleMediaScanner> logger, ILibraryManager libraryManager)
public class MediaCleanerState(ILogger<StaleMediaScanner> logger, ILibraryManager libraryManager, ITaskManager taskManager)
{
private readonly Lock _lock = new();
private IEnumerable<MediaInfo> _mediaInfo = [];
private readonly StaleMediaScanner _staleMediaScanner = new(logger, libraryManager);
// private readonly ILibraryManager _libraryManager = libraryManager;
private readonly ITaskManager _taskManager = taskManager;
public async Task UpdateState()
{
// First re-scan library and then scan for stale media.
IScheduledTaskWorker? refreshLibraryWorker = _taskManager.ScheduledTasks.FirstOrDefault(task => task.ScheduledTask.Key == "RefreshLibrary");
if(refreshLibraryWorker != null)
{
await _taskManager.Execute(refreshLibraryWorker, new TaskOptions()).ConfigureAwait(false);
}
_mediaInfo = await _staleMediaScanner.ScanStaleMedia().ConfigureAwait(false);
return;
}
public async Task<IEnumerable<SeriesInfo>> GetTvSeriesInfo()