diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-08-09 12:33:12 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-08-09 12:33:12 -0400 |
| commit | 9f0405b9a08ff1a1383c1d0d23fded460d340044 (patch) | |
| tree | d3fcf1c6ff3bc2498237258aecd002e5ed631124 /MediaBrowser.Api/InstantMixService.cs | |
| parent | 2173ab0f9fcabfaf889c2c25755f67cbdfafb021 (diff) | |
improved instant mix algorithm
Diffstat (limited to 'MediaBrowser.Api/InstantMixService.cs')
| -rw-r--r-- | MediaBrowser.Api/InstantMixService.cs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/MediaBrowser.Api/InstantMixService.cs b/MediaBrowser.Api/InstantMixService.cs index d8a8d7db5..dbdc5cd93 100644 --- a/MediaBrowser.Api/InstantMixService.cs +++ b/MediaBrowser.Api/InstantMixService.cs @@ -66,9 +66,16 @@ namespace MediaBrowser.Api public object Get(GetInstantMixFromAlbum request) { - var item = DtoBuilder.GetItemByClientId(request.Id, _userManager, _libraryManager); + var album = (MusicAlbum)DtoBuilder.GetItemByClientId(request.Id, _userManager, _libraryManager); - var result = GetInstantMixResult(request, item.Genres).Result; + var genres = album + .RecursiveChildren + .OfType<Audio>() + .SelectMany(i => i.Genres) + .Concat(album.Genres) + .Distinct(StringComparer.OrdinalIgnoreCase); + + var result = GetInstantMixResult(request, genres).Result; return ToOptimizedResult(result); } @@ -91,6 +98,7 @@ namespace MediaBrowser.Api .OfType<Audio>() .Where(i => i.HasArtist(artist.Name)) .SelectMany(i => i.Genres) + .Concat(artist.Genres) .Distinct(StringComparer.OrdinalIgnoreCase); var result = GetInstantMixResult(request, genres).Result; |
