diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations')
3 files changed, 42 insertions, 1 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index 1d5613501..4d66d1422 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -3,6 +3,7 @@ using MediaBrowser.Common.Extensions; using MediaBrowser.Common.ScheduledTasks; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; @@ -552,6 +553,17 @@ namespace MediaBrowser.Server.Implementations.Library } /// <summary> + /// Gets a Genre + /// </summary> + /// <param name="name">The name.</param> + /// <param name="allowSlowProviders">if set to <c>true</c> [allow slow providers].</param> + /// <returns>Task{Genre}.</returns> + public Task<Artist> GetArtist(string name, bool allowSlowProviders = false) + { + return GetImagesByNameItem<Artist>(ConfigurationManager.ApplicationPaths.ArtistsPath, name, CancellationToken.None, allowSlowProviders); + } + + /// <summary> /// The us culture /// </summary> private static readonly CultureInfo UsCulture = new CultureInfo("en-US"); diff --git a/MediaBrowser.Server.Implementations/ServerApplicationPaths.cs b/MediaBrowser.Server.Implementations/ServerApplicationPaths.cs index 25d9cf533..a723eb38e 100644 --- a/MediaBrowser.Server.Implementations/ServerApplicationPaths.cs +++ b/MediaBrowser.Server.Implementations/ServerApplicationPaths.cs @@ -18,6 +18,9 @@ namespace MediaBrowser.Server.Implementations { } #else +/// <summary> +/// Initializes a new instance of the <see cref="ServerApplicationPaths"/> class. +/// </summary> public ServerApplicationPaths() : base(false) { @@ -345,5 +348,30 @@ namespace MediaBrowser.Server.Implementations return _downloadedImagesDataPath; } } + + /// <summary> + /// The _music artists path + /// </summary> + private string _musicArtistsPath; + /// <summary> + /// Gets the artists path. + /// </summary> + /// <value>The artists path.</value> + public string ArtistsPath + { + get + { + if (_musicArtistsPath == null) + { + _musicArtistsPath = Path.Combine(ImagesByNamePath, "Artists"); + if (!Directory.Exists(_musicArtistsPath)) + { + Directory.CreateDirectory(_musicArtistsPath); + } + } + + return _musicArtistsPath; + } + } } } diff --git a/MediaBrowser.Server.Implementations/Sorting/ArtistComparer.cs b/MediaBrowser.Server.Implementations/Sorting/ArtistComparer.cs index c34f096a2..d31ee8790 100644 --- a/MediaBrowser.Server.Implementations/Sorting/ArtistComparer.cs +++ b/MediaBrowser.Server.Implementations/Sorting/ArtistComparer.cs @@ -3,6 +3,7 @@ using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Sorting; using MediaBrowser.Model.Querying; using System; +using System.Linq; namespace MediaBrowser.Server.Implementations.Sorting { @@ -31,7 +32,7 @@ namespace MediaBrowser.Server.Implementations.Sorting { var audio = x as Audio; - return audio == null ? string.Empty : audio.Artist; + return audio == null ? string.Empty : audio.Artists.OrderBy(i => i).FirstOrDefault() ?? string.Empty; } /// <summary> |
