From 124754a04f1a85fc949e229e45bfd67e5ac6ff62 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 17 Nov 2014 21:48:22 -0500 Subject: use new naming project --- .../Library/LibraryManager.cs | 49 ++++++++++++++++------ 1 file changed, 37 insertions(+), 12 deletions(-) (limited to 'MediaBrowser.Server.Implementations/Library/LibraryManager.cs') diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index e2a2ce0a4..9e695fa2c 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -1644,18 +1644,6 @@ namespace MediaBrowser.Server.Implementations.Library return parser.IsAudioFile(path); } - public bool IsMultiPartFile(string path) - { - var parser = new MultiPartParser(new ExpandedVideoOptions(), new AudioOptions(), new Naming.Logging.NullLogger()); - return parser.Parse(path, FileInfoType.File).IsMultiPart; - } - - public bool IsMultiPartFolder(string path) - { - var parser = new MultiPartParser(new ExpandedVideoOptions(), new AudioOptions(), new Naming.Logging.NullLogger()); - return parser.Parse(path, FileInfoType.Directory).IsMultiPart; - } - public int? GetSeasonNumberFromPath(string path) { return SeriesResolver.GetSeasonNumberFromPath(path); @@ -1688,5 +1676,42 @@ namespace MediaBrowser.Server.Implementations.Library Year = result.Year }; } + + public IEnumerable GetAdditionalParts(string file, + VideoType type, + IEnumerable files) + { + var resolver = new StackResolver(new ExpandedVideoOptions(), new AudioOptions(), new Naming.Logging.NullLogger()); + + StackResult result; + List filteredFiles; + + if (type == VideoType.BluRay || type == VideoType.Dvd) + { + filteredFiles = files.Where(i => (i.Attributes & FileAttributes.Directory) == FileAttributes.Directory) + .ToList(); + + result = resolver.ResolveDirectories(filteredFiles.Select(i => i.FullName)); + } + else + { + filteredFiles = files.Where(i => (i.Attributes & FileAttributes.Directory) != FileAttributes.Directory) + .ToList(); + + result = resolver.ResolveFiles(filteredFiles.Select(i => i.FullName)); + } + + var stack = result.Stacks + .FirstOrDefault(i => i.Files.Contains(file, StringComparer.OrdinalIgnoreCase)); + + if (stack != null) + { + return stack.Files.Where(i => !string.Equals(i, file, StringComparison.OrdinalIgnoreCase)) + .Select(i => filteredFiles.FirstOrDefault(f => string.Equals(i, f.FullName, StringComparison.OrdinalIgnoreCase))) + .Where(i => i != null); + } + + return new List(); + } } } -- cgit v1.2.3