From 0f1a6fe4c27fa4c91b7e8dcd577960c568fa3c03 Mon Sep 17 00:00:00 2001 From: Shadowghost Date: Sat, 21 Feb 2026 19:58:00 +0100 Subject: Fix IsPlayed filter and setting BoxSet played/unplayed --- MediaBrowser.Controller/Entities/Movies/BoxSet.cs | 28 ++++++++++++++++++++++ .../Entities/UserViewBuilder.cs | 9 +++++++ 2 files changed, 37 insertions(+) (limited to 'MediaBrowser.Controller/Entities') diff --git a/MediaBrowser.Controller/Entities/Movies/BoxSet.cs b/MediaBrowser.Controller/Entities/Movies/BoxSet.cs index 2166a58024..8216937cad 100644 --- a/MediaBrowser.Controller/Entities/Movies/BoxSet.cs +++ b/MediaBrowser.Controller/Entities/Movies/BoxSet.cs @@ -194,6 +194,34 @@ namespace MediaBrowser.Controller.Entities.Movies return true; } + public override void MarkPlayed(User user, DateTime? datePlayed, bool resetPosition) + { + if (IsLegacyBoxSet) + { + base.MarkPlayed(user, datePlayed, resetPosition); + return; + } + + foreach (var item in GetLinkedChildren(user)) + { + item.MarkPlayed(user, datePlayed, resetPosition); + } + } + + public override void MarkUnplayed(User user) + { + if (IsLegacyBoxSet) + { + base.MarkUnplayed(user); + return; + } + + foreach (var item in GetLinkedChildren(user)) + { + item.MarkUnplayed(user); + } + } + public override bool IsVisibleStandalone(User user) { if (IsLegacyBoxSet) diff --git a/MediaBrowser.Controller/Entities/UserViewBuilder.cs b/MediaBrowser.Controller/Entities/UserViewBuilder.cs index 47d732c745..81b0fe1c8c 100644 --- a/MediaBrowser.Controller/Entities/UserViewBuilder.cs +++ b/MediaBrowser.Controller/Entities/UserViewBuilder.cs @@ -539,6 +539,15 @@ namespace MediaBrowser.Controller.Entities } } + if (query.IsPlayed.HasValue) + { + userData ??= userDataManager.GetUserData(user, item); + if (item.IsPlayed(user, userData) != query.IsPlayed.Value) + { + return false; + } + } + if (query.IsLocked.HasValue) { var val = query.IsLocked.Value; -- cgit v1.2.3