浏览代码

prep work for multiple movies in folder support

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

+ 2 - 3
MediaBrowser.Providers/MediaInfo/FFProbeAudioInfoProvider.cs

@@ -1,6 +1,4 @@
-using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
-using MediaBrowser.Common.MediaInfo;
+using MediaBrowser.Common.MediaInfo;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.Audio;
@@ -11,6 +9,7 @@ using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Threading;
+using System.Threading.Tasks;
 
 namespace MediaBrowser.Providers.MediaInfo
 {

+ 2 - 4
MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs

@@ -1,10 +1,7 @@
-using System.Globalization;
-using MediaBrowser.Common.IO;
-using MediaBrowser.Common.MediaInfo;
+using MediaBrowser.Common.MediaInfo;
 using MediaBrowser.Controller;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
-using MediaBrowser.Controller.Entities.Movies;
 using MediaBrowser.Controller.Localization;
 using MediaBrowser.Controller.Persistence;
 using MediaBrowser.Controller.Providers;
@@ -15,6 +12,7 @@ using MediaBrowser.Model.MediaInfo;
 using MediaBrowser.Model.Serialization;
 using System;
 using System.Collections.Generic;
+using System.Globalization;
 using System.IO;
 using System.Linq;
 using System.Threading;

+ 26 - 16
MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs

@@ -48,35 +48,45 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
         /// <returns>Video.</returns>
         protected override Video Resolve(ItemResolveArgs args)
         {
-            // Must be a directory
-            if (args.IsDirectory)
+            // Avoid expensive tests against VF's and all their children by not allowing this
+            if (args.Parent != null)
             {
-                // Avoid expensive tests against VF's and all their children by not allowing this
-                if (args.Parent != null)
+                if (args.Parent.IsRoot)
                 {
-                    if (args.Parent.IsRoot)
-                    {
-                        return null;
-                    }
+                    return null;
+                }
 
-                    // If the parent is not a boxset, the only other allowed parent type is Folder		
-                    if (!(args.Parent is BoxSet))
+                // If the parent is not a boxset, the only other allowed parent type is Folder		
+                if (!(args.Parent is BoxSet))
+                {
+                    if (args.Parent.GetType() != typeof(Folder))
                     {
-                        if (args.Parent.GetType() != typeof(Folder))
-                        {
-                            return null;
-                        }
+                        return null;
                     }
                 }
+            }
 
+            // Since the looping is expensive, this is an optimization to help us avoid it
+            if (args.Path.IndexOf("[tvdbid", StringComparison.OrdinalIgnoreCase) != -1)
+            {
+                return null;
+            }
+
+            var isDirectory = args.IsDirectory;
+
+            if (isDirectory)
+            {
                 // Since the looping is expensive, this is an optimization to help us avoid it
-                if (args.ContainsMetaFileByName("series.xml") || args.Path.IndexOf("[tvdbid", StringComparison.OrdinalIgnoreCase) != -1)
+                if (args.ContainsMetaFileByName("series.xml"))
                 {
                     return null;
                 }
+            }
 
-                var collectionType = args.Parent == null ? null : _libraryManager.FindCollectionType(args.Parent);
+            var collectionType = args.Parent == null ? null : _libraryManager.FindCollectionType(args.Parent);
 
+            if (isDirectory)
+            {
                 if (args.Path.IndexOf("[trailers]", StringComparison.OrdinalIgnoreCase) != -1 ||
                     string.Equals(collectionType, CollectionType.Trailers, StringComparison.OrdinalIgnoreCase))
                 {

+ 2 - 2
MediaBrowser.Server.Implementations/MediaEncoder/MediaEncoder.cs

@@ -1,5 +1,4 @@
-using System.Globalization;
-using MediaBrowser.Common.Configuration;
+using MediaBrowser.Common.Configuration;
 using MediaBrowser.Common.IO;
 using MediaBrowser.Common.MediaInfo;
 using MediaBrowser.Model.Entities;
@@ -10,6 +9,7 @@ using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Diagnostics;
+using System.Globalization;
 using System.IO;
 using System.Linq;
 using System.Reflection;