diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-11-17 21:48:22 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-11-17 21:48:22 -0500 |
| commit | 124754a04f1a85fc949e229e45bfd67e5ac6ff62 (patch) | |
| tree | c5bad076801d85ae7eef9de7041efe407dacbd92 /MediaBrowser.Server.Implementations/Library/LibraryManager.cs | |
| parent | 049ef9b4ecd2c884e0ddb062b606770ef7f2dfa9 (diff) | |
use new naming project
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library/LibraryManager.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Library/LibraryManager.cs | 49 |
1 files changed, 37 insertions, 12 deletions
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<FileSystemInfo> GetAdditionalParts(string file, + VideoType type, + IEnumerable<FileSystemInfo> files) + { + var resolver = new StackResolver(new ExpandedVideoOptions(), new AudioOptions(), new Naming.Logging.NullLogger()); + + StackResult result; + List<FileSystemInfo> 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<FileSystemInfo>(); + } } } |
