diff options
| author | Shadowghost <Ghost_of_Stone@web.de> | 2026-02-21 19:58:00 +0100 |
|---|---|---|
| committer | Shadowghost <Ghost_of_Stone@web.de> | 2026-02-21 19:58:00 +0100 |
| commit | 0f1a6fe4c27fa4c91b7e8dcd577960c568fa3c03 (patch) | |
| tree | 4001c37074b8efc538f68c85147b6165b7b1125c /MediaBrowser.Controller/Entities | |
| parent | 561e78efb40c2025bdd02df87da7d456cf97c045 (diff) | |
Fix IsPlayed filter and setting BoxSet played/unplayed
Diffstat (limited to 'MediaBrowser.Controller/Entities')
| -rw-r--r-- | MediaBrowser.Controller/Entities/Movies/BoxSet.cs | 28 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/UserViewBuilder.cs | 9 |
2 files changed, 37 insertions, 0 deletions
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; |
