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