aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities/UserViewBuilder.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Entities/UserViewBuilder.cs')
-rw-r--r--MediaBrowser.Controller/Entities/UserViewBuilder.cs40
1 files changed, 33 insertions, 7 deletions
diff --git a/MediaBrowser.Controller/Entities/UserViewBuilder.cs b/MediaBrowser.Controller/Entities/UserViewBuilder.cs
index f5800ce81..4d5f14f8c 100644
--- a/MediaBrowser.Controller/Entities/UserViewBuilder.cs
+++ b/MediaBrowser.Controller/Entities/UserViewBuilder.cs
@@ -120,26 +120,22 @@ namespace MediaBrowser.Controller.Entities
return await GetLiveTvView(queryParent, user, query).ConfigureAwait(false);
}
+ case CollectionType.Photos:
case CollectionType.Books:
case CollectionType.HomeVideos:
+ case CollectionType.Games:
case CollectionType.MusicVideos:
return GetResult(queryParent.GetChildren(user, true), queryParent, query);
case CollectionType.Folders:
return GetResult(user.RootFolder.GetChildren(user, true), queryParent, query);
- case CollectionType.Games:
- return await GetGameView(user, queryParent, query).ConfigureAwait(false);
-
case CollectionType.Playlists:
return await GetPlaylistsView(queryParent, user, query).ConfigureAwait(false);
case CollectionType.BoxSets:
return await GetBoxsetView(queryParent, user, query).ConfigureAwait(false);
- case CollectionType.Photos:
- return await GetPhotosView(queryParent, user, query).ConfigureAwait(false);
-
case CollectionType.TvShows:
return await GetTvView(queryParent, user, query).ConfigureAwait(false);
@@ -1061,6 +1057,11 @@ namespace MediaBrowser.Controller.Entities
return false;
}
+ if (request.GenreIds.Length > 0)
+ {
+ return false;
+ }
+
if (request.VideoTypes.Length > 0)
{
return false;
@@ -1101,10 +1102,15 @@ namespace MediaBrowser.Controller.Entities
return false;
}
+ if (request.MinIndexNumber.HasValue)
+ {
+ return false;
+ }
+
return true;
}
- public static IEnumerable<BaseItem> FilterVirtualEpisodes(
+ private static IEnumerable<BaseItem> FilterVirtualEpisodes(
IEnumerable<BaseItem> items,
bool? isMissing,
bool? isVirtualUnaired,
@@ -1657,6 +1663,16 @@ namespace MediaBrowser.Controller.Entities
return false;
}
+ // Apply genre filter
+ if (query.GenreIds.Length > 0 && !query.GenreIds.Any(id =>
+ {
+ var genreItem = libraryManager.GetItemById(id);
+ return genreItem != null && item.Genres.Contains(genreItem.Name, StringComparer.OrdinalIgnoreCase);
+ }))
+ {
+ return false;
+ }
+
// Apply year filter
if (query.Years.Length > 0)
{
@@ -1779,6 +1795,16 @@ namespace MediaBrowser.Controller.Entities
}
}
+ if (query.MinIndexNumber.HasValue)
+ {
+ var val = query.MinIndexNumber.Value;
+
+ if (!(item.IndexNumber.HasValue && item.IndexNumber.Value >= val))
+ {
+ return false;
+ }
+ }
+
return true;
}