|
@@ -471,6 +471,76 @@ namespace MediaBrowser.Api.DefaultTheme
|
|
|
}).Where(i => i != null).ToList();
|
|
|
}
|
|
|
|
|
|
+ private void SetFavoriteGenres(MoviesView view, IEnumerable<BaseItem> inputItems, User user)
|
|
|
+ {
|
|
|
+ var all = inputItems.SelectMany(i => i.Genres)
|
|
|
+ .Distinct(StringComparer.OrdinalIgnoreCase);
|
|
|
+
|
|
|
+ view.FavoriteGenres = all.Select(i =>
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var itemByName = _libraryManager.GetGenre(i);
|
|
|
+
|
|
|
+ var counts = itemByName.GetItemByNameCounts(user);
|
|
|
+
|
|
|
+ var count = counts == null ? 0 : counts.MovieCount;
|
|
|
+
|
|
|
+ if (count > 0 && _userDataManager.GetUserData(user.Id, itemByName.GetUserDataKey()).IsFavorite)
|
|
|
+ {
|
|
|
+ return new ItemByNameInfo
|
|
|
+ {
|
|
|
+ Name = itemByName.Name,
|
|
|
+ ItemCount = count
|
|
|
+ };
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ _logger.ErrorException("Error getting genre {0}", ex, i);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return null;
|
|
|
+
|
|
|
+ }).Where(i => i != null).ToList();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void SetFavoriteStudios(MoviesView view, IEnumerable<BaseItem> inputItems, User user)
|
|
|
+ {
|
|
|
+ var all = inputItems.SelectMany(i => i.Studios)
|
|
|
+ .Distinct(StringComparer.OrdinalIgnoreCase);
|
|
|
+
|
|
|
+ view.FavoriteStudios = all.Select(i =>
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var itemByName = _libraryManager.GetStudio(i);
|
|
|
+
|
|
|
+ var counts = itemByName.GetItemByNameCounts(user);
|
|
|
+
|
|
|
+ var count = counts == null ? 0 : counts.MovieCount;
|
|
|
+
|
|
|
+ if (count > 0 && _userDataManager.GetUserData(user.Id, itemByName.GetUserDataKey()).IsFavorite)
|
|
|
+ {
|
|
|
+ return new ItemByNameInfo
|
|
|
+ {
|
|
|
+ Name = itemByName.Name,
|
|
|
+ ItemCount = count
|
|
|
+ };
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ _logger.ErrorException("Error getting studio {0}", ex, i);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return null;
|
|
|
+
|
|
|
+ }).Where(i => i != null).ToList();
|
|
|
+ }
|
|
|
+
|
|
|
public object Get(GetMovieView request)
|
|
|
{
|
|
|
var user = _userManager.GetUserById(request.UserId);
|
|
@@ -487,6 +557,9 @@ namespace MediaBrowser.Api.DefaultTheme
|
|
|
var movies = items.OfType<Movie>()
|
|
|
.ToList();
|
|
|
|
|
|
+ SetFavoriteGenres(view, movies, user);
|
|
|
+ SetFavoriteStudios(view, movies, user);
|
|
|
+
|
|
|
var trailers = items.OfType<Trailer>()
|
|
|
.ToList();
|
|
|
|