소스 검색

fixes #591 - Support new fanart movie posters

Luke Pulverenti 11 년 전
부모
커밋
62621bf97b
2개의 변경된 파일19개의 추가작업 그리고 2개의 파일을 삭제
  1. 18 2
      MediaBrowser.Providers/Movies/FanArtMovieProvider.cs
  2. 1 0
      MediaBrowser.Providers/TV/FanArtTVProvider.cs

+ 18 - 2
MediaBrowser.Providers/Movies/FanArtMovieProvider.cs

@@ -141,12 +141,14 @@ namespace MediaBrowser.Providers.Movies
                 !ConfigurationManager.Configuration.DownloadMovieImages.Disc &&
                 !ConfigurationManager.Configuration.DownloadMovieImages.Backdrops &&
                 !ConfigurationManager.Configuration.DownloadMovieImages.Banner &&
-                !ConfigurationManager.Configuration.DownloadMovieImages.Thumb)
+                !ConfigurationManager.Configuration.DownloadMovieImages.Thumb &&
+                !ConfigurationManager.Configuration.DownloadMovieImages.Primary)
             {
                 return false;
             }
 
-            if (item.HasImage(ImageType.Art) &&
+            if (item.HasImage(ImageType.Primary) &&
+                item.HasImage(ImageType.Art) &&
                 item.HasImage(ImageType.Logo) &&
                 item.HasImage(ImageType.Disc) &&
                 item.HasImage(ImageType.Banner) &&
@@ -298,6 +300,20 @@ namespace MediaBrowser.Providers.Movies
 
             string path;
 
+            if (ConfigurationManager.Configuration.DownloadMovieImages.Disc && !item.HasImage(ImageType.Disc))
+            {
+                var node = doc.SelectSingleNode("//fanart/movie/movieposters/movieposter[@lang = \"" + language + "\"]/@url") ??
+                           doc.SelectSingleNode("//fanart/movie/movieposters/movieposter/@url");
+                path = node != null ? node.Value : null;
+                if (!string.IsNullOrEmpty(path))
+                {
+                    await _providerManager.SaveImage(item, path, FanArtResourcePool, ImageType.Disc, null, cancellationToken)
+                                        .ConfigureAwait(false);
+                }
+            }
+
+            cancellationToken.ThrowIfCancellationRequested();
+            
             if (ConfigurationManager.Configuration.DownloadMovieImages.Logo && !item.HasImage(ImageType.Logo))
             {
                 var node =

+ 1 - 0
MediaBrowser.Providers/TV/FanArtTVProvider.cs

@@ -126,6 +126,7 @@ namespace MediaBrowser.Providers.TV
                 catch (DirectoryNotFoundException)
                 {
                     // Don't blow up
+                    return true;
                 }
             }