aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-09-05 15:00:50 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-09-05 15:00:50 -0400
commit44b12c0f9fc81dd10d6f655f341d7df28c5f3e20 (patch)
tree520179e21ec80e988e44407b06c2f22f040d9903 /MediaBrowser.Server.Implementations
parentcbf061d5f62a98a977d192bb0117f6c21be7e808 (diff)
fixes #520 - Support multiple artists per audio track
Diffstat (limited to 'MediaBrowser.Server.Implementations')
-rw-r--r--MediaBrowser.Server.Implementations/Dto/DtoService.cs5
-rw-r--r--MediaBrowser.Server.Implementations/Library/LibraryManager.cs5
-rw-r--r--MediaBrowser.Server.Implementations/Library/LuceneSearchEngine.cs14
-rw-r--r--MediaBrowser.Server.Implementations/Sorting/ArtistComparer.cs2
4 files changed, 16 insertions, 10 deletions
diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs
index 66e3613f55..4ad2479e61 100644
--- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs
+++ b/MediaBrowser.Server.Implementations/Dto/DtoService.cs
@@ -893,7 +893,7 @@ namespace MediaBrowser.Server.Implementations.Dto
{
dto.Album = audio.Album;
dto.AlbumArtist = audio.AlbumArtist;
- dto.Artists = new[] { audio.Artist };
+ dto.Artists = audio.Artists.ToArray();
var albumParent = audio.FindParent<MusicAlbum>();
@@ -919,8 +919,7 @@ namespace MediaBrowser.Server.Implementations.Dto
dto.AlbumArtist = songs.Select(i => i.AlbumArtist).FirstOrDefault(i => !string.IsNullOrEmpty(i));
dto.Artists =
- songs.Select(i => i.Artist ?? string.Empty)
- .Where(i => !string.IsNullOrEmpty(i))
+ songs.SelectMany(i => i.Artists)
.Distinct(StringComparer.OrdinalIgnoreCase)
.ToArray();
}
diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
index 29a495247c..d9ab75397c 100644
--- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
+++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
@@ -900,10 +900,7 @@ namespace MediaBrowser.Server.Implementations.Library
{
list.Add(c.AlbumArtist);
}
- if (!string.IsNullOrEmpty(c.Artist))
- {
- list.Add(c.Artist);
- }
+ list.AddRange(c.Artists);
return list;
})
diff --git a/MediaBrowser.Server.Implementations/Library/LuceneSearchEngine.cs b/MediaBrowser.Server.Implementations/Library/LuceneSearchEngine.cs
index 0fd39a25d3..d8b8a18e92 100644
--- a/MediaBrowser.Server.Implementations/Library/LuceneSearchEngine.cs
+++ b/MediaBrowser.Server.Implementations/Library/LuceneSearchEngine.cs
@@ -120,8 +120,18 @@ namespace MediaBrowser.Server.Implementations.Library
// Find artists
var artists = items.OfType<Audio>()
- .SelectMany(i => new[] { i.Artist, i.AlbumArtist })
- .Where(i => !string.IsNullOrEmpty(i))
+ .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)
.ToList();
diff --git a/MediaBrowser.Server.Implementations/Sorting/ArtistComparer.cs b/MediaBrowser.Server.Implementations/Sorting/ArtistComparer.cs
index b0a6989e93..e3de0df289 100644
--- a/MediaBrowser.Server.Implementations/Sorting/ArtistComparer.cs
+++ b/MediaBrowser.Server.Implementations/Sorting/ArtistComparer.cs
@@ -37,7 +37,7 @@ namespace MediaBrowser.Server.Implementations.Sorting
return string.Empty;
}
- return audio.Artist ?? string.Empty;
+ return audio.Artists.FirstOrDefault() ?? string.Empty;
}
/// <summary>