diff options
6 files changed, 47 insertions, 2 deletions
diff --git a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs index df728ee0d..0b54541e5 100644 --- a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs +++ b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs @@ -169,6 +169,24 @@ namespace MediaBrowser.Api.UserLibrary }); } + if (filters.Contains(ItemFilter.IsFavoriteOrLikes)) + { + items = items.Where(i => + { + var userdata = i.GetUserItemData(UserDataRepository, user.Id).Result; + + if (userdata == null) + { + return false; + } + + var likes = userdata.Likes ?? false; + var favorite = userdata.IsFavorite; + + return likes || favorite; + }); + } + if (filters.Contains(ItemFilter.IsFavorite)) { items = items.Where(i => diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs index b52696efa..a8b54f10c 100644 --- a/MediaBrowser.Api/UserLibrary/ItemsService.cs +++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs @@ -335,6 +335,22 @@ namespace MediaBrowser.Api.UserLibrary { switch (filter) { + case ItemFilter.IsFavoriteOrLikes: + return items.Where(item => + { + var userdata = repository.GetUserData(user.Id, item.GetUserDataKey()); + + if (userdata == null) + { + return false; + } + + var likes = userdata.Likes ?? false; + var favorite = userdata.IsFavorite; + + return likes || favorite; + }); + case ItemFilter.Likes: return items.Where(item => { diff --git a/MediaBrowser.Model/Querying/ItemFilter.cs b/MediaBrowser.Model/Querying/ItemFilter.cs index 38ca67fa2..ee6df0626 100644 --- a/MediaBrowser.Model/Querying/ItemFilter.cs +++ b/MediaBrowser.Model/Querying/ItemFilter.cs @@ -41,6 +41,10 @@ namespace MediaBrowser.Model.Querying /// <summary> /// The dislikes /// </summary> - Dislikes = 9 + Dislikes = 9, + /// <summary> + /// The is favorite or likes + /// </summary> + IsFavoriteOrLikes = 10, } } diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index c9fb95c86..230cee47f 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -850,7 +850,7 @@ namespace MediaBrowser.Server.Implementations.Library var people = RootFolder.RecursiveChildren .Where(c => c.People != null) - .SelectMany(c => c.People.Where(p => includedPersonTypes.Contains(p.Type))) + .SelectMany(c => c.People.Where(p => includedPersonTypes.Contains(p.Type, StringComparer.OrdinalIgnoreCase) || includedPersonTypes.Contains(p.Role, StringComparer.OrdinalIgnoreCase))) .DistinctBy(p => p.Name, StringComparer.OrdinalIgnoreCase) .ToList(); diff --git a/MediaBrowser.WebDashboard/Api/DashboardService.cs b/MediaBrowser.WebDashboard/Api/DashboardService.cs index 75ced2302..11e842b2c 100644 --- a/MediaBrowser.WebDashboard/Api/DashboardService.cs +++ b/MediaBrowser.WebDashboard/Api/DashboardService.cs @@ -454,6 +454,7 @@ namespace MediaBrowser.WebDashboard.Api "edititempeople.js", "edititemimages.js", "edituserpage.js", + "favoritetv.js", "gamesrecommendedpage.js", "gamesystemspage.js", "gamespage.js", diff --git a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj index e38d470d5..dbe0ba4ee 100644 --- a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj +++ b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj @@ -291,6 +291,9 @@ <Content Include="dashboard-ui\edititemmetadata.html">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
+ <Content Include="dashboard-ui\favoritetv.html">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </Content>
<Content Include="dashboard-ui\gamegenres.html">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
@@ -378,6 +381,9 @@ <Content Include="dashboard-ui\scripts\edititemmetadata.js">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
+ <Content Include="dashboard-ui\scripts\favoritetv.js">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </Content>
<Content Include="dashboard-ui\scripts\itemgallery.js">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
|
