From 3da726463dbd1de5330b7fc06f330be7f6bb4ead Mon Sep 17 00:00:00 2001 From: Shadowghost Date: Tue, 3 Mar 2026 22:27:33 +0100 Subject: [PATCH] Fix Liked and Favorite filters --- .../Item/BaseItemRepository.cs | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs index 6e80d38d7d..233d572cb2 100644 --- a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs +++ b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs @@ -3308,37 +3308,37 @@ public sealed class BaseItemRepository if (filter.IsLiked.HasValue) { - baseQuery = baseQuery - .Where(e => e.UserData!.Any(f => f.UserId == filter.User!.Id && f.Rating >= UserItemData.MinLikeValue)); + if (filter.IsLiked.Value) + { + baseQuery = baseQuery.Where(e => e.UserData!.Any(ud => ud.UserId == filter.User!.Id && ud.Rating >= UserItemData.MinLikeValue)); + } + else + { + baseQuery = baseQuery.Where(e => !e.UserData!.Any(ud => ud.UserId == filter.User!.Id && ud.Rating >= UserItemData.MinLikeValue)); + } } if (filter.IsFavoriteOrLiked.HasValue) { - var favoriteItemIds = context.UserData - .Where(ud => ud.UserId == filter.User!.Id && ud.IsFavorite) - .Select(ud => ud.ItemId); if (filter.IsFavoriteOrLiked.Value) { - baseQuery = baseQuery.Where(e => favoriteItemIds.Contains(e.Id)); + baseQuery = baseQuery.Where(e => e.UserData!.Any(ud => ud.UserId == filter.User!.Id && ud.IsFavorite)); } else { - baseQuery = baseQuery.Where(e => !favoriteItemIds.Contains(e.Id)); + baseQuery = baseQuery.Where(e => !e.UserData!.Any(ud => ud.UserId == filter.User!.Id && ud.IsFavorite)); } } if (filter.IsFavorite.HasValue) { - var favoriteItemIds = context.UserData - .Where(ud => ud.UserId == filter.User!.Id && ud.IsFavorite) - .Select(ud => ud.ItemId); if (filter.IsFavorite.Value) { - baseQuery = baseQuery.Where(e => favoriteItemIds.Contains(e.Id)); + baseQuery = baseQuery.Where(e => e.UserData!.Any(ud => ud.UserId == filter.User!.Id && ud.IsFavorite)); } else { - baseQuery = baseQuery.Where(e => !favoriteItemIds.Contains(e.Id)); + baseQuery = baseQuery.Where(e => !e.UserData!.Any(ud => ud.UserId == filter.User!.Id && ud.IsFavorite)); } }