From 4a100452cf98228a766375dbf009209f719e8ae3 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 22 Apr 2013 23:56:11 -0400 Subject: [PATCH] audio page progress --- .../UserLibrary/ArtistsService.cs | 6 ++- MediaBrowser.Controller/Dto/DtoBuilder.cs | 2 +- .../Entities/Audio/Audio.cs | 38 +++---------------- .../Entities/Audio/MusicAlbum.cs | 9 ----- MediaBrowser.Controller/Entities/Folder.cs | 6 +-- .../MediaInfo/FFProbeAudioInfoProvider.cs | 14 +------ MediaBrowser.Model/DTO/BaseItemDto.cs | 4 +- .../Library/LibraryManager.cs | 6 ++- .../Sorting/ArtistComparer.cs | 7 +++- .../Api/DashboardService.cs | 1 + .../MediaBrowser.WebDashboard.csproj | 6 +++ Nuget/MediaBrowser.Common.Internal.nuspec | 4 +- Nuget/MediaBrowser.Common.nuspec | 2 +- Nuget/MediaBrowser.Server.Core.nuspec | 4 +- 14 files changed, 40 insertions(+), 69 deletions(-) diff --git a/MediaBrowser.Api/UserLibrary/ArtistsService.cs b/MediaBrowser.Api/UserLibrary/ArtistsService.cs index 2622f0bd15..c5f7f492ad 100644 --- a/MediaBrowser.Api/UserLibrary/ArtistsService.cs +++ b/MediaBrowser.Api/UserLibrary/ArtistsService.cs @@ -161,12 +161,16 @@ namespace MediaBrowser.Api.UserLibrary return itemsList .SelectMany(i => { - var list = i.Artists.ToList(); + var list = new List(); if (!string.IsNullOrEmpty(i.AlbumArtist)) { list.Add(i.AlbumArtist); } + if (!string.IsNullOrEmpty(i.Artist)) + { + list.Add(i.Artist); + } return list; }) diff --git a/MediaBrowser.Controller/Dto/DtoBuilder.cs b/MediaBrowser.Controller/Dto/DtoBuilder.cs index 371241d1ba..e662355106 100644 --- a/MediaBrowser.Controller/Dto/DtoBuilder.cs +++ b/MediaBrowser.Controller/Dto/DtoBuilder.cs @@ -427,7 +427,7 @@ namespace MediaBrowser.Controller.Dto { dto.Album = audio.Album; dto.AlbumArtist = audio.AlbumArtist; - dto.Artists = audio.Artists; + dto.Artist = audio.Artist; } } diff --git a/MediaBrowser.Controller/Entities/Audio/Audio.cs b/MediaBrowser.Controller/Entities/Audio/Audio.cs index 16e4e0e596..adaec9fdcf 100644 --- a/MediaBrowser.Controller/Entities/Audio/Audio.cs +++ b/MediaBrowser.Controller/Entities/Audio/Audio.cs @@ -1,7 +1,6 @@ -using MediaBrowser.Model.Entities; -using System; +using System; +using MediaBrowser.Model.Entities; using System.Collections.Generic; -using System.Linq; using System.Runtime.Serialization; namespace MediaBrowser.Controller.Entities.Audio @@ -53,7 +52,7 @@ namespace MediaBrowser.Controller.Entities.Audio /// Gets or sets the artist. /// /// The artist. - public List Artists { get; set; } + public string Artist { get; set; } /// /// Gets or sets the album. @@ -78,40 +77,13 @@ namespace MediaBrowser.Controller.Entities.Audio } } - /// - /// Initializes a new instance of the class. - /// - public Audio() - { - Artists = new List(); - } - - /// - /// Adds the artist. - /// - /// The name. - /// name - public void AddArtist(string name) - { - if (string.IsNullOrWhiteSpace(name)) - { - throw new ArgumentNullException("name"); - } - - if (!Artists.Contains(name, StringComparer.OrdinalIgnoreCase)) - { - Artists.Add(name); - } - } - /// /// Creates the name of the sort. /// /// System.String. protected override string CreateSortName() { - return (ProductionYear != null ? ProductionYear.Value.ToString("000-") : "") - + (ParentIndexNumber != null ? ParentIndexNumber.Value.ToString("0000 - ") : "") + return (ParentIndexNumber != null ? ParentIndexNumber.Value.ToString("0000 - ") : "") + (IndexNumber != null ? IndexNumber.Value.ToString("0000 - ") : "") + Name; } @@ -122,7 +94,7 @@ namespace MediaBrowser.Controller.Entities.Audio /// true if the specified name has artist; otherwise, false. public bool HasArtist(string name) { - return Artists.Contains(name, StringComparer.OrdinalIgnoreCase) || string.Equals(AlbumArtist, name, StringComparison.OrdinalIgnoreCase); + return string.Equals(Artist, name, StringComparison.OrdinalIgnoreCase) || string.Equals(AlbumArtist, name, StringComparison.OrdinalIgnoreCase); } } } diff --git a/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs b/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs index 7d6577b4ec..d93aec94cc 100644 --- a/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs +++ b/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs @@ -139,14 +139,5 @@ namespace MediaBrowser.Controller.Entities.Audio base.Images = value; } } - - /// - /// Creates the name of the sort. - /// - /// System.String. - protected override string CreateSortName() - { - return ProductionYear != null ? ProductionYear.Value.ToString("0000") : Name; - } } } diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index 14851ec430..3a8c8eec10 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -193,8 +193,8 @@ namespace MediaBrowser.Controller.Entities { var songs = recursiveChildren.OfType().ToList(); - indexFolders = songs.SelectMany(i => i.Artists) - .Distinct() + indexFolders = songs.Select(i => i.Artist ?? string.Empty) + .Distinct(StringComparer.OrdinalIgnoreCase) .Select(i => { try @@ -214,7 +214,7 @@ namespace MediaBrowser.Controller.Entities }) .Where(i => i != null) .Select(a => new IndexFolder(us, a, - songs.Where(i => i.Artists.Contains(a.Name, StringComparer.OrdinalIgnoreCase) + songs.Where(i => string.Equals(i.Artist, a.Name, StringComparison.OrdinalIgnoreCase) ), currentIndexName)).Concat(indexFolders); } diff --git a/MediaBrowser.Controller/Providers/MediaInfo/FFProbeAudioInfoProvider.cs b/MediaBrowser.Controller/Providers/MediaInfo/FFProbeAudioInfoProvider.cs index 56e85eb1f0..983286502b 100644 --- a/MediaBrowser.Controller/Providers/MediaInfo/FFProbeAudioInfoProvider.cs +++ b/MediaBrowser.Controller/Providers/MediaInfo/FFProbeAudioInfoProvider.cs @@ -109,19 +109,7 @@ namespace MediaBrowser.Controller.Providers.MediaInfo audio.Album = GetDictionaryValue(tags, "album"); - var artists = GetDictionaryValue(tags, "artist"); - if (!string.IsNullOrWhiteSpace(artists)) - { - foreach (var artist in Split(artists)) - { - var name = artist.Trim(); - - if (!string.IsNullOrEmpty(name)) - { - audio.AddArtist(name); - } - } - } + audio.Artist = GetDictionaryValue(tags, "artist"); // Several different forms of albumartist audio.AlbumArtist = GetDictionaryValue(tags, "albumartist") ?? GetDictionaryValue(tags, "album artist") ?? GetDictionaryValue(tags, "album_artist"); diff --git a/MediaBrowser.Model/DTO/BaseItemDto.cs b/MediaBrowser.Model/DTO/BaseItemDto.cs index db5949c292..6e30c46b72 100644 --- a/MediaBrowser.Model/DTO/BaseItemDto.cs +++ b/MediaBrowser.Model/DTO/BaseItemDto.cs @@ -268,7 +268,7 @@ namespace MediaBrowser.Model.Dto /// Gets or sets the artist. /// /// The artist. - public List Artists { get; set; } + public string Artist { get; set; } /// /// Gets or sets the album. @@ -403,7 +403,7 @@ namespace MediaBrowser.Model.Dto /// /// The revenue. public double? Revenue { get; set; } - + /// /// Gets a value indicating whether this instance can resume. /// diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index 692176efca..315abd49dd 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -788,12 +788,16 @@ namespace MediaBrowser.Server.Implementations.Library .OfType