Jelajahi Sumber

improved instant mix algorithm

Luke Pulverenti 12 tahun lalu
induk
melakukan
9f0405b9a0
1 mengubah file dengan 10 tambahan dan 2 penghapusan
  1. 10 2
      MediaBrowser.Api/InstantMixService.cs

+ 10 - 2
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;