aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-10-06 19:58:46 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-10-06 19:58:46 -0400
commitf02f3222085311b2a2cacab6642ad987a4176e65 (patch)
tree9f317e5a3f087d4b4c5e523a8d8552d7d248567e /MediaBrowser.Controller
parenta9eed234ba2a366fe014f0cc6f462c3764528948 (diff)
remove mono compiler directives
Diffstat (limited to 'MediaBrowser.Controller')
-rw-r--r--MediaBrowser.Controller/Channels/Channel.cs2
-rw-r--r--MediaBrowser.Controller/Channels/ChannelFolderItem.cs2
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs4
-rw-r--r--MediaBrowser.Controller/Entities/InternalItemsQuery.cs (renamed from MediaBrowser.Controller/Entities/UserItemsQuery.cs)12
-rw-r--r--MediaBrowser.Controller/Entities/UserRootFolder.cs8
-rw-r--r--MediaBrowser.Controller/Entities/UserView.cs6
-rw-r--r--MediaBrowser.Controller/Entities/UserViewBuilder.cs105
-rw-r--r--MediaBrowser.Controller/MediaBrowser.Controller.csproj2
8 files changed, 92 insertions, 49 deletions
diff --git a/MediaBrowser.Controller/Channels/Channel.cs b/MediaBrowser.Controller/Channels/Channel.cs
index 9e5a332e10..f618c8a255 100644
--- a/MediaBrowser.Controller/Channels/Channel.cs
+++ b/MediaBrowser.Controller/Channels/Channel.cs
@@ -22,7 +22,7 @@ namespace MediaBrowser.Controller.Channels
return base.IsVisible(user);
}
- public override async Task<QueryResult<BaseItem>> GetUserItems(UserItemsQuery query)
+ public override async Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
{
try
{
diff --git a/MediaBrowser.Controller/Channels/ChannelFolderItem.cs b/MediaBrowser.Controller/Channels/ChannelFolderItem.cs
index eea410fb88..5362cc1954 100644
--- a/MediaBrowser.Controller/Channels/ChannelFolderItem.cs
+++ b/MediaBrowser.Controller/Channels/ChannelFolderItem.cs
@@ -44,7 +44,7 @@ namespace MediaBrowser.Controller.Channels
return ExternalId;
}
- public override async Task<QueryResult<BaseItem>> GetUserItems(UserItemsQuery query)
+ public override async Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
{
try
{
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index 6363da6960..bfec0c26e6 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -770,7 +770,7 @@ namespace MediaBrowser.Controller.Entities
return item;
}
- public virtual Task<QueryResult<BaseItem>> GetUserItems(UserItemsQuery query)
+ public virtual Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
{
var user = query.User;
@@ -783,7 +783,7 @@ namespace MediaBrowser.Controller.Entities
return Task.FromResult(result);
}
- protected QueryResult<BaseItem> SortAndFilter(IEnumerable<BaseItem> items, UserItemsQuery query)
+ protected QueryResult<BaseItem> SortAndFilter(IEnumerable<BaseItem> items, InternalItemsQuery query)
{
return UserViewBuilder.SortAndFilter(items, null, query, LibraryManager, UserDataManager);
}
diff --git a/MediaBrowser.Controller/Entities/UserItemsQuery.cs b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs
index ca1c0115d6..91cb43291f 100644
--- a/MediaBrowser.Controller/Entities/UserItemsQuery.cs
+++ b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs
@@ -3,7 +3,7 @@ using System;
namespace MediaBrowser.Controller.Entities
{
- public class UserItemsQuery
+ public class InternalItemsQuery
{
public bool Recursive { get; set; }
@@ -21,15 +21,21 @@ namespace MediaBrowser.Controller.Entities
public bool? IsFolder { get; set; }
public bool? IsFavorite { get; set; }
+ public bool? IsFavoriteOrLiked { get; set; }
+ public bool? IsLiked { get; set; }
public bool? IsPlayed { get; set; }
public bool? IsResumable { get; set; }
public string[] MediaTypes { get; set; }
-
- public UserItemsQuery()
+ public string[] IncludeItemTypes { get; set; }
+ public string[] ExcludeItemTypes { get; set; }
+
+ public InternalItemsQuery()
{
SortBy = new string[] { };
MediaTypes = new string[] { };
+ IncludeItemTypes = new string[] { };
+ ExcludeItemTypes = new string[] { };
}
}
}
diff --git a/MediaBrowser.Controller/Entities/UserRootFolder.cs b/MediaBrowser.Controller/Entities/UserRootFolder.cs
index daabc0bfab..a7276e262c 100644
--- a/MediaBrowser.Controller/Entities/UserRootFolder.cs
+++ b/MediaBrowser.Controller/Entities/UserRootFolder.cs
@@ -16,8 +16,14 @@ namespace MediaBrowser.Controller.Entities
/// </summary>
public class UserRootFolder : Folder
{
- public override async Task<QueryResult<BaseItem>> GetUserItems(UserItemsQuery query)
+ public override async Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
{
+ if (query.Recursive)
+ {
+ var items = query.User.RootFolder.GetRecursiveChildren(query.User);
+ return SortAndFilter(items, query);
+ }
+
var result = await UserViewManager.GetUserViews(new UserViewQuery
{
UserId = query.User.Id.ToString("N")
diff --git a/MediaBrowser.Controller/Entities/UserView.cs b/MediaBrowser.Controller/Entities/UserView.cs
index 9b26ce23cd..043c69e275 100644
--- a/MediaBrowser.Controller/Entities/UserView.cs
+++ b/MediaBrowser.Controller/Entities/UserView.cs
@@ -15,7 +15,7 @@ namespace MediaBrowser.Controller.Entities
public static ITVSeriesManager TVSeriesManager;
- public override Task<QueryResult<BaseItem>> GetUserItems(UserItemsQuery query)
+ public override Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
{
return new UserViewBuilder(UserViewManager, LiveTvManager, ChannelManager, LibraryManager, Logger, UserDataManager, TVSeriesManager)
.GetUserItems(this, ViewType, query);
@@ -23,7 +23,7 @@ namespace MediaBrowser.Controller.Entities
public override IEnumerable<BaseItem> GetChildren(User user, bool includeLinkedChildren)
{
- var result = GetUserItems(new UserItemsQuery
+ var result = GetItems(new InternalItemsQuery
{
User = user
@@ -34,7 +34,7 @@ namespace MediaBrowser.Controller.Entities
public override IEnumerable<BaseItem> GetRecursiveChildren(User user, bool includeLinkedChildren = true)
{
- var result = GetUserItems(new UserItemsQuery
+ var result = GetItems(new InternalItemsQuery
{
User = user,
Recursive = true
diff --git a/MediaBrowser.Controller/Entities/UserViewBuilder.cs b/MediaBrowser.Controller/Entities/UserViewBuilder.cs
index b9695f8e20..8efa1b6bb4 100644
--- a/MediaBrowser.Controller/Entities/UserViewBuilder.cs
+++ b/MediaBrowser.Controller/Entities/UserViewBuilder.cs
@@ -39,7 +39,7 @@ namespace MediaBrowser.Controller.Entities
_tvSeriesManager = tvSeriesManager;
}
- public async Task<QueryResult<BaseItem>> GetUserItems(Folder parent, string viewType, UserItemsQuery query)
+ public async Task<QueryResult<BaseItem>> GetUserItems(Folder parent, string viewType, InternalItemsQuery query)
{
var user = query.User;
@@ -214,7 +214,7 @@ namespace MediaBrowser.Controller.Entities
return 50;
}
- private async Task<QueryResult<BaseItem>> GetMusicFolders(Folder parent, User user, UserItemsQuery query)
+ private async Task<QueryResult<BaseItem>> GetMusicFolders(Folder parent, User user, InternalItemsQuery query)
{
if (query.Recursive)
{
@@ -236,7 +236,7 @@ namespace MediaBrowser.Controller.Entities
return GetResult(list, query);
}
- private async Task<QueryResult<BaseItem>> GetMusicFavorites(Folder parent, User user, UserItemsQuery query)
+ private async Task<QueryResult<BaseItem>> GetMusicFavorites(Folder parent, User user, InternalItemsQuery query)
{
var list = new List<BaseItem>();
@@ -249,7 +249,7 @@ namespace MediaBrowser.Controller.Entities
return GetResult(list, query);
}
- private QueryResult<BaseItem> GetMusicAlbumArtists(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetMusicAlbumArtists(Folder parent, User user, InternalItemsQuery query)
{
var artists = GetRecursiveChildren(parent, user, new[] { CollectionType.Music, CollectionType.MusicVideos })
.Where(i => !i.IsFolder)
@@ -273,7 +273,7 @@ namespace MediaBrowser.Controller.Entities
return GetResult(artists, query);
}
- private QueryResult<BaseItem> GetMusicArtists(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetMusicArtists(Folder parent, User user, InternalItemsQuery query)
{
var artists = GetRecursiveChildren(parent, user, new[] { CollectionType.Music, CollectionType.MusicVideos })
.Where(i => !i.IsFolder)
@@ -297,7 +297,7 @@ namespace MediaBrowser.Controller.Entities
return GetResult(artists, query);
}
- private QueryResult<BaseItem> GetFavoriteArtists(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetFavoriteArtists(Folder parent, User user, InternalItemsQuery query)
{
var artists = GetRecursiveChildren(parent, user, new[] { CollectionType.Music, CollectionType.MusicVideos })
.Where(i => !i.IsFolder)
@@ -321,17 +321,17 @@ namespace MediaBrowser.Controller.Entities
return GetResult(artists, query);
}
- private QueryResult<BaseItem> GetMusicAlbums(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetMusicAlbums(Folder parent, User user, InternalItemsQuery query)
{
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.Music, CollectionType.MusicVideos }).Where(i => i is MusicAlbum), query);
}
- private QueryResult<BaseItem> GetMusicSongs(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetMusicSongs(Folder parent, User user, InternalItemsQuery query)
{
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.Music, CollectionType.MusicVideos }).Where(i => i is Audio.Audio), query);
}
- private QueryResult<BaseItem> GetMusicLatest(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetMusicLatest(Folder parent, User user, InternalItemsQuery query)
{
query.SortBy = new[] { ItemSortBy.DateCreated, ItemSortBy.SortName };
query.SortOrder = SortOrder.Descending;
@@ -339,7 +339,7 @@ namespace MediaBrowser.Controller.Entities
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.Music, CollectionType.MusicVideos }).Where(i => i is MusicVideo || i is Audio.Audio), GetSpecialItemsLimit(), query);
}
- private async Task<QueryResult<BaseItem>> GetMovieFolders(Folder parent, User user, UserItemsQuery query)
+ private async Task<QueryResult<BaseItem>> GetMovieFolders(Folder parent, User user, InternalItemsQuery query)
{
if (query.Recursive)
{
@@ -360,52 +360,52 @@ namespace MediaBrowser.Controller.Entities
return GetResult(list, query);
}
- private QueryResult<BaseItem> GetFavoriteMovies(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetFavoriteMovies(Folder parent, User user, InternalItemsQuery query)
{
query.IsFavorite = true;
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.Movies, CollectionType.BoxSets, string.Empty }).Where(i => i is Movie), query);
}
- private QueryResult<BaseItem> GetFavoriteSeries(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetFavoriteSeries(Folder parent, User user, InternalItemsQuery query)
{
query.IsFavorite = true;
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.TvShows, string.Empty }).Where(i => i is Series), query);
}
- private QueryResult<BaseItem> GetFavoriteEpisodes(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetFavoriteEpisodes(Folder parent, User user, InternalItemsQuery query)
{
query.IsFavorite = true;
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.TvShows, string.Empty }).Where(i => i is Episode), query);
}
- private QueryResult<BaseItem> GetFavoriteSongs(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetFavoriteSongs(Folder parent, User user, InternalItemsQuery query)
{
query.IsFavorite = true;
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.Music }).Where(i => i is Audio.Audio), query);
}
- private QueryResult<BaseItem> GetFavoriteAlbums(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetFavoriteAlbums(Folder parent, User user, InternalItemsQuery query)
{
query.IsFavorite = true;
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.Music }).Where(i => i is MusicAlbum), query);
}
- private QueryResult<BaseItem> GetMovieMovies(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetMovieMovies(Folder parent, User user, InternalItemsQuery query)
{
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.Movies, CollectionType.BoxSets, string.Empty }).Where(i => i is Movie), query);
}
- private QueryResult<BaseItem> GetMovieCollections(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetMovieCollections(Folder parent, User user, InternalItemsQuery query)
{
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.Movies, CollectionType.BoxSets, string.Empty }).Where(i => i is BoxSet), query);
}
- private QueryResult<BaseItem> GetMovieLatest(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetMovieLatest(Folder parent, User user, InternalItemsQuery query)
{
query.SortBy = new[] { ItemSortBy.DateCreated, ItemSortBy.SortName };
query.SortOrder = SortOrder.Descending;
@@ -413,7 +413,7 @@ namespace MediaBrowser.Controller.Entities
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.Movies, CollectionType.BoxSets, string.Empty }).Where(i => i is Movie), GetSpecialItemsLimit(), query);
}
- private QueryResult<BaseItem> GetMovieResume(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetMovieResume(Folder parent, User user, InternalItemsQuery query)
{
query.SortBy = new[] { ItemSortBy.DatePlayed, ItemSortBy.SortName };
query.SortOrder = SortOrder.Descending;
@@ -422,7 +422,7 @@ namespace MediaBrowser.Controller.Entities
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.Movies, CollectionType.BoxSets, string.Empty }).Where(i => i is Movie), GetSpecialItemsLimit(), query);
}
- private QueryResult<BaseItem> GetMovieGenres(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetMovieGenres(Folder parent, User user, InternalItemsQuery query)
{
var genres = GetRecursiveChildren(parent, user, new[] { CollectionType.Movies, CollectionType.BoxSets, string.Empty })
.Where(i => i is Movie)
@@ -447,7 +447,7 @@ namespace MediaBrowser.Controller.Entities
return GetResult(genres, query);
}
- private async Task<QueryResult<BaseItem>> GetTvView(Folder parent, User user, UserItemsQuery query)
+ private async Task<QueryResult<BaseItem>> GetTvView(Folder parent, User user, InternalItemsQuery query)
{
if (query.Recursive)
{
@@ -469,7 +469,7 @@ namespace MediaBrowser.Controller.Entities
return GetResult(list, query);
}
- private async Task<QueryResult<BaseItem>> GetGameView(User user, Folder parent, UserItemsQuery query)
+ private async Task<QueryResult<BaseItem>> GetGameView(User user, Folder parent, InternalItemsQuery query)
{
if (query.Recursive)
{
@@ -489,7 +489,7 @@ namespace MediaBrowser.Controller.Entities
return GetResult(list, query);
}
- private QueryResult<BaseItem> GetLatestGames(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetLatestGames(Folder parent, User user, InternalItemsQuery query)
{
query.SortBy = new[] { ItemSortBy.DateCreated, ItemSortBy.SortName };
query.SortOrder = SortOrder.Descending;
@@ -497,7 +497,7 @@ namespace MediaBrowser.Controller.Entities
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.Games }).OfType<Game>(), GetSpecialItemsLimit(), query);
}
- private QueryResult<BaseItem> GetRecentlyPlayedGames(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetRecentlyPlayedGames(Folder parent, User user, InternalItemsQuery query)
{
query.IsPlayed = true;
query.SortBy = new[] { ItemSortBy.DatePlayed, ItemSortBy.SortName };
@@ -506,14 +506,14 @@ namespace MediaBrowser.Controller.Entities
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.Games }).OfType<Game>(), GetSpecialItemsLimit(), query);
}
- private QueryResult<BaseItem> GetFavoriteGames(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetFavoriteGames(Folder parent, User user, InternalItemsQuery query)
{
query.IsFavorite = true;
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.Games }).OfType<Game>(), query);
}
- private QueryResult<BaseItem> GetTvLatest(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetTvLatest(Folder parent, User user, InternalItemsQuery query)
{
query.SortBy = new[] { ItemSortBy.DateCreated, ItemSortBy.SortName };
query.SortOrder = SortOrder.Descending;
@@ -521,7 +521,7 @@ namespace MediaBrowser.Controller.Entities
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.TvShows, string.Empty }).OfType<Episode>(), GetSpecialItemsLimit(), query);
}
- private QueryResult<BaseItem> GetTvNextUp(Folder parent, UserItemsQuery query)
+ private QueryResult<BaseItem> GetTvNextUp(Folder parent, InternalItemsQuery query)
{
var parentFolders = GetMediaFolders(parent, query.User, new[] { CollectionType.TvShows, string.Empty });
@@ -536,7 +536,7 @@ namespace MediaBrowser.Controller.Entities
return result;
}
- private QueryResult<BaseItem> GetTvResume(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetTvResume(Folder parent, User user, InternalItemsQuery query)
{
query.SortBy = new[] { ItemSortBy.DatePlayed, ItemSortBy.SortName };
query.SortOrder = SortOrder.Descending;
@@ -545,12 +545,12 @@ namespace MediaBrowser.Controller.Entities
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.TvShows, string.Empty }).OfType<Episode>(), GetSpecialItemsLimit(), query);
}
- private QueryResult<BaseItem> GetTvSeries(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetTvSeries(Folder parent, User user, InternalItemsQuery query)
{
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.TvShows, string.Empty }).OfType<Series>(), query);
}
- private QueryResult<BaseItem> GetTvGenres(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetTvGenres(Folder parent, User user, InternalItemsQuery query)
{
var genres = GetRecursiveChildren(parent, user, new[] { CollectionType.TvShows, string.Empty })
.OfType<Series>()
@@ -575,12 +575,12 @@ namespace MediaBrowser.Controller.Entities
return GetResult(genres, query);
}
- private QueryResult<BaseItem> GetGameSystems(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetGameSystems(Folder parent, User user, InternalItemsQuery query)
{
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.Games }).OfType<GameSystem>(), query);
}
- private QueryResult<BaseItem> GetGameGenres(Folder parent, User user, UserItemsQuery query)
+ private QueryResult<BaseItem> GetGameGenres(Folder parent, User user, InternalItemsQuery query)
{
var genres = GetRecursiveChildren(parent, user, new[] { CollectionType.Games })
.OfType<Game>()
@@ -616,7 +616,7 @@ namespace MediaBrowser.Controller.Entities
}
private QueryResult<BaseItem> GetResult<T>(IEnumerable<T> items,
- UserItemsQuery query)
+ InternalItemsQuery query)
where T : BaseItem
{
return GetResult(items, null, query);
@@ -624,7 +624,7 @@ namespace MediaBrowser.Controller.Entities
private QueryResult<BaseItem> GetResult<T>(IEnumerable<T> items,
int? totalRecordLimit,
- UserItemsQuery query)
+ InternalItemsQuery query)
where T : BaseItem
{
return SortAndFilter(items, totalRecordLimit, query, _libraryManager, _userDataManager);
@@ -632,7 +632,7 @@ namespace MediaBrowser.Controller.Entities
public static QueryResult<BaseItem> SortAndFilter(IEnumerable<BaseItem> items,
int? totalRecordLimit,
- UserItemsQuery query,
+ InternalItemsQuery query,
ILibraryManager libraryManager,
IUserDataManager userDataManager)
{
@@ -645,7 +645,7 @@ namespace MediaBrowser.Controller.Entities
public static QueryResult<BaseItem> Sort(IEnumerable<BaseItem> items,
int? totalRecordLimit,
- UserItemsQuery query,
+ InternalItemsQuery query,
ILibraryManager libraryManager)
{
var user = query.User;
@@ -676,13 +676,23 @@ namespace MediaBrowser.Controller.Entities
};
}
- private static bool Filter(BaseItem item, User user, UserItemsQuery query, IUserDataManager userDataManager)
+ private static bool Filter(BaseItem item, User user, InternalItemsQuery query, IUserDataManager userDataManager)
{
if (query.MediaTypes.Length > 0 && !query.MediaTypes.Contains(item.MediaType ?? string.Empty, StringComparer.OrdinalIgnoreCase))
{
return false;
}
+ if (query.IncludeItemTypes.Length > 0 && !query.IncludeItemTypes.Contains(item.GetClientTypeName(), StringComparer.OrdinalIgnoreCase))
+ {
+ return false;
+ }
+
+ if (query.ExcludeItemTypes.Length > 0 && query.ExcludeItemTypes.Contains(item.GetClientTypeName(), StringComparer.OrdinalIgnoreCase))
+ {
+ return false;
+ }
+
if (query.IsFolder.HasValue && query.IsFolder.Value != item.IsFolder)
{
return false;
@@ -695,6 +705,27 @@ namespace MediaBrowser.Controller.Entities
UserItemData userData = null;
+ if (query.IsLiked.HasValue)
+ {
+ userData = userData ?? userDataManager.GetUserData(user.Id, item.GetUserDataKey());
+
+ if (!userData.Likes.HasValue || userData.Likes != query.IsLiked.Value)
+ {
+ return false;
+ }
+ }
+
+ if (query.IsFavoriteOrLiked.HasValue)
+ {
+ userData = userData ?? userDataManager.GetUserData(user.Id, item.GetUserDataKey());
+ var isFavoriteOrLiked = userData.IsFavorite || (userData.Likes ?? false);
+
+ if (isFavoriteOrLiked != query.IsFavoriteOrLiked.Value)
+ {
+ return false;
+ }
+ }
+
if (query.IsFavorite.HasValue)
{
userData = userData ?? userDataManager.GetUserData(user.Id, item.GetUserDataKey());
diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
index ce9e83009b..e04cc20874 100644
--- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj
+++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
@@ -151,6 +151,7 @@
<Compile Include="Entities\ILibraryItem.cs" />
<Compile Include="Entities\ImageSourceInfo.cs" />
<Compile Include="Entities\IMetadataContainer.cs" />
+ <Compile Include="Entities\InternalItemsQuery.cs" />
<Compile Include="Entities\ISupportsBoxSetGrouping.cs" />
<Compile Include="Entities\ISupportsPlaceHolders.cs" />
<Compile Include="Entities\ItemImageInfo.cs" />
@@ -160,7 +161,6 @@
<Compile Include="Entities\IHasAwards.cs" />
<Compile Include="Entities\Photo.cs" />
<Compile Include="Entities\PhotoAlbum.cs" />
- <Compile Include="Entities\UserItemsQuery.cs" />
<Compile Include="Entities\UserView.cs" />
<Compile Include="Entities\UserViewBuilder.cs" />
<Compile Include="FileOrganization\IFileOrganizationService.cs" />