aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities/BaseItem.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Entities/BaseItem.cs')
-rw-r--r--MediaBrowser.Controller/Entities/BaseItem.cs34
1 files changed, 21 insertions, 13 deletions
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs
index bb0b26b8e..275fdac2e 100644
--- a/MediaBrowser.Controller/Entities/BaseItem.cs
+++ b/MediaBrowser.Controller/Entities/BaseItem.cs
@@ -701,19 +701,7 @@ namespace MediaBrowser.Controller.Entities
{
get
{
- var customRating = CustomRating;
- if (!string.IsNullOrEmpty(customRating))
- {
- return customRating;
- }
-
- var parent = DisplayParent;
- if (parent is not null)
- {
- return parent.CustomRatingForComparison;
- }
-
- return null;
+ return GetCustomRatingForComparision();
}
}
@@ -791,6 +779,26 @@ namespace MediaBrowser.Controller.Entities
/// <value>The remote trailers.</value>
public IReadOnlyList<MediaUrl> RemoteTrailers { get; set; }
+ private string GetCustomRatingForComparision(HashSet<Guid> callstack = null)
+ {
+ callstack ??= new();
+ var customRating = CustomRating;
+ if (!string.IsNullOrEmpty(customRating))
+ {
+ return customRating;
+ }
+
+ callstack.Add(Id);
+
+ var parent = DisplayParent;
+ if (parent is not null && !callstack.Contains(parent.Id))
+ {
+ return parent.GetCustomRatingForComparision(callstack);
+ }
+
+ return null;
+ }
+
public virtual double GetDefaultPrimaryImageAspectRatio()
{
return 0;