aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-11-17 21:48:22 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-11-17 21:48:22 -0500
commit124754a04f1a85fc949e229e45bfd67e5ac6ff62 (patch)
treec5bad076801d85ae7eef9de7041efe407dacbd92 /MediaBrowser.Server.Implementations/Library/LibraryManager.cs
parent049ef9b4ecd2c884e0ddb062b606770ef7f2dfa9 (diff)
use new naming project
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library/LibraryManager.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Library/LibraryManager.cs49
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>();
+ }
}
}