diff options
Diffstat (limited to 'MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs')
| -rw-r--r-- | MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs b/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs index 6ad38033a..f40ab3cde 100644 --- a/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs +++ b/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs @@ -9,6 +9,7 @@ using MediaBrowser.Model.Serialization; using System.Threading; using System.Threading.Tasks; using MediaBrowser.Controller.Library; +using MediaBrowser.Model.Dto; namespace MediaBrowser.Controller.Entities.Audio { @@ -227,7 +228,39 @@ namespace MediaBrowser.Controller.Entities.Audio // Refresh current item await RefreshMetadata(parentRefreshOptions, cancellationToken).ConfigureAwait(false); + if (!refreshOptions.IsAutomated) + { + await RefreshArtists(refreshOptions, cancellationToken).ConfigureAwait(false); + } + progress.Report(100); } + + private async Task RefreshArtists(MetadataRefreshOptions refreshOptions, CancellationToken cancellationToken) + { + var artists = AllArtists.Select(i => + { + // This should not be necessary but we're seeing some cases of it + if (string.IsNullOrWhiteSpace(i)) + { + return null; + } + + var artist = LibraryManager.GetArtist(i); + + if (!artist.IsAccessedByName) + { + return null; + } + + return artist; + + }).Where(i => i != null).ToList(); + + foreach (var artist in artists) + { + await artist.RefreshMetadata(refreshOptions, cancellationToken).ConfigureAwait(false); + } + } } } |
