Added hasFile check to only delete files that exist.

This commit is contained in:
2026-03-08 23:57:16 -06:00
parent 2786d6c73d
commit b6242de064
3 changed files with 9 additions and 12 deletions

View File

@@ -59,24 +59,20 @@ public class SonarrController : Controller
}
var seasonNumbers = new HashSet<int>(sonarrSeries.Seasons
.Where(s => s.SeasonNumber.HasValue)
.Select(s => s.SeasonNumber!.Value));
.Select(s => s.SeasonNumber));
var staleEpisodesResponseObj = episodesResponseObj
.Where(episodeDeletionDetail => episodeDeletionDetail.SeasonNumber != null &&
seasonNumbers.Contains(episodeDeletionDetail.SeasonNumber.Value))
.Where(episodeDeletionDetail => seasonNumbers.Contains(episodeDeletionDetail.SeasonNumber))
.ToList();
var episodeIds = staleEpisodesResponseObj
.Where(episodeDeletionDetail => episodeDeletionDetail.HasFile)
.Select(episodeDeletionDetail => episodeDeletionDetail.EpisodeId)
.Where(id => id.HasValue)
.Select(id => id!.Value)
.ToList();
var episodeFileIds = staleEpisodesResponseObj
.Where(episodeDeletionDetail => episodeDeletionDetail.HasFile)
.Select(episodeDeletionDetail => episodeDeletionDetail.EpisodeFileId)
.Where(id => id.HasValue)
.Select(id => id!.Value)
.ToList();
return Ok(new EpisodeIdLists(episodeIds, episodeFileIds));

View File

@@ -3,7 +3,8 @@ using System.Text.Json.Serialization;
namespace Jellyfin.Plugin.MediaCleaner.Models;
public record EpisodeDeletionDetails(
[property: JsonPropertyName("id")] int? EpisodeId,
[property: JsonPropertyName("episodeFileId")] int? EpisodeFileId,
[property: JsonPropertyName("seasonNumber")] int? SeasonNumber
[property: JsonPropertyName("id")] int EpisodeId,
[property: JsonPropertyName("episodeFileId")] int EpisodeFileId,
[property: JsonPropertyName("seasonNumber")] int SeasonNumber,
[property: JsonPropertyName("hasFile")] bool HasFile
);

View File

@@ -14,5 +14,5 @@ public record SonarrSeries(
);
public record Season(
[property: JsonPropertyName("seasonNumber")] int? SeasonNumber
[property: JsonPropertyName("seasonNumber")] int SeasonNumber
);