aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations')
-rw-r--r--MediaBrowser.Server.Implementations/Library/LibraryManager.cs12
-rw-r--r--MediaBrowser.Server.Implementations/ServerApplicationPaths.cs28
-rw-r--r--MediaBrowser.Server.Implementations/Sorting/ArtistComparer.cs3
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>