aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-10-20 21:51:57 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-10-20 21:51:57 -0400
commit14d8f48f31c0ea8fa507bbf38d9ee5db63d02ed3 (patch)
treeed6dfce4ed779107fac7f62ee71ead729fddf872
parenta3a658e82079ac8e56193ce4d2047a547e0289c9 (diff)
add filters to item by name query
-rw-r--r--MediaBrowser.Api/LibraryService.cs54
-rw-r--r--MediaBrowser.Controller/Library/ILibraryManager.cs7
-rw-r--r--MediaBrowser.Model/Querying/ItemsByNameQuery.cs7
-rw-r--r--Nuget/MediaBrowser.Common.Internal.nuspec4
-rw-r--r--Nuget/MediaBrowser.Common.nuspec2
-rw-r--r--Nuget/MediaBrowser.Server.Core.nuspec4
6 files changed, 62 insertions, 16 deletions
diff --git a/MediaBrowser.Api/LibraryService.cs b/MediaBrowser.Api/LibraryService.cs
index 89f082b63..57bc53496 100644
--- a/MediaBrowser.Api/LibraryService.cs
+++ b/MediaBrowser.Api/LibraryService.cs
@@ -345,8 +345,6 @@ namespace MediaBrowser.Api
var songs = items.OfType<Audio>().ToList();
var series = items.OfType<Series>().ToList();
-
-
var counts = new ItemCounts
{
AlbumCount = albums.Count,
@@ -377,6 +375,54 @@ namespace MediaBrowser.Api
counts.FavoriteBookCount = FavoriteCount(books, request.UserId.Value);
counts.FavoriteSongCount = FavoriteCount(songs, request.UserId.Value);
counts.FavoriteSeriesCount = FavoriteCount(series, request.UserId.Value);
+
+ var people = items.SelectMany(i => i.People)
+ .Select(i => i.Name)
+ .Distinct(StringComparer.OrdinalIgnoreCase)
+ .Select(i =>
+ {
+ try
+ {
+ return _libraryManager.GetPerson(i);
+ }
+ catch
+ {
+ return null;
+ }
+ })
+ .Where(i => i != null)
+ .ToList();
+
+ counts.FavoritePersonCount = FavoriteCount(people, request.UserId.Value);
+
+ var artists = songs.SelectMany(i =>
+ {
+ var list = new List<string>();
+
+ if (!string.IsNullOrEmpty(i.AlbumArtist))
+ {
+ list.Add(i.AlbumArtist);
+ }
+ list.AddRange(i.Artists);
+
+ return list;
+ })
+ .Distinct(StringComparer.OrdinalIgnoreCase)
+ .Select(i =>
+ {
+ try
+ {
+ return _libraryManager.GetArtist(i);
+ }
+ catch
+ {
+ return null;
+ }
+ })
+ .Where(i => i != null)
+ .ToList();
+
+ counts.FavoriteArtistCount = FavoriteCount(artists, request.UserId.Value);
}
return ToOptimizedResult(counts);
@@ -617,7 +663,7 @@ namespace MediaBrowser.Api
}
private static readonly CultureInfo UsCulture = new CultureInfo("en-US");
-
+
public object Get(GetYearIndex request)
{
IEnumerable<BaseItem> items = GetAllLibraryItems(request.UserId, _userManager, _libraryManager);
@@ -627,7 +673,7 @@ namespace MediaBrowser.Api
var vals = request.IncludeItemTypes.Split(',');
items = items.Where(f => vals.Contains(f.GetType().Name, StringComparer.OrdinalIgnoreCase));
}
-
+
var lookup = items
.ToLookup(i => i.ProductionYear ?? -1)
.OrderBy(i => i.Key)
diff --git a/MediaBrowser.Controller/Library/ILibraryManager.cs b/MediaBrowser.Controller/Library/ILibraryManager.cs
index 059c427bb..0bab0d356 100644
--- a/MediaBrowser.Controller/Library/ILibraryManager.cs
+++ b/MediaBrowser.Controller/Library/ILibraryManager.cs
@@ -49,13 +49,6 @@ namespace MediaBrowser.Controller.Library
AggregateFolder RootFolder { get; }
/// <summary>
- /// Gets the person sync.
- /// </summary>
- /// <param name="name">The name.</param>
- /// <returns>Person.</returns>
- Person GetPersonSync(string name);
-
- /// <summary>
/// Gets a Person
/// </summary>
/// <param name="name">The name.</param>
diff --git a/MediaBrowser.Model/Querying/ItemsByNameQuery.cs b/MediaBrowser.Model/Querying/ItemsByNameQuery.cs
index 22ed79108..8d2ab50d7 100644
--- a/MediaBrowser.Model/Querying/ItemsByNameQuery.cs
+++ b/MediaBrowser.Model/Querying/ItemsByNameQuery.cs
@@ -44,6 +44,12 @@ namespace MediaBrowser.Model.Querying
public ItemFields[] Fields { get; set; }
/// <summary>
+ /// Gets or sets the filters.
+ /// </summary>
+ /// <value>The filters.</value>
+ public ItemFilter[] Filters { get; set; }
+
+ /// <summary>
/// Gets or sets the exclude item types.
/// </summary>
/// <value>The exclude item types.</value>
@@ -91,6 +97,7 @@ namespace MediaBrowser.Model.Querying
public ItemsByNameQuery()
{
ImageTypes = new ImageType[] { };
+ Filters = new ItemFilter[] { };
Fields = new ItemFields[] { };
Recursive = true;
MediaTypes = new string[] { };
diff --git a/Nuget/MediaBrowser.Common.Internal.nuspec b/Nuget/MediaBrowser.Common.Internal.nuspec
index cc84c8b6d..7064a5ce7 100644
--- a/Nuget/MediaBrowser.Common.Internal.nuspec
+++ b/Nuget/MediaBrowser.Common.Internal.nuspec
@@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>MediaBrowser.Common.Internal</id>
- <version>3.0.228</version>
+ <version>3.0.229</version>
<title>MediaBrowser.Common.Internal</title>
<authors>Luke</authors>
<owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
<description>Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption.</description>
<copyright>Copyright © Media Browser 2013</copyright>
<dependencies>
- <dependency id="MediaBrowser.Common" version="3.0.228" />
+ <dependency id="MediaBrowser.Common" version="3.0.229" />
<dependency id="NLog" version="2.1.0" />
<dependency id="ServiceStack.Text" version="3.9.58" />
<dependency id="SimpleInjector" version="2.3.2" />
diff --git a/Nuget/MediaBrowser.Common.nuspec b/Nuget/MediaBrowser.Common.nuspec
index 62e857deb..9324361a4 100644
--- a/Nuget/MediaBrowser.Common.nuspec
+++ b/Nuget/MediaBrowser.Common.nuspec
@@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>MediaBrowser.Common</id>
- <version>3.0.228</version>
+ <version>3.0.229</version>
<title>MediaBrowser.Common</title>
<authors>Media Browser Team</authors>
<owners>ebr,Luke,scottisafool</owners>
diff --git a/Nuget/MediaBrowser.Server.Core.nuspec b/Nuget/MediaBrowser.Server.Core.nuspec
index 1e7cb4fbd..76c675f8e 100644
--- a/Nuget/MediaBrowser.Server.Core.nuspec
+++ b/Nuget/MediaBrowser.Server.Core.nuspec
@@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>MediaBrowser.Server.Core</id>
- <version>3.0.228</version>
+ <version>3.0.229</version>
<title>Media Browser.Server.Core</title>
<authors>Media Browser Team</authors>
<owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
<description>Contains core components required to build plugins for Media Browser Server.</description>
<copyright>Copyright © Media Browser 2013</copyright>
<dependencies>
- <dependency id="MediaBrowser.Common" version="3.0.228" />
+ <dependency id="MediaBrowser.Common" version="3.0.229" />
</dependencies>
</metadata>
<files>