瀏覽代碼

added more metadata control

Luke Pulverenti 11 年之前
父節點
當前提交
25db52003c

+ 3 - 3
MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj

@@ -77,6 +77,9 @@
     <Compile Include="..\MediaBrowser.Model\Configuration\BaseApplicationConfiguration.cs">
       <Link>Configuration\BaseApplicationConfiguration.cs</Link>
     </Compile>
+    <Compile Include="..\MediaBrowser.Model\Configuration\ImageDownloadOptions.cs">
+      <Link>Configuration\ImageDownloadOptions.cs</Link>
+    </Compile>
     <Compile Include="..\MediaBrowser.Model\Configuration\ManualLoginCategory.cs">
       <Link>Configuration\ManualLoginCategory.cs</Link>
     </Compile>
@@ -146,9 +149,6 @@
     <Compile Include="..\MediaBrowser.Model\Entities\IHasProviderIds.cs">
       <Link>Entities\IHasProviderIds.cs</Link>
     </Compile>
-    <Compile Include="..\MediaBrowser.Model\Entities\ImageDownloadOptions.cs">
-      <Link>Entities\ImageDownloadOptions.cs</Link>
-    </Compile>
     <Compile Include="..\MediaBrowser.Model\Entities\ImageType.cs">
       <Link>Entities\ImageType.cs</Link>
     </Compile>

+ 3 - 3
MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj

@@ -64,6 +64,9 @@
     <Compile Include="..\MediaBrowser.Model\Configuration\BaseApplicationConfiguration.cs">
       <Link>Configuration\BaseApplicationConfiguration.cs</Link>
     </Compile>
+    <Compile Include="..\MediaBrowser.Model\Configuration\ImageDownloadOptions.cs">
+      <Link>Configuration\ImageDownloadOptions.cs</Link>
+    </Compile>
     <Compile Include="..\MediaBrowser.Model\Configuration\ManualLoginCategory.cs">
       <Link>Configuration\ManualLoginCategory.cs</Link>
     </Compile>
@@ -133,9 +136,6 @@
     <Compile Include="..\MediaBrowser.Model\Entities\IHasProviderIds.cs">
       <Link>Entities\IHasProviderIds.cs</Link>
     </Compile>
-    <Compile Include="..\MediaBrowser.Model\Entities\ImageDownloadOptions.cs">
-      <Link>Entities\ImageDownloadOptions.cs</Link>
-    </Compile>
     <Compile Include="..\MediaBrowser.Model\Entities\ImageType.cs">
       <Link>Entities\ImageType.cs</Link>
     </Compile>

+ 17 - 1
MediaBrowser.Model/Entities/ImageDownloadOptions.cs → MediaBrowser.Model/Configuration/ImageDownloadOptions.cs

@@ -1,5 +1,5 @@
 
-namespace MediaBrowser.Model.Entities
+namespace MediaBrowser.Model.Configuration
 {
     /// <summary>
     /// Class ImageDownloadOptions
@@ -62,4 +62,20 @@ namespace MediaBrowser.Model.Entities
             Banner = true;
         }
     }
+
+    /// <summary>
+    /// Class MetadataOptions.
+    /// </summary>
+    public class MetadataOptions
+    {
+        public int MaxBackdrops { get; set; }
+
+        public int MinBackdropWidth { get; set; }
+
+        public MetadataOptions()
+        {
+            MaxBackdrops = 3;
+            MinBackdropWidth = 1280;
+        }
+    }
 }

+ 21 - 23
MediaBrowser.Model/Configuration/ServerConfiguration.cs

@@ -1,5 +1,4 @@
-using MediaBrowser.Model.Entities;
-using MediaBrowser.Model.Weather;
+using MediaBrowser.Model.Weather;
 using System;
 
 namespace MediaBrowser.Model.Configuration
@@ -87,12 +86,6 @@ namespace MediaBrowser.Model.Configuration
         /// <value>The metadata country code.</value>
         public string MetadataCountryCode { get; set; }
 
-        /// <summary>
-        /// Gets or sets the max backdrops.
-        /// </summary>
-        /// <value>The max backdrops.</value>
-        public int MaxBackdrops { get; set; }
-
         /// <summary>
         /// Options for specific art to download for movies.
         /// </summary>
@@ -204,18 +197,6 @@ namespace MediaBrowser.Model.Configuration
         /// <value>The image saving convention.</value>
         public ImageSavingConvention ImageSavingConvention { get; set; }
 
-        /// <summary>
-        /// Gets or sets the width of the min movie backdrop.
-        /// </summary>
-        /// <value>The width of the min movie backdrop.</value>
-        public int MinMovieBackdropDownloadWidth { get; set; }
-
-        /// <summary>
-        /// Gets or sets the width of the min series backdrop.
-        /// </summary>
-        /// <value>The width of the min series backdrop.</value>
-        public int MinSeriesBackdropDownloadWidth { get; set; }
-
         /// <summary>
         /// Gets or sets a value indicating whether [enable people prefix sub folders].
         /// </summary>
