aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Library
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library')
-rw-r--r--MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs42
1 files changed, 26 insertions, 16 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs
index 492e410ec..c10db1bfa 100644
--- a/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs
+++ b/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))
{