aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller')
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs6
-rw-r--r--MediaBrowser.Controller/Entities/InternalItemsQuery.cs3
-rw-r--r--MediaBrowser.Controller/Entities/UserViewBuilder.cs11
3 files changed, 19 insertions, 1 deletions
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index dc0a8d0aa..dcdd10dd6 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -1188,6 +1188,12 @@ namespace MediaBrowser.Controller.Entities
return true;
}
+ if (!string.IsNullOrWhiteSpace(query.AlbumArtistStartsWithOrGreater))
+ {
+ Logger.Debug("Query requires post-filtering due to AlbumArtistStartsWithOrGreater");
+ return true;
+ }
+
return false;
}
diff --git a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs
index 2f98ac70d..da76e7db0 100644
--- a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs
+++ b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs
@@ -125,7 +125,8 @@ namespace MediaBrowser.Controller.Entities
public DayOfWeek[] AirDays { get; set; }
public SeriesStatus[] SeriesStatuses { get; set; }
-
+ public string AlbumArtistStartsWithOrGreater { get; set; }
+
public InternalItemsQuery()
{
BlockUnratedItems = new UnratedItem[] { };
diff --git a/MediaBrowser.Controller/Entities/UserViewBuilder.cs b/MediaBrowser.Controller/Entities/UserViewBuilder.cs
index 645e6e37d..ccb842cf4 100644
--- a/MediaBrowser.Controller/Entities/UserViewBuilder.cs
+++ b/MediaBrowser.Controller/Entities/UserViewBuilder.cs
@@ -1752,6 +1752,17 @@ namespace MediaBrowser.Controller.Entities
}
}
+ if (!string.IsNullOrEmpty(query.AlbumArtistStartsWithOrGreater))
+ {
+ var ok = new[] { item }.OfType<IHasAlbumArtist>()
+ .Any(p => string.Compare(query.AlbumArtistStartsWithOrGreater, p.AlbumArtists.FirstOrDefault(), StringComparison.CurrentCultureIgnoreCase) < 1);
+
+ if (!ok)
+ {
+ return false;
+ }
+ }
+
return true;
}