@@ -232,6 +213,12 @@ namespace MediaBrowser.Model.Configuration
         public bool EnableEpisodeChapterImageExtraction { get; set; }
         public bool EnableOtherVideoChapterImageExtraction { get; set; }
 
+        public MetadataOptions MovieOptions { get; set; }
+        public MetadataOptions TvOptions { get; set; }
+        public MetadataOptions MusicOptions { get; set; }
+        public MetadataOptions GameOptions { get; set; }
+        public MetadataOptions BookOptions { get; set; }
+
         /// <summary>
         /// Initializes a new instance of the <see cref="ServerConfiguration" /> class.
         /// </summary>
@@ -272,7 +259,6 @@ namespace MediaBrowser.Model.Configuration
             };
             DownloadMusicArtistImages = new ImageDownloadOptions();
             DownloadMusicAlbumImages = new ImageDownloadOptions();
-            MaxBackdrops = 3;
 
             SortReplaceCharacters = new[] { ".", "+", "%" };
             SortRemoveCharacters = new[] { ",", "&", "-", "{", "}", "'" };
@@ -280,8 +266,20 @@ namespace MediaBrowser.Model.Configuration
 
             SeasonZeroDisplayName = "Specials";
 
-            MinMovieBackdropDownloadWidth = 1280;
-            MinSeriesBackdropDownloadWidth = 1280;
+            MovieOptions = new MetadataOptions();
+            TvOptions = new MetadataOptions();
+
+            MusicOptions = new MetadataOptions()
+            {
+                MaxBackdrops = 1
+            };
+
+            GameOptions = new MetadataOptions();
+
+            BookOptions = new MetadataOptions
+            {
+                 MaxBackdrops = 1
+            };
         }
     }
 

+ 1 - 1
MediaBrowser.Model/MediaBrowser.Model.csproj

@@ -118,7 +118,7 @@
     <Compile Include="Session\MessageCommand.cs" />
     <Compile Include="Session\PlayRequest.cs" />
     <Compile Include="Session\PlaystateCommand.cs" />
-    <Compile Include="Entities\ImageDownloadOptions.cs" />
+    <Compile Include="Configuration\ImageDownloadOptions.cs" />
     <Compile Include="Logging\ILogManager.cs" />
     <Compile Include="MediaInfo\BlurayDiscInfo.cs" />
     <Compile Include="Entities\ChapterInfo.cs" />

+ 1 - 1
MediaBrowser.Providers/Movies/FanArtMovieProvider.cs

@@ -300,7 +300,7 @@ namespace MediaBrowser.Providers.Movies
 
             cancellationToken.ThrowIfCancellationRequested();
 
-            var backdropLimit = ConfigurationManager.Configuration.MaxBackdrops;
+            var backdropLimit = ConfigurationManager.Configuration.MovieOptions.MaxBackdrops;
             if (ConfigurationManager.Configuration.DownloadMovieImages.Backdrops &&
                 item.BackdropImagePaths.Count < backdropLimit)
             {

+ 4 - 4
MediaBrowser.Providers/Movies/MovieDbImagesProvider.cs

@@ -132,8 +132,8 @@ namespace MediaBrowser.Providers.Movies
             }
 
             // Don't refresh if we already have both poster and backdrop and we're not refreshing images
-            if (item.HasImage(ImageType.Primary) && 
-                item.BackdropImagePaths.Count >= ConfigurationManager.Configuration.MaxBackdrops &&
+            if (item.HasImage(ImageType.Primary) &&
+                item.BackdropImagePaths.Count >= ConfigurationManager.Configuration.MovieOptions.MaxBackdrops &&
                 !item.LockedFields.Contains(MetadataFields.Images))
             {
                 return false;
@@ -211,10 +211,10 @@ namespace MediaBrowser.Providers.Movies
             cancellationToken.ThrowIfCancellationRequested();
 
             var eligibleBackdrops = images
-                .Where(i => i.Type == ImageType.Backdrop && i.Width.HasValue && i.Width.Value >= ConfigurationManager.Configuration.MinMovieBackdropDownloadWidth)
+                .Where(i => i.Type == ImageType.Backdrop && i.Width.HasValue && i.Width.Value >= ConfigurationManager.Configuration.MovieOptions.MinBackdropWidth)
                 .ToList();
 
-            var backdropLimit = ConfigurationManager.Configuration.MaxBackdrops;
+            var backdropLimit = ConfigurationManager.Configuration.MovieOptions.MaxBackdrops;
 
             // backdrops - only download if earlier providers didn't find any (fanart)
             if (eligibleBackdrops.Count > 0 &&

+ 1 - 1
MediaBrowser.Providers/Music/FanArtArtistProvider.cs

@@ -302,7 +302,7 @@ namespace MediaBrowser.Providers.Music
             {
                 cancellationToken.ThrowIfCancellationRequested();
 
-                var backdropLimit = ConfigurationManager.Configuration.MaxBackdrops;
+                var backdropLimit = ConfigurationManager.Configuration.MusicOptions.MaxBackdrops;
                 if (ConfigurationManager.Configuration.DownloadMusicArtistImages.Backdrops &&
                     item.BackdropImagePaths.Count < backdropLimit)
                 {

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

@@ -238,7 +238,7 @@ namespace MediaBrowser.Providers.TV
             {
                 cancellationToken.ThrowIfCancellationRequested();
 
-                var backdropLimit = ConfigurationManager.Configuration.MaxBackdrops;
+                var backdropLimit = ConfigurationManager.Configuration.TvOptions.MaxBackdrops;
                 if (ConfigurationManager.Configuration.DownloadSeriesImages.Backdrops &&
                     item.BackdropImagePaths.Count < backdropLimit)
                 {

+ 2 - 2
MediaBrowser.Providers/TV/TvdbSeriesImageProvider.cs

@@ -137,7 +137,7 @@ namespace MediaBrowser.Providers.TV
 
         protected override bool NeedsRefreshInternal(BaseItem item, BaseProviderInfo providerInfo)
         {
-            if (item.HasImage(ImageType.Primary) && item.HasImage(ImageType.Banner) && item.BackdropImagePaths.Count >= ConfigurationManager.Configuration.MaxBackdrops)
+            if (item.HasImage(ImageType.Primary) && item.HasImage(ImageType.Banner) && item.BackdropImagePaths.Count >= ConfigurationManager.Configuration.TvOptions.MaxBackdrops)
             {
                 return false;
             }
@@ -196,7 +196,7 @@ namespace MediaBrowser.Providers.TV
             {
                 foreach (var backdrop in images.Where(i => i.Type == ImageType.Backdrop && 
                     (!i.Width.HasValue || 
-                    i.Width.Value >= ConfigurationManager.Configuration.MinSeriesBackdropDownloadWidth)))
+                    i.Width.Value >= ConfigurationManager.Configuration.TvOptions.MinBackdropWidth)))
                 {
                     var url = backdrop.Url;
 

+ 1 - 6
MediaBrowser.Server.Implementations/Drawing/ImageProcessor.cs

@@ -228,17 +228,12 @@ namespace MediaBrowser.Server.Implementations.Drawing
                             // Graphics.FromImage will throw an exception if the PixelFormat is Indexed, so we need to handle that here
                             using (var thumbnail = new Bitmap(newWidth, newHeight, PixelFormat.Format32bppPArgb))
                             {
-                                #if __MonoCS__
                                 // Mono throw an exeception if assign 0 to SetResolution
-                                if (originalImage.HorizontalResolution != 0 && originalImage.VerticalResolution != 0)
+                                if (originalImage.HorizontalResolution >= 0 && originalImage.VerticalResolution >= 0)
                                 {
                                     // Preserve the original resolution
                                     thumbnail.SetResolution(originalImage.HorizontalResolution, originalImage.VerticalResolution);
                                 }
-                                #else
-                                // Preserve the original resolution
-                                thumbnail.SetResolution(originalImage.HorizontalResolution, originalImage.VerticalResolution);
-                                #endif
 
                                 using (var thumbnailGraph = Graphics.FromImage(thumbnail))
                                 {

+ 1 - 2
MediaBrowser.WebDashboard/Api/DashboardService.cs

@@ -472,7 +472,7 @@ namespace MediaBrowser.WebDashboard.Api
                                       "alphapicker.js",
                                       "addpluginpage.js",
                                       "advancedconfigurationpage.js",
-                                      "advancedmetadataconfigurationpage.js",
+                                      "metadataadvanced.js",
                                       "boxsets.js",
                                       "appsplayback.js",
                                       "appsweather.js",
@@ -510,7 +510,6 @@ namespace MediaBrowser.WebDashboard.Api
                                       "mediaplayer.js",
                                       "metadataconfigurationpage.js",
                                       "metadataimagespage.js",
-                                      "metadataimageextraction.js",
                                       "moviegenres.js",
                                       "movies.js",
                                       "moviepeople.js",

+ 2 - 8
MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj

@@ -154,9 +154,6 @@
     <Content Include="dashboard-ui\livetvtimers.html">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="dashboard-ui\metadataimageextraction.html">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
     <Content Include="dashboard-ui\musicalbumartists.html">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
@@ -436,9 +433,6 @@
     <Content Include="dashboard-ui\scripts\livetvtimers.js">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="dashboard-ui\scripts\metadataimageextraction.js">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
     <Content Include="dashboard-ui\scripts\musicalbumartists.js">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
@@ -1531,12 +1525,12 @@
     </Content>
   </ItemGroup>
   <ItemGroup>
-    <Content Include="dashboard-ui\advancedmetadata.html">
+    <Content Include="dashboard-ui\metadataadvanced.html">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
   </ItemGroup>
   <ItemGroup>
-    <Content Include="dashboard-ui\scripts\advancedmetadataconfigurationpage.js">
+    <Content Include="dashboard-ui\scripts\metadataadvanced.js">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
   </ItemGroup>