diff options
| author | Shadowghost <Ghost_of_Stone@web.de> | 2026-03-03 22:27:33 +0100 |
|---|---|---|
| committer | Shadowghost <Ghost_of_Stone@web.de> | 2026-03-03 22:27:33 +0100 |
| commit | 3da726463dbd1de5330b7fc06f330be7f6bb4ead (patch) | |
| tree | 063a75b1ab2cc0f169f3f3b5a20439fdd8e32371 | |
| parent | 8c0898738dc56276fb3d5cd9ca5d572043c0a7b0 (diff) | |
Fix Liked and Favorite filters
| -rw-r--r-- | Jellyfin.Server.Implementations/Item/BaseItemRepository.cs | 24 |
1 files 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)); } } |
