From 6b20bc08280fdb8c96c71cd8ba1a2e6053855e1d Mon Sep 17 00:00:00 2001 From: Thomas Gander Date: Wed, 3 Dec 2025 23:00:19 -0700 Subject: [PATCH] Fixed bug for nullable movie user data --- .../ScheduledTasks/StaleMediaTask.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Jellyfin.Plugin.MediaCleaner/ScheduledTasks/StaleMediaTask.cs b/Jellyfin.Plugin.MediaCleaner/ScheduledTasks/StaleMediaTask.cs index fe59696..5bb686a 100644 --- a/Jellyfin.Plugin.MediaCleaner/ScheduledTasks/StaleMediaTask.cs +++ b/Jellyfin.Plugin.MediaCleaner/ScheduledTasks/StaleMediaTask.cs @@ -64,7 +64,7 @@ public sealed class StaleMediaTask : IScheduledTask _logger.LogInformation("Total items found: {AllItems}", allItems); List series = [.. allItems.Where(item => item.GetBaseItemKind() == BaseItemKind.Series)]; - List movies = [.. allItems.Where(item => item.GetBaseItemKind() == BaseItemKind.Movie && item.UserData.Count > 0)]; + List movies = [.. allItems.Where(item => item.GetBaseItemKind() == BaseItemKind.Movie)]; List staleEpisodes = [.. series.SelectMany(GetStaleEpisodes)]; List staleMovies = [.. GetStaleMovies(movies)]; @@ -97,11 +97,15 @@ public sealed class StaleMediaTask : IScheduledTask foreach (var movie in movies) { bool movieIsStale = movie.DateCreated < DateTime.Now.AddDays(-Configuration.StaleMediaCutoff); - var mostRecentUserData = movie.UserData.OrderByDescending(data => data.LastPlayedDate).First(); + bool movieHasUserData = movie.UserData.Count > 0; - if (mostRecentUserData.LastPlayedDate < DateTime.Now.AddDays(-Configuration.StaleMediaCutoff)) + if (movieHasUserData) { - staleMovies.Add(movie); + var mostRecentUserData = movie.UserData.OrderByDescending(data => data.LastPlayedDate).First(); + if(mostRecentUserData.LastPlayedDate < DateTime.Now.AddDays(-Configuration.StaleMediaCutoff)) + { + staleMovies.Add(movie); + } } else if (movieIsStale) {