Merge pull request #13536 from tkloy24/13250-Extras-Delete-Whole-Folder

Fix IsInMixedFolder not being set for Extras
This commit is contained in:
Bond-009 2025-04-26 12:07:45 +02:00 committed by GitHub
commit f35b8dd33d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -2739,14 +2739,18 @@ namespace Emby.Server.Implementations.Library
if (current.IsDirectory && _namingOptions.AllExtrasTypesFolderNames.ContainsKey(current.Name)) if (current.IsDirectory && _namingOptions.AllExtrasTypesFolderNames.ContainsKey(current.Name))
{ {
var filesInSubFolder = _fileSystem.GetFiles(current.FullName, null, false, false); var filesInSubFolder = _fileSystem.GetFiles(current.FullName, null, false, false);
foreach (var file in filesInSubFolder) var filesInSubFolderList = filesInSubFolder.ToList();
bool subFolderIsMixedFolder = filesInSubFolderList.Count > 1;
foreach (var file in filesInSubFolderList)
{ {
if (!_extraResolver.TryGetExtraTypeForOwner(file.FullName, ownerVideoInfo, out var extraType)) if (!_extraResolver.TryGetExtraTypeForOwner(file.FullName, ownerVideoInfo, out var extraType))
{ {
continue; continue;
} }
var extra = GetExtra(file, extraType.Value); var extra = GetExtra(file, extraType.Value, subFolderIsMixedFolder);
if (extra is not null) if (extra is not null)
{ {
yield return extra; yield return extra;
@ -2755,7 +2759,7 @@ namespace Emby.Server.Implementations.Library
} }
else if (!current.IsDirectory && _extraResolver.TryGetExtraTypeForOwner(current.FullName, ownerVideoInfo, out var extraType)) else if (!current.IsDirectory && _extraResolver.TryGetExtraTypeForOwner(current.FullName, ownerVideoInfo, out var extraType))
{ {
var extra = GetExtra(current, extraType.Value); var extra = GetExtra(current, extraType.Value, false);
if (extra is not null) if (extra is not null)
{ {
yield return extra; yield return extra;
@ -2763,7 +2767,7 @@ namespace Emby.Server.Implementations.Library
} }
} }
BaseItem? GetExtra(FileSystemMetadata file, ExtraType extraType) BaseItem? GetExtra(FileSystemMetadata file, ExtraType extraType, bool isInMixedFolder)
{ {
var extra = ResolvePath(_fileSystem.GetFileInfo(file.FullName), directoryService, _extraResolver.GetResolversForExtraType(extraType)); var extra = ResolvePath(_fileSystem.GetFileInfo(file.FullName), directoryService, _extraResolver.GetResolversForExtraType(extraType));
if (extra is not Video && extra is not Audio) if (extra is not Video && extra is not Audio)
@ -2786,6 +2790,7 @@ namespace Emby.Server.Implementations.Library
extra.ParentId = Guid.Empty; extra.ParentId = Guid.Empty;
extra.OwnerId = owner.Id; extra.OwnerId = owner.Id;
extra.IsInMixedFolder = isInMixedFolder;
return extra; return extra;
} }
} }