diff options
| author | Luke <luke.pulverenti@gmail.com> | 2015-01-10 01:59:48 -0500 |
|---|---|---|
| committer | Luke <luke.pulverenti@gmail.com> | 2015-01-10 01:59:48 -0500 |
| commit | 18b5168f05dc325985ac6a7b2b5b390fa4b12042 (patch) | |
| tree | 7e440e3267895f7ce161ac5ae3d5723e0894bd5f /MediaBrowser.Server.Implementations/Library/Resolvers/Audio | |
| parent | e3a1c13e7cc8c49eb66b395b4810339f41fdf6b3 (diff) | |
| parent | e97848289600570b489b6fdb608014b383772523 (diff) | |
Merge pull request #971 from MediaBrowser/dev
3.0.5482.4
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library/Resolvers/Audio')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicAlbumResolver.cs | 43 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicArtistResolver.cs | 6 |
2 files changed, 28 insertions, 21 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicAlbumResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicAlbumResolver.cs index 0f703cb22..7c8ddabeb 100644 --- a/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicAlbumResolver.cs +++ b/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicAlbumResolver.cs @@ -1,7 +1,5 @@ using MediaBrowser.Common.IO; using MediaBrowser.Controller.Entities.Audio; -using MediaBrowser.Controller.Entities.Movies; -using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Resolvers; @@ -76,14 +74,10 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Audio /// </summary> /// <param name="path">The path.</param> /// <param name="directoryService">The directory service.</param> - /// <param name="logger">The logger.</param> - /// <param name="fileSystem">The file system.</param> - /// <param name="libraryManager">The library manager.</param> /// <returns><c>true</c> if [is music album] [the specified data]; otherwise, <c>false</c>.</returns> - public static bool IsMusicAlbum(string path, IDirectoryService directoryService, ILogger logger, IFileSystem fileSystem, - ILibraryManager libraryManager) + public bool IsMusicAlbum(string path, IDirectoryService directoryService) { - return ContainsMusic(directoryService.GetFileSystemEntries(path), true, directoryService, logger, fileSystem, libraryManager); + return ContainsMusic(directoryService.GetFileSystemEntries(path), true, directoryService, _logger, _fileSystem, _libraryManager); } /// <summary> @@ -113,7 +107,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Audio /// <param name="fileSystem">The file system.</param> /// <param name="libraryManager">The library manager.</param> /// <returns><c>true</c> if the specified list contains music; otherwise, <c>false</c>.</returns> - private static bool ContainsMusic(IEnumerable<FileSystemInfo> list, + private bool ContainsMusic(IEnumerable<FileSystemInfo> list, bool allowSubfolders, IDirectoryService directoryService, ILogger logger, @@ -131,17 +125,26 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Audio { var path = fileSystemInfo.FullName; var isMultiDisc = IsMultiDiscFolder(path); - var hasMusic = ContainsMusic(directoryService.GetFileSystemEntries(path), false, directoryService, logger, fileSystem, libraryManager); - if (isMultiDisc && hasMusic) + if (isMultiDisc) { - logger.Debug("Found multi-disc folder: " + path); - discSubfolderCount++; + var hasMusic = ContainsMusic(directoryService.GetFileSystemEntries(path), false, directoryService, logger, fileSystem, libraryManager); + + if (hasMusic) + { + logger.Debug("Found multi-disc folder: " + path); + discSubfolderCount++; + } } - else if (hasMusic) + else { - // If there are folders underneath with music that are not multidisc, then this can't be a multi-disc album - notMultiDisc = true; + var hasMusic = ContainsMusic(directoryService.GetFileSystemEntries(path), false, directoryService, logger, fileSystem, libraryManager); + + if (hasMusic) + { + // If there are folders underneath with music that are not multidisc, then this can't be a multi-disc album + notMultiDisc = true; + } } } } @@ -159,12 +162,14 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Audio return false; } - return discSubfolderCount > 0 && discSubfolderCount > 10; + return discSubfolderCount > 0; } - private static bool IsMultiDiscFolder(string path) + private bool IsMultiDiscFolder(string path) { - var parser = new AlbumParser(new ExtendedNamingOptions(), new Naming.Logging.NullLogger()); + var namingOptions = ((LibraryManager)_libraryManager).GetNamingOptions(); + + var parser = new AlbumParser(namingOptions, new Naming.Logging.NullLogger()); var result = parser.ParseMultiPart(path); return result.IsMultiPart; diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicArtistResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicArtistResolver.cs index edbc87415..9f3f24865 100644 --- a/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicArtistResolver.cs +++ b/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicArtistResolver.cs @@ -70,9 +70,11 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Audio } var directoryService = args.DirectoryService; - + + var albumResolver = new MusicAlbumResolver(_logger, _fileSystem, _libraryManager); + // If we contain an album assume we are an artist folder - return args.FileSystemChildren.Where(i => (i.Attributes & FileAttributes.Directory) == FileAttributes.Directory).Any(i => MusicAlbumResolver.IsMusicAlbum(i.FullName, directoryService, _logger, _fileSystem, _libraryManager)) ? new MusicArtist() : null; + return args.FileSystemChildren.Where(i => (i.Attributes & FileAttributes.Directory) == FileAttributes.Directory).Any(i => albumResolver.IsMusicAlbum(i.FullName, directoryService)) ? new MusicArtist() : null; } } |
