aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Library/Resolvers
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-02-14 16:35:09 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-02-14 16:35:09 -0500
commitdaa0b6cd0ecefd60611752802d062c15e6da85de (patch)
treef58a16e47afed9b61471e3871280faa9fc8bd951 /MediaBrowser.Server.Implementations/Library/Resolvers
parent7d26b8995f313917829573a7cd96c37decc9158a (diff)
parentfd5f12e76227d96c52cdc31b67ef9543b485169b (diff)
Merge branch 'beta'
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library/Resolvers')
-rw-r--r--MediaBrowser.Server.Implementations/Library/Resolvers/BaseVideoResolver.cs21
-rw-r--r--MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs43
-rw-r--r--MediaBrowser.Server.Implementations/Library/Resolvers/TV/EpisodeResolver.cs2
3 files changed, 44 insertions, 22 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/BaseVideoResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/BaseVideoResolver.cs
index fd74b68b8..9edd3f83f 100644
--- a/MediaBrowser.Server.Implementations/Library/Resolvers/BaseVideoResolver.cs
+++ b/MediaBrowser.Server.Implementations/Library/Resolvers/BaseVideoResolver.cs
@@ -191,6 +191,23 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers
video.IsHD = true;
}
}
+
+ SetIsoType(video);
+ }
+
+ protected void SetIsoType(Video video)
+ {
+ if (video.VideoType == VideoType.Iso)
+ {
+ if (video.Path.IndexOf("dvd", StringComparison.OrdinalIgnoreCase) != -1)
+ {
+ video.IsoType = IsoType.Dvd;
+ }
+ else if (video.Path.IndexOf("bluray", StringComparison.OrdinalIgnoreCase) != -1)
+ {
+ video.IsoType = IsoType.BluRay;
+ }
+ }
}
protected void Set3DFormat(Video video, bool is3D, string format3D)
@@ -225,6 +242,10 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers
{
video.Video3DFormat = Video3DFormat.HalfTopAndBottom;
}
+ else if (string.Equals(format3D, "mvc", StringComparison.OrdinalIgnoreCase))
+ {
+ video.Video3DFormat = Video3DFormat.MVC;
+ }
}
}
diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs
index 3252db505..23424bf3c 100644
--- a/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs
+++ b/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs
@@ -67,7 +67,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
string collectionType,
IDirectoryService directoryService)
{
- if (IsInvalid(parent, collectionType, files))
+ if (IsInvalid(parent, collectionType))
{
return null;
}
@@ -77,16 +77,12 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
return ResolveVideos<MusicVideo>(parent, files, directoryService, false);
}
- if (string.Equals(collectionType, CollectionType.HomeVideos, StringComparison.OrdinalIgnoreCase))
+ if (string.Equals(collectionType, CollectionType.HomeVideos, StringComparison.OrdinalIgnoreCase) ||
+ string.Equals(collectionType, CollectionType.Photos, StringComparison.OrdinalIgnoreCase))
{
return ResolveVideos<Video>(parent, files, directoryService, false);
}
- if (string.Equals(collectionType, CollectionType.Photos, StringComparison.OrdinalIgnoreCase))
- {
- //return ResolveVideos<Video>(parent, files, directoryService, collectionType, false);
- }
-
if (string.IsNullOrEmpty(collectionType))
{
// Owned items should just use the plain video type
@@ -95,7 +91,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
return ResolveVideos<Video>(parent, files, directoryService, false);
}
- if (parent is Series || parent.Parents.OfType<Series>().Any())
+ if (parent is Series || parent.GetParents().OfType<Series>().Any())
{
return null;
}
@@ -185,7 +181,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
{
var collectionType = args.GetCollectionType();
- if (IsInvalid(args.Parent, collectionType, args.FileSystemChildren))
+ if (IsInvalid(args.Parent, collectionType))
{
return null;
}
@@ -193,14 +189,18 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
// Find movies with their own folders
if (args.IsDirectory)
{
+ var files = args.FileSystemChildren
+ .Where(i => !LibraryManager.IgnoreFile(i, args.Parent))
+ .ToList();
+
if (string.Equals(collectionType, CollectionType.MusicVideos, StringComparison.OrdinalIgnoreCase))
{
- return FindMovie<MusicVideo>(args.Path, args.Parent, args.FileSystemChildren.ToList(), args.DirectoryService, collectionType);
+ return FindMovie<MusicVideo>(args.Path, args.Parent, files, args.DirectoryService, collectionType);
}
if (string.Equals(collectionType, CollectionType.HomeVideos, StringComparison.OrdinalIgnoreCase))
{
- return FindMovie<Video>(args.Path, args.Parent, args.FileSystemChildren.ToList(), args.DirectoryService, collectionType);
+ return FindMovie<Video>(args.Path, args.Parent, files, args.DirectoryService, collectionType);
}
if (string.IsNullOrEmpty(collectionType))
@@ -208,7 +208,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
// Owned items should just use the plain video type
if (args.Parent == null)
{
- return FindMovie<Video>(args.Path, args.Parent, args.FileSystemChildren.ToList(), args.DirectoryService, collectionType);
+ return FindMovie<Video>(args.Path, args.Parent, files, args.DirectoryService, collectionType);
}
if (args.HasParent<Series>())
@@ -216,12 +216,12 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
return null;
}
- return FindMovie<Movie>(args.Path, args.Parent, args.FileSystemChildren.ToList(), args.DirectoryService, collectionType);
+ return FindMovie<Movie>(args.Path, args.Parent, files, args.DirectoryService, collectionType);
}
if (string.Equals(collectionType, CollectionType.Movies, StringComparison.OrdinalIgnoreCase))
{
- return FindMovie<Movie>(args.Path, args.Parent, args.FileSystemChildren.ToList(), args.DirectoryService, collectionType);
+ return FindMovie<Movie>(args.Path, args.Parent, files, args.DirectoryService, collectionType);
}
return null;
@@ -246,11 +246,8 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
item = ResolveVideo<Movie>(args, true);
}
- else if (string.Equals(collectionType, CollectionType.HomeVideos, StringComparison.OrdinalIgnoreCase))
- {
- item = ResolveVideo<Video>(args, false);
- }
- else if (string.Equals(collectionType, CollectionType.Photos, StringComparison.OrdinalIgnoreCase))
+ else if (string.Equals(collectionType, CollectionType.HomeVideos, StringComparison.OrdinalIgnoreCase) ||
+ string.Equals(collectionType, CollectionType.Photos, StringComparison.OrdinalIgnoreCase))
{
item = ResolveVideo<Video>(args, false);
}
@@ -482,7 +479,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
return null;
}
- return new T
+ var returnVideo = new T
{
Path = folderPaths[0],
@@ -492,9 +489,13 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
Name = result.Stacks[0].Name
};
+
+ SetIsoType(returnVideo);
+
+ return returnVideo;
}
- private bool IsInvalid(Folder parent, string collectionType, IEnumerable<FileSystemMetadata> files)
+ private bool IsInvalid(Folder parent, string collectionType)
{
if (parent != null)
{
diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/TV/EpisodeResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/TV/EpisodeResolver.cs
index 1a873f01e..e62049821 100644
--- a/MediaBrowser.Server.Implementations/Library/Resolvers/TV/EpisodeResolver.cs
+++ b/MediaBrowser.Server.Implementations/Library/Resolvers/TV/EpisodeResolver.cs
@@ -33,7 +33,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.TV
// Not officially supported but in some cases we can handle it.
if (season == null)
{
- season = parent.Parents.OfType<Season>().FirstOrDefault();
+ season = parent.GetParents().OfType<Season>().FirstOrDefault();
}
// If the parent is a Season or Series, then this is an Episode if the VideoResolver returns something