Updated Days unwatched to stale media cutoff for clearer messaging. Also improved logging to tell you the names of the movies and series that are flagged as stale
This commit is contained in:
@@ -20,9 +20,9 @@
|
|||||||
<div class="fieldDescription">The api key used by your sonarr instance</div>
|
<div class="fieldDescription">The api key used by your sonarr instance</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="inputContainer">
|
<div class="inputContainer">
|
||||||
<label class="inputLabel inputLabelUnfocused" for="DaysUnwatched">Days Unwatched</label>
|
<label class="inputLabel inputLabelUnfocused" for="StaleMediaCutoff">Stale Media Cutoff</label>
|
||||||
<input id="DaysUnwatched" name="DaysUnwatched" type="number" is="emby-input" style="width: 20%;"/>
|
<input id="StaleMediaCutoff" name="StaleMediaCutoff" type="number" is="emby-input" style="width: 20%;"/>
|
||||||
<div class="fieldDescription">How many days to wait before deleting unwatched media</div>
|
<div class="fieldDescription">How many days to wait before marking files as stale</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="selectContainer">
|
<!-- <div class="selectContainer">
|
||||||
<label class="selectLabel" for="Options">Several Options</label>
|
<label class="selectLabel" for="Options">Several Options</label>
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
// document.querySelector('#AString').value = config.AString;
|
// document.querySelector('#AString').value = config.AString;
|
||||||
document.querySelector('#RadarrAPIKey').value = config.RadarrAPIKey;
|
document.querySelector('#RadarrAPIKey').value = config.RadarrAPIKey;
|
||||||
document.querySelector('#SonarrAPIKey').value = config.SonarrAPIKey;
|
document.querySelector('#SonarrAPIKey').value = config.SonarrAPIKey;
|
||||||
document.querySelector('#DaysUnwatched').value = config.DaysUnwatched;
|
document.querySelector('#StaleMediaCutoff').value = config.StaleMediaCutoff;
|
||||||
Dashboard.hideLoadingMsg();
|
Dashboard.hideLoadingMsg();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -85,7 +85,7 @@
|
|||||||
// config.AString = document.querySelector('#AString').value;
|
// config.AString = document.querySelector('#AString').value;
|
||||||
config.RadarrAPIKey = document.querySelector('#RadarrAPIKey').value;
|
config.RadarrAPIKey = document.querySelector('#RadarrAPIKey').value;
|
||||||
config.SonarrAPIKey = document.querySelector('#SonarrAPIKey').value;
|
config.SonarrAPIKey = document.querySelector('#SonarrAPIKey').value;
|
||||||
config.DaysUnwatched = document.querySelector('#DaysUnwatched').value;
|
config.StaleMediaCutoff = document.querySelector('#StaleMediaCutoff').value;
|
||||||
ApiClient.updatePluginConfiguration(MediaCleanerConfig.pluginUniqueId, config).then(function (result) {
|
ApiClient.updatePluginConfiguration(MediaCleanerConfig.pluginUniqueId, config).then(function (result) {
|
||||||
Dashboard.processPluginConfigurationUpdateResult(result);
|
Dashboard.processPluginConfigurationUpdateResult(result);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -61,14 +61,25 @@ public sealed class StaleMediaTask : IScheduledTask
|
|||||||
|
|
||||||
_logger.LogInformation("Total items found: {AllItems}", allItems);
|
_logger.LogInformation("Total items found: {AllItems}", allItems);
|
||||||
|
|
||||||
List<BaseItem> shows = [.. allItems.Where(item => item.GetBaseItemKind() == BaseItemKind.Series)];
|
List<BaseItem> series = [.. allItems.Where(item => item.GetBaseItemKind() == BaseItemKind.Series)];
|
||||||
List<BaseItem> movies = [.. allItems.Where(item => item.GetBaseItemKind() == BaseItemKind.Movie && item.UserData.Count > 0)];
|
List<BaseItem> movies = [.. allItems.Where(item => item.GetBaseItemKind() == BaseItemKind.Movie && item.UserData.Count > 0)];
|
||||||
|
|
||||||
List<BaseItem> staleEpisodes = [.. shows.SelectMany(GetStaleEpisodes)];
|
List<BaseItem> staleEpisodes = [.. series.SelectMany(GetStaleEpisodes)];
|
||||||
List<BaseItem> staleMovies = [.. GetStaleMovies(movies)];
|
List<BaseItem> staleMovies = [.. GetStaleMovies(movies)];
|
||||||
|
|
||||||
_logger.LogInformation("Stale Movies found: {StaleMovies}", staleMovies.Count);
|
_logger.LogInformation("Stale Movies found: {StaleMovies}", staleMovies.Count);
|
||||||
_logger.LogInformation("Stale Series found: {StaleShows}", staleEpisodes.Count);
|
if (staleMovies.Count > 0)
|
||||||
|
{
|
||||||
|
_logger.LogInformation("Movies: {Names}", string.Join(", ", staleMovies.Select(movie => movie.Name)));
|
||||||
|
}
|
||||||
|
|
||||||
|
_logger.LogInformation("Stale Episodes found: {StaleEpisodes}", staleEpisodes.Count);
|
||||||
|
if (staleEpisodes.Count > 0)
|
||||||
|
{
|
||||||
|
// Firstly figure out the seasons, and then the Series to find the name.
|
||||||
|
List<string> seriesNames = FindDistinctSeriesNamesFromEpisodes(staleEpisodes);
|
||||||
|
_logger.LogInformation("Series: {Names}", string.Join(", ", seriesNames));
|
||||||
|
}
|
||||||
|
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
@@ -88,6 +99,27 @@ public sealed class StaleMediaTask : IScheduledTask
|
|||||||
return staleMovies;
|
return staleMovies;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<string> FindDistinctSeriesNamesFromEpisodes(List<BaseItem> episodes)
|
||||||
|
{
|
||||||
|
Guid[] seasonIds = [.. episodes.Select(episode => episode.ParentId).Distinct()];
|
||||||
|
|
||||||
|
var seasons = _libraryManager.GetItemList(new InternalItemsQuery
|
||||||
|
{
|
||||||
|
ItemIds = seasonIds
|
||||||
|
});
|
||||||
|
|
||||||
|
Guid[] seriesIds = [.. seasons.Select(season => season.ParentId).Distinct()];
|
||||||
|
|
||||||
|
var series = _libraryManager.GetItemList(new InternalItemsQuery
|
||||||
|
{
|
||||||
|
ItemIds = seriesIds
|
||||||
|
});
|
||||||
|
|
||||||
|
List<string> seriesNames = [.. series.Select(series => series.Name).Distinct()];
|
||||||
|
|
||||||
|
return seriesNames;
|
||||||
|
}
|
||||||
|
|
||||||
private List<BaseItem> GetStaleEpisodes(BaseItem item)
|
private List<BaseItem> GetStaleEpisodes(BaseItem item)
|
||||||
{
|
{
|
||||||
List<BaseItem> staleEpisodes = [];
|
List<BaseItem> staleEpisodes = [];
|
||||||
|
|||||||
Reference in New Issue
Block a user