2 Commits

2 changed files with 15 additions and 2 deletions

View File

@@ -37,10 +37,10 @@
"category": "Library", "category": "Library",
"overview": "A cleaner for your stale media.", "overview": "A cleaner for your stale media.",
"description": "Clean out the stale media from your library using scheduled tasks", "description": "Clean out the stale media from your library using scheduled tasks",
"timestamp": "$(PluginTimestamp)", "timestamp": "$(Timestamp)",
"targetAbi": "10.11.0", "targetAbi": "10.11.0",
"owner": "T-Gander", "owner": "T-Gander",
"version": "$(Version)" "version": "$(AssemblyVersion)"
}' }'
Overwrite="true" Overwrite="true"
Encoding="utf-8" /> Encoding="utf-8" />

View File

@@ -93,13 +93,20 @@ public sealed class StaleMediaTask : IScheduledTask
private List<BaseItem> GetStaleMovies(List<BaseItem> movies) private List<BaseItem> GetStaleMovies(List<BaseItem> movies)
{ {
List<BaseItem> staleMovies = []; List<BaseItem> staleMovies = [];
foreach (var movie in movies) foreach (var movie in movies)
{ {
bool movieIsStale = movie.DateCreated > DateTime.Now.AddDays(-Configuration.StaleMediaCutoff);
var mostRecentUserData = movie.UserData.OrderByDescending(data => data.LastPlayedDate).First(); var mostRecentUserData = movie.UserData.OrderByDescending(data => data.LastPlayedDate).First();
if (mostRecentUserData.LastPlayedDate < DateTime.Now.AddDays(-Configuration.StaleMediaCutoff)) if (mostRecentUserData.LastPlayedDate < DateTime.Now.AddDays(-Configuration.StaleMediaCutoff))
{ {
staleMovies.Add(movie); staleMovies.Add(movie);
} }
else if (movieIsStale)
{
staleMovies.Add(movie);
}
} }
return staleMovies; return staleMovies;
@@ -160,6 +167,7 @@ public sealed class StaleMediaTask : IScheduledTask
}); });
bool seasonHasUserData = episodes.Any(episode => episode.UserData.Count > 0); bool seasonHasUserData = episodes.Any(episode => episode.UserData.Count > 0);
bool seasonIsStale = episodes.All(episode => episode.DateCreated > DateTime.Now.AddDays(-Configuration.StaleMediaCutoff));
if (seasonHasUserData) if (seasonHasUserData)
{ {
@@ -174,6 +182,11 @@ public sealed class StaleMediaTask : IScheduledTask
} }
} }
} }
// Check for episodes that have gone unwatched for stale media cutoff
else if (seasonIsStale)
{
staleEpisodes.AddRange(episodes);
}
} }
return staleEpisodes; return staleEpisodes;