TF-3514 Perform sequential upload on base64 image when converting to cid
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -140,7 +140,6 @@ class HtmlAnalyzer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final Set<EmailBodyPart> inlineAttachmentsSet = {};
|
final Set<EmailBodyPart> inlineAttachmentsSet = {};
|
||||||
final List<Future<void>> asyncTasks = [];
|
|
||||||
|
|
||||||
for (final imgTag in listImgTag) {
|
for (final imgTag in listImgTag) {
|
||||||
final attributes = imgTag.attributes;
|
final attributes = imgTag.attributes;
|
||||||
@@ -166,29 +165,25 @@ class HtmlAnalyzer {
|
|||||||
? idImg!.substring(cidPrefixKey.length)
|
? idImg!.substring(cidPrefixKey.length)
|
||||||
: _uuid.v1();
|
: _uuid.v1();
|
||||||
|
|
||||||
asyncTasks.add(_retrieveAttachmentFromUpload(
|
final attachmentRecord = await _retrieveAttachmentFromUpload(
|
||||||
taskId: taskId,
|
taskId: taskId,
|
||||||
uploadUri: uploadUri,
|
uploadUri: uploadUri,
|
||||||
base64ImageTag: imageSrc!,
|
base64ImageTag: imageSrc!,
|
||||||
).then((attachmentRecord) {
|
);
|
||||||
if (attachmentRecord == null) return;
|
|
||||||
|
|
||||||
final newInlineAttachment = attachmentRecord.$1.toAttachmentWithDisposition(
|
if (attachmentRecord == null) continue;
|
||||||
disposition: ContentDisposition.inline,
|
|
||||||
cid: attachmentRecord.$2,
|
|
||||||
);
|
|
||||||
|
|
||||||
final newCid = newInlineAttachment.cid!;
|
final newInlineAttachment = attachmentRecord.$1.toAttachmentWithDisposition(
|
||||||
inlineAttachments[newCid] = newInlineAttachment;
|
disposition: ContentDisposition.inline,
|
||||||
attributes['src'] = '$cidPrefixKey$newCid';
|
cid: attachmentRecord.$2,
|
||||||
attributes.remove('id');
|
);
|
||||||
|
|
||||||
inlineAttachmentsSet.add(newInlineAttachment.toEmailBodyPart(charset: Constant.base64Charset));
|
final newCid = newInlineAttachment.cid!;
|
||||||
}));
|
inlineAttachments[newCid] = newInlineAttachment;
|
||||||
}
|
attributes['src'] = '$cidPrefixKey$newCid';
|
||||||
|
attributes.remove('id');
|
||||||
|
|
||||||
if (asyncTasks.isNotEmpty) {
|
inlineAttachmentsSet.add(newInlineAttachment.toEmailBodyPart(charset: Constant.base64Charset));
|
||||||
await Future.wait(asyncTasks);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return Tuple2(document.body?.innerHtml ?? emailContent, inlineAttachmentsSet);
|
return Tuple2(document.body?.innerHtml ?? emailContent, inlineAttachmentsSet);
|
||||||
|
|||||||
Reference in New Issue
Block a user