aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/Library/UserViewManager.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2017-08-01 12:45:57 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2017-08-01 12:45:57 -0400
commit4e52c027bcc2dc4cd100d450a7195233e48fb5ff (patch)
treecbdbf11ea02b91273c8e9ca80be14a58a58c285e /Emby.Server.Implementations/Library/UserViewManager.cs
parenta74dbb64816817f30b2c2d65265ad757b1b0a569 (diff)
improve nextup queries
Diffstat (limited to 'Emby.Server.Implementations/Library/UserViewManager.cs')
-rw-r--r--Emby.Server.Implementations/Library/UserViewManager.cs39
1 files changed, 37 insertions, 2 deletions
diff --git a/Emby.Server.Implementations/Library/UserViewManager.cs b/Emby.Server.Implementations/Library/UserViewManager.cs
index a6ed84f29..a277b693a 100644
--- a/Emby.Server.Implementations/Library/UserViewManager.cs
+++ b/Emby.Server.Implementations/Library/UserViewManager.cs
@@ -269,7 +269,41 @@ namespace Emby.Server.Implementations.Library
return new List<BaseItem>();
}
- var excludeItemTypes = includeItemTypes.Length == 0 ? new[]
+ var mediaTypes = new List<string>();
+
+ if (includeItemTypes.Length == 0)
+ {
+ foreach (var parent in parents.OfType<ICollectionFolder>())
+ {
+ switch (parent.CollectionType)
+ {
+ case CollectionType.Books:
+ mediaTypes.Add(MediaType.Book);
+ break;
+ case CollectionType.Games:
+ mediaTypes.Add(MediaType.Game);
+ break;
+ case CollectionType.Music:
+ mediaTypes.Add(MediaType.Audio);
+ break;
+ case CollectionType.Photos:
+ mediaTypes.Add(MediaType.Photo);
+ mediaTypes.Add(MediaType.Video);
+ break;
+ case CollectionType.HomeVideos:
+ mediaTypes.Add(MediaType.Photo);
+ mediaTypes.Add(MediaType.Video);
+ break;
+ default:
+ mediaTypes.Add(MediaType.Video);
+ break;
+ }
+ }
+
+ mediaTypes = mediaTypes.Distinct().ToList();
+ }
+
+ var excludeItemTypes = includeItemTypes.Length == 0 && mediaTypes.Count == 0 ? new[]
{
typeof(Person).Name,
typeof(Studio).Name,
@@ -290,7 +324,8 @@ namespace Emby.Server.Implementations.Library
IsVirtualItem = false,
Limit = limit * 5,
IsPlayed = isPlayed,
- DtoOptions = options
+ DtoOptions = options,
+ MediaTypes = mediaTypes.ToArray()
};
if (parents.Count == 0)