diff --git a/code/backend/Cleanuparr.Infrastructure/Features/Jobs/Seeker.cs b/code/backend/Cleanuparr.Infrastructure/Features/Jobs/Seeker.cs index 9451feac..8ea636ba 100644 --- a/code/backend/Cleanuparr.Infrastructure/Features/Jobs/Seeker.cs +++ b/code/backend/Cleanuparr.Infrastructure/Features/Jobs/Seeker.cs @@ -218,7 +218,7 @@ public sealed class Seeker : IHandler HashSet searchItems; List selectedNames; - List allLibraryIds; + List allLibraryIds; List historyIds; if (instanceType == InstanceType.Radarr) @@ -375,19 +375,28 @@ public sealed class Seeker : IHandler return null; } - SearchableEpisode first = qualifying[0]; + // Pick a random qualifying episode/season + SearchableEpisode selected = config.SonarrSearchType switch + { + SeriesSearchType.Season => qualifying + .GroupBy(e => e.SeasonNumber) + .OrderBy(_ => Random.Shared.Next()) + .First() + .First(), + _ => qualifying[Random.Shared.Next(qualifying.Count)] + }; return config.SonarrSearchType switch { SeriesSearchType.Season => new SeriesSearchItem { - Id = first.SeasonNumber, + Id = selected.SeasonNumber, SeriesId = seriesId, SearchType = SeriesSearchType.Season }, SeriesSearchType.Episode => new SeriesSearchItem { - Id = first.Id, + Id = selected.Id, SeriesId = seriesId, SearchType = SeriesSearchType.Episode },