diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-11-21 15:48:26 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-11-21 15:48:26 -0500 |
| commit | 17bacee0890cb03a579f9469e435d922bbdfdd50 (patch) | |
| tree | 7445da7bb2087c35075a37b6a1d8a71db480381a /MediaBrowser.Api | |
| parent | ee1a746031f15bdfc5c5e38fab704f5fcb9b67ee (diff) | |
consolidate Artist & MusicArtist
Diffstat (limited to 'MediaBrowser.Api')
| -rw-r--r-- | MediaBrowser.Api/BaseApiService.cs | 18 | ||||
| -rw-r--r-- | MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs | 15 | ||||
| -rw-r--r-- | MediaBrowser.Api/ItemRefreshService.cs | 14 | ||||
| -rw-r--r-- | MediaBrowser.Api/ItemUpdateService.cs | 9 | ||||
| -rw-r--r-- | MediaBrowser.Api/LibraryService.cs | 16 | ||||
| -rw-r--r-- | MediaBrowser.Api/SearchService.cs | 6 | ||||
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/ArtistsService.cs | 21 |
7 files changed, 17 insertions, 82 deletions
diff --git a/MediaBrowser.Api/BaseApiService.cs b/MediaBrowser.Api/BaseApiService.cs index d01e96a5ad..ee0721d5eb 100644 --- a/MediaBrowser.Api/BaseApiService.cs +++ b/MediaBrowser.Api/BaseApiService.cs @@ -92,7 +92,7 @@ namespace MediaBrowser.Api private readonly char[] _dashReplaceChars = new[] { '?', '/' }; private const char SlugChar = '-'; - protected Artist GetArtist(string name, ILibraryManager libraryManager) + protected MusicArtist GetArtist(string name, ILibraryManager libraryManager) { return libraryManager.GetArtist(DeSlugArtistName(name, libraryManager)); } @@ -147,21 +147,7 @@ namespace MediaBrowser.Api return name; } - return libraryManager.RootFolder.GetRecursiveChildren() - .OfType<Audio>() - .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) + return libraryManager.GetAllArtists() .FirstOrDefault(i => { i = _dashReplaceChars.Aggregate(i, (current, c) => current.Replace(c, SlugChar)); diff --git a/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs b/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs index ee313ea3bb..4e8864644e 100644 --- a/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs +++ b/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs @@ -194,20 +194,7 @@ namespace MediaBrowser.Api.DefaultTheme .Select(i => _dtoService.GetBaseItemDto(i, fields, user)) .ToList(); - var artists = allItems.OfType<Audio>() - .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) + var artists = _libraryManager.GetAllArtists(allItems) .Randomize() .Select(i => { diff --git a/MediaBrowser.Api/ItemRefreshService.cs b/MediaBrowser.Api/ItemRefreshService.cs index 260d938604..8fca3f338f 100644 --- a/MediaBrowser.Api/ItemRefreshService.cs +++ b/MediaBrowser.Api/ItemRefreshService.cs @@ -264,16 +264,14 @@ namespace MediaBrowser.Api { var item = _dtoService.GetItemByDtoId(request.Id); - var folder = item as Folder; - try { await item.RefreshMetadata(CancellationToken.None, forceRefresh: request.Forced).ConfigureAwait(false); - if (folder != null) + if (item.IsFolder) { // Collection folders don't validate their children so we'll have to simulate that here - var collectionFolder = folder as CollectionFolder; + var collectionFolder = item as CollectionFolder; if (collectionFolder != null) { @@ -281,6 +279,8 @@ namespace MediaBrowser.Api } else { + var folder = (Folder)item; + await folder.ValidateChildren(new Progress<double>(), CancellationToken.None, request.Recursive, request.Forced).ConfigureAwait(false); } } @@ -303,10 +303,10 @@ namespace MediaBrowser.Api { await child.RefreshMetadata(CancellationToken.None, forceRefresh: request.Forced).ConfigureAwait(false); - var folder = child as Folder; - - if (folder != null) + if (child.IsFolder) { + var folder = (Folder)child; + await folder.ValidateChildren(new Progress<double>(), CancellationToken.None, request.Recursive, request.Forced).ConfigureAwait(false); } } diff --git a/MediaBrowser.Api/ItemUpdateService.cs b/MediaBrowser.Api/ItemUpdateService.cs index cfbaf70c90..10149906c9 100644 --- a/MediaBrowser.Api/ItemUpdateService.cs +++ b/MediaBrowser.Api/ItemUpdateService.cs @@ -126,15 +126,6 @@ namespace MediaBrowser.Api UpdateItem(request, item); await _libraryManager.UpdateItem(item, ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); - - var musicArtist = Artist.FindMusicArtist(item, _libraryManager); - - if (musicArtist != null) - { - UpdateItem(request, musicArtist); - - await _libraryManager.UpdateItem(musicArtist, ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); - } } public void Post(UpdateStudio request) diff --git a/MediaBrowser.Api/LibraryService.cs b/MediaBrowser.Api/LibraryService.cs index 06b90b32cb..3863ef2094 100644 --- a/MediaBrowser.Api/LibraryService.cs +++ b/MediaBrowser.Api/LibraryService.cs @@ -367,7 +367,7 @@ namespace MediaBrowser.Api BoxSetCount = boxsets.Count, BookCount = books.Count, - UniqueTypes = items.Select(i => i.GetType().Name).Distinct().ToList() + UniqueTypes = items.Select(i => i.GetClientTypeName()).Distinct().ToList() }; var people = items.SelectMany(i => i.People) @@ -390,19 +390,7 @@ namespace MediaBrowser.Api people = request.UserId.HasValue ? FilterItems(people, request, request.UserId.Value).ToList() : people; counts.PersonCount = people.Count; - var artists = items.OfType<Audio>().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) + var artists = _libraryManager.GetAllArtists(items) .Select(i => { try diff --git a/MediaBrowser.Api/SearchService.cs b/MediaBrowser.Api/SearchService.cs index f87434e976..113df4e38c 100644 --- a/MediaBrowser.Api/SearchService.cs +++ b/MediaBrowser.Api/SearchService.cs @@ -144,7 +144,7 @@ namespace MediaBrowser.Api IndexNumber = item.IndexNumber, ParentIndexNumber = item.ParentIndexNumber, ItemId = _dtoService.GetDtoId(item), - Type = item.GetType().Name, + Type = item.GetClientTypeName(), MediaType = item.MediaType, MatchedTerm = hintInfo.MatchedTerm, DisplayMediaType = item.DisplayMediaType, @@ -187,9 +187,7 @@ namespace MediaBrowser.Api result.SongCount = songs.Count; - result.Artists = songs - .SelectMany(i => i.Artists) - .Distinct(StringComparer.OrdinalIgnoreCase) + result.Artists = _libraryManager.GetAllArtists(songs) .ToArray(); result.AlbumArtist = songs.Select(i => i.AlbumArtist).FirstOrDefault(i => !string.IsNullOrEmpty(i)); diff --git a/MediaBrowser.Api/UserLibrary/ArtistsService.cs b/MediaBrowser.Api/UserLibrary/ArtistsService.cs index ca626116a1..4dd3d744fa 100644 --- a/MediaBrowser.Api/UserLibrary/ArtistsService.cs +++ b/MediaBrowser.Api/UserLibrary/ArtistsService.cs @@ -43,7 +43,7 @@ namespace MediaBrowser.Api.UserLibrary /// <summary> /// Class ArtistsService /// </summary> - public class ArtistsService : BaseItemsByNameService<Artist> + public class ArtistsService : BaseItemsByNameService<MusicArtist> { /// <summary> /// Initializes a new instance of the <see cref="ArtistsService" /> class. @@ -109,24 +109,9 @@ namespace MediaBrowser.Api.UserLibrary /// <param name="request">The request.</param> /// <param name="items">The items.</param> /// <returns>IEnumerable{Tuple{System.StringFunc{System.Int32}}}.</returns> - protected override IEnumerable<Artist> GetAllItems(GetItemsByName request, IEnumerable<BaseItem> items) + protected override IEnumerable<MusicArtist> GetAllItems(GetItemsByName request, IEnumerable<BaseItem> items) { - var itemsList = items.OfType<Audio>().ToList(); - - return itemsList - .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) + return LibraryManager.GetAllArtists(items) .Select(name => LibraryManager.GetArtist(name)); } } |
