Extract media attachment one by one if the filename appears to be a path (#11812)

This commit is contained in:
gnattu 2024-05-27 01:40:28 +08:00 committed by GitHub
parent bcf884ccfa
commit 45e8872cc0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -88,6 +88,18 @@ namespace MediaBrowser.MediaEncoding.Attachments
MediaSourceInfo mediaSource,
string outputPath,
CancellationToken cancellationToken)
{
var shouldExtractOneByOne = mediaSource.MediaAttachments.Any(a => a.FileName.Contains('/', StringComparison.OrdinalIgnoreCase) || a.FileName.Contains('\\', StringComparison.OrdinalIgnoreCase));
if (shouldExtractOneByOne)
{
var attachmentIndexes = mediaSource.MediaAttachments.Select(a => a.Index);
foreach (var i in attachmentIndexes)
{
var newName = Path.Join(outputPath, i.ToString(CultureInfo.InvariantCulture));
await ExtractAttachment(inputFile, mediaSource, i, newName, cancellationToken).ConfigureAwait(false);
}
}
else
{
using (await _semaphoreLocks.LockAsync(outputPath, cancellationToken).ConfigureAwait(false))
{
@ -101,6 +113,7 @@ namespace MediaBrowser.MediaEncoding.Attachments
}
}
}
}
public async Task ExtractAllAttachmentsExternal(
string inputArgument,