浏览代码

don't allow theme songs to get mixed in with children

Luke Pulverenti 12 年之前
父节点
当前提交
dbf214883c

+ 2 - 1
MediaBrowser.Controller/Entities/BaseItem.cs

@@ -52,6 +52,7 @@ namespace MediaBrowser.Controller.Entities
         /// </summary>
         public const string TrailerFolderName = "trailers";
         public const string ThemeSongsFolderName = "theme-music";
+        public const string ThemeSongFilename = "theme";
         public const string ThemeVideosFolderName = "backdrops";
         public const string XbmcTrailerFileSuffix = "-trailer";
 
@@ -822,7 +823,7 @@ namespace MediaBrowser.Controller.Entities
 
             // Support plex/xbmc convention
             files.AddRange(resolveArgs.FileSystemChildren
-                .Where(i => string.Equals(System.IO.Path.GetFileNameWithoutExtension(i.FullName), "theme", StringComparison.OrdinalIgnoreCase) && EntityResolutionHelper.IsAudioFile(i.FullName))
+                .Where(i => string.Equals(System.IO.Path.GetFileNameWithoutExtension(i.FullName), ThemeSongFilename, StringComparison.OrdinalIgnoreCase) && EntityResolutionHelper.IsAudioFile(i.FullName))
                 );
 
             return LibraryManager.ResolvePaths<Audio.Audio>(files, null).Select(audio =>

+ 14 - 1
MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs

@@ -77,7 +77,8 @@ namespace MediaBrowser.Server.Implementations.Library
                 }
 
                 // Ignore trailer folders but allow it at the collection level
-                if (string.Equals(filename, BaseItem.TrailerFolderName, StringComparison.OrdinalIgnoreCase) && !(args.Parent is AggregateFolder) && !(args.Parent is UserRootFolder))
+                if (string.Equals(filename, BaseItem.TrailerFolderName, StringComparison.OrdinalIgnoreCase) &&
+                    !(args.Parent is AggregateFolder) && !(args.Parent is UserRootFolder))
                 {
                     return true;
                 }
@@ -92,6 +93,18 @@ namespace MediaBrowser.Server.Implementations.Library
                     return true;
                 }
             }
+            else
+            {
+                if (args.Parent != null)
+                {
+                    var filename = args.FileInfo.Name;
+
+                    if (string.Equals(Path.GetFileNameWithoutExtension(filename), BaseItem.ThemeSongFilename) && EntityResolutionHelper.IsAudioFile(filename))
+                    {
+                        return true;
+                    }
+                }
+            }
 
             return false;
         }