aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/UserLibrary
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/UserLibrary')
-rw-r--r--MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs17
-rw-r--r--MediaBrowser.Api/UserLibrary/BaseItemsRequest.cs5
-rw-r--r--MediaBrowser.Api/UserLibrary/ItemsService.cs39
3 files changed, 49 insertions, 12 deletions
diff --git a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs
index ff285b605..5b939244e 100644
--- a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs
+++ b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs
@@ -124,7 +124,6 @@ namespace MediaBrowser.Api.UserLibrary
OfficialRatings = request.GetOfficialRatings(),
Genres = request.GetGenres(),
GenreIds = request.GetGenreIds(),
- Studios = request.GetStudios(),
StudioIds = request.GetStudioIds(),
Person = request.Person,
PersonIds = request.GetPersonIds(),
@@ -145,6 +144,22 @@ namespace MediaBrowser.Api.UserLibrary
}
}
+ // Studios
+ if (!string.IsNullOrEmpty(request.Studios))
+ {
+ query.StudioIds = request.Studios.Split('|').Select(i =>
+ {
+ try
+ {
+ return LibraryManager.GetStudio(i);
+ }
+ catch
+ {
+ return null;
+ }
+ }).Where(i => i != null).Select(i => i.Id.ToString("N")).ToArray();
+ }
+
foreach (var filter in request.GetFilters())
{
switch (filter)
diff --git a/MediaBrowser.Api/UserLibrary/BaseItemsRequest.cs b/MediaBrowser.Api/UserLibrary/BaseItemsRequest.cs
index f106adde5..0594691a2 100644
--- a/MediaBrowser.Api/UserLibrary/BaseItemsRequest.cs
+++ b/MediaBrowser.Api/UserLibrary/BaseItemsRequest.cs
@@ -394,6 +394,11 @@ namespace MediaBrowser.Api.UserLibrary
return (Studios ?? string.Empty).Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
}
+ public string[] GetArtistIds()
+ {
+ return (ArtistIds ?? string.Empty).Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
+ }
+
public string[] GetStudioIds()
{
return (StudioIds ?? string.Empty).Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs
index a07128f74..049a7b1c6 100644
--- a/MediaBrowser.Api/UserLibrary/ItemsService.cs
+++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs
@@ -230,8 +230,8 @@ namespace MediaBrowser.Api.UserLibrary
Tags = request.GetTags(),
OfficialRatings = request.GetOfficialRatings(),
Genres = request.GetGenres(),
+ ArtistIds = request.GetArtistIds(),
GenreIds = request.GetGenreIds(),
- Studios = request.GetStudios(),
StudioIds = request.GetStudioIds(),
Person = request.Person,
PersonIds = request.GetPersonIds(),
@@ -339,18 +339,19 @@ namespace MediaBrowser.Api.UserLibrary
}
// Artists
- if (!string.IsNullOrEmpty(request.ArtistIds))
- {
- var artistIds = request.ArtistIds.Split(new[] { '|', ',' });
-
- var artistItems = artistIds.Select(_libraryManager.GetItemById).Where(i => i != null).ToList();
- query.ArtistNames = artistItems.Select(i => i.Name).ToArray();
- }
-
- // Artists
if (!string.IsNullOrEmpty(request.Artists))
{
- query.ArtistNames = request.Artists.Split('|');
+ query.ArtistIds = request.Artists.Split('|').Select(i =>
+ {
+ try
+ {
+ return _libraryManager.GetArtist(i);
+ }
+ catch
+ {
+ return null;
+ }
+ }).Where(i => i != null).Select(i => i.Id.ToString("N")).ToArray();
}
// ExcludeArtistIds
@@ -365,6 +366,22 @@ namespace MediaBrowser.Api.UserLibrary
query.AlbumNames = request.Albums.Split('|');
}
+ // Studios
+ if (!string.IsNullOrEmpty(request.Studios))
+ {
+ query.StudioIds = request.Studios.Split('|').Select(i =>
+ {
+ try
+ {
+ return _libraryManager.GetStudio(i);
+ }
+ catch
+ {
+ return null;
+ }
+ }).Where(i => i != null).Select(i => i.Id.ToString("N")).ToArray();
+ }
+
return query;
}
}