Determine isInMixedFolder after removing extras from consideration

This allows putting an episode in a folder by itself and having suffixed extras and extra subfolders
This commit is contained in:
SenorSmartyPants 2022-06-24 13:21:18 -05:00
parent bf9c528593
commit bc93f34ffa
2 changed files with 12 additions and 5 deletions

View File

@ -279,8 +279,6 @@ namespace Emby.Server.Implementations.Library.Resolvers.Movies
ExtraFiles = leftOver
};
var isInMixedFolder = resolverResult.Count > 1 || parent?.IsTopParent == true;
foreach (var video in resolverResult)
{
var firstVideo = video.Files[0];
@ -296,7 +294,6 @@ namespace Emby.Server.Implementations.Library.Resolvers.Movies
var videoItem = new T
{
Path = path,
IsInMixedFolder = isInMixedFolder,
ProductionYear = video.Year,
Name = parseName ? video.Name : firstVideo.Name,
AdditionalParts = additionalParts,
@ -311,6 +308,13 @@ namespace Emby.Server.Implementations.Library.Resolvers.Movies
result.ExtraFiles.AddRange(files.Where(i => !ContainsFile(resolverResult, i)));
//calculate if in mixed folder after extra files have been removed from count
var isInMixedFolder = result.Items.Count > 1 || parent?.IsTopParent == true;
foreach (var item in result.Items)
{
item.IsInMixedFolder = isInMixedFolder;
}
return result;
}

View File

@ -400,6 +400,7 @@ public class FindExtrasTests
"/series/Dexter/Dexter - S03E05/Dexter - S03E05 - Fifth.mkv",
"/series/Dexter/Dexter - S03E05/Dexter - S03E05 - Fifth-featurette.mkv",
"/series/Dexter/Dexter - S03E05/Dexter - S03E05 - Fifth-featurette2.mkv",
"/series/Dexter/Dexter - S03E05/Deleted Scenes/Meet Friends.mkv",
};
var files = paths.Select(p => new FileSystemMetadata
@ -437,13 +438,15 @@ public class FindExtrasTests
Assert.Equal("/series/Dexter/Dexter - S02E05-clip.mkv", extras[0].Path);
// episode folder with special feature subfolders are not supported yet, but it should be considered as not mixed, but current is marked as mixed
Folder folderOwner = new Folder { Name = "Dexter - S03E05", Path = "/series/Dexter/Dexter - S03E05", IsInMixedFolder = true };
Folder folderOwner = new Folder { Name = "Dexter - S03E05", Path = "/series/Dexter/Dexter - S03E05", IsInMixedFolder = false };
extras = _libraryManager.FindExtras(folderOwner, files, new DirectoryService(_fileSystemMock.Object)).OrderBy(e => e.ExtraType).ToList();
Assert.Equal(2, extras.Count);
Assert.Equal(3, extras.Count);
Assert.Equal(ExtraType.Clip, extras[0].ExtraType);
Assert.Equal(typeof(Video), extras[0].GetType());
Assert.Equal("/series/Dexter/Dexter - S03E05/Dexter - S03E05 - Fifth-featurette.mkv", extras[0].Path);
Assert.Equal("/series/Dexter/Dexter - S03E05/Dexter - S03E05 - Fifth-featurette2.mkv", extras[1].Path);
Assert.Equal(ExtraType.DeletedScene, extras[2].ExtraType);
Assert.Equal("/series/Dexter/Dexter - S03E05/Deleted Scenes/Meet Friends.mkv", extras[2].Path);
}
}