From 46ad25f47dbe286a97f0c45eaf98663a3105c49c Mon Sep 17 00:00:00 2001 From: Shadowghost Date: Thu, 5 Feb 2026 19:21:41 +0100 Subject: [PATCH] Fix NextUp --- .../Item/BaseItemRepository.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs index 76769c33e7..f31fef6a19 100644 --- a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs +++ b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs @@ -788,14 +788,23 @@ public sealed class BaseItemRepository }) .ToList(); - var allNextPlayedCandidates = allCandidatesWithPlayedStatus - .Where(c => includeWatchedForRewatching) + // For regular NextUp: unplayed episodes + var allNextUpCandidates = allCandidatesWithPlayedStatus + .Where(c => !c.IsPlayed) .Select(c => new { c.Id, c.SeriesPresentationUniqueKey, c.ParentIndexNumber, c.EpisodeNumber }) .ToList(); + // For rewatching: played episodes (only used when includeWatchedForRewatching is true) + var allNextPlayedCandidates = includeWatchedForRewatching + ? allCandidatesWithPlayedStatus + .Where(c => c.IsPlayed) + .Select(c => new { c.Id, c.SeriesPresentationUniqueKey, c.ParentIndexNumber, c.EpisodeNumber }) + .ToList() + : []; + foreach (var seriesKey in seriesKeys) { - var candidates = allNextPlayedCandidates + var candidates = allNextUpCandidates .Where(c => c.SeriesPresentationUniqueKey == seriesKey); if (lastWatchedInfo.TryGetValue(seriesKey, out var lwId) && lwId != Guid.Empty)