diff --git a/MediaBrowser.Providers/MediaBrowser.Providers.csproj b/MediaBrowser.Providers/MediaBrowser.Providers.csproj
index c7298b4622..b5b41c6d3d 100644
--- a/MediaBrowser.Providers/MediaBrowser.Providers.csproj
+++ b/MediaBrowser.Providers/MediaBrowser.Providers.csproj
@@ -89,7 +89,6 @@
-
diff --git a/MediaBrowser.Providers/Movies/ManualMovieDbPersonImageProvider.cs b/MediaBrowser.Providers/Movies/ManualMovieDbPersonImageProvider.cs
index ecfae9d5c0..b381de3322 100644
--- a/MediaBrowser.Providers/Movies/ManualMovieDbPersonImageProvider.cs
+++ b/MediaBrowser.Providers/Movies/ManualMovieDbPersonImageProvider.cs
@@ -46,7 +46,12 @@ namespace MediaBrowser.Providers.Movies
return images.Where(i => i.Type == imageType);
}
- public async Task> GetAllImages(BaseItem item, CancellationToken cancellationToken)
+ public Task> GetAllImages(BaseItem item, CancellationToken cancellationToken)
+ {
+ return GetAllImagesInternal(item, true, cancellationToken);
+ }
+
+ public async Task> GetAllImagesInternal(BaseItem item, bool retryOnMissingData, CancellationToken cancellationToken)
{
var id = item.GetProviderId(MetadataProviders.Tmdb);
@@ -70,11 +75,18 @@ namespace MediaBrowser.Providers.Movies
{
}
+
+ if (retryOnMissingData)
+ {
+ await MovieDbPersonProvider.Current.DownloadPersonInfo(id, cancellationToken).ConfigureAwait(false);
+
+ return await GetAllImagesInternal(item, false, cancellationToken).ConfigureAwait(false);
+ }
}
return new List();
}
-
+
private IEnumerable GetImages(MovieDbPersonProvider.Images images, string baseImageUrl)
{
var list = new List();
diff --git a/MediaBrowser.Providers/Music/AlbumDynamicInfoProvider.cs b/MediaBrowser.Providers/Music/AlbumDynamicInfoProvider.cs
deleted file mode 100644
index 5c14a2f56c..0000000000
--- a/MediaBrowser.Providers/Music/AlbumDynamicInfoProvider.cs
+++ /dev/null
@@ -1,103 +0,0 @@
-using MediaBrowser.Controller.Configuration;
-using MediaBrowser.Controller.Entities;
-using MediaBrowser.Controller.Entities.Audio;
-using MediaBrowser.Controller.Providers;
-using MediaBrowser.Model.Logging;
-using System;
-using System.Linq;
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace MediaBrowser.Providers.Music
-{
- ///
- /// Class MusicAlbumDynamicInfoProvider
- ///
- public class AlbumDynamicInfoProvider : BaseMetadataProvider, IDynamicInfoProvider
- {
- ///
- /// Initializes a new instance of the class.
- ///
- /// The log manager.
- /// The configuration manager.
- public AlbumDynamicInfoProvider(ILogManager logManager, IServerConfigurationManager configurationManager)
- : base(logManager, configurationManager)
- {
- }
-
- ///
- /// Supportses the specified item.
- ///
- /// The item.
- /// true if XXXX, false otherwise
- public override bool Supports(BaseItem item)
- {
- return item is MusicAlbum;
- }
-
- ///
- /// Needses the refresh internal.
- ///
- /// The item.
- /// The provider info.
- /// true if XXXX, false otherwise
- protected override bool NeedsRefreshInternal(BaseItem item, BaseProviderInfo providerInfo)
- {
- return true;
- }
-
- ///
- /// Fetches metadata and returns true or false indicating if any work that requires persistence was done
- ///
- /// The item.
- /// if set to true [force].
- /// The cancellation token.
- /// Task{System.Boolean}.
- public override Task FetchAsync(BaseItem item, bool force, CancellationToken cancellationToken)
- {
- var album = (MusicAlbum)item;
-
- var songs = album.RecursiveChildren
- .OfType