fix: downloadRawMsgMedia

This commit is contained in:
pk5ls20 2024-10-27 07:31:32 +08:00
parent 9f07b07c82
commit ad2f843c8f
No known key found for this signature in database
GPG Key ID: 6370ED7A169F493A

View File

@ -269,25 +269,49 @@ export class NTQQFileApi {
} }
async downloadRawMsgMedia(msg: RawMessage[]) { async downloadRawMsgMedia(msg: RawMessage[]) {
const res = await Promise.all(msg.map(m => const res = await Promise.all(
this.downloadMedia(m.msgId, m.chatType, m.peerUid, m.elements[0].elementId, '', '', 1000 * 60 * 2, true) msg.map(m =>
)); Promise.all(
msg.forEach((m, index) => { m.elements
const element = m.elements[0]; .filter(element =>
element.elementType === ElementType.PIC ||
element.elementType === ElementType.VIDEO ||
element.elementType === ElementType.PTT ||
element.elementType === ElementType.FILE
)
.map(element =>
this.downloadMedia(m.msgId, m.chatType, m.peerUid, element.elementId, '', '', 1000 * 60 * 2, true)
)
)
)
);
msg.forEach((m, msgIndex) => {
const elementResults = res[msgIndex];
let elementIndex = 0;
m.elements.forEach(element => {
if (
element.elementType === ElementType.PIC ||
element.elementType === ElementType.VIDEO ||
element.elementType === ElementType.PTT ||
element.elementType === ElementType.FILE
) {
switch (element.elementType) { switch (element.elementType) {
case ElementType.PIC: case ElementType.PIC:
element.picElement!.sourcePath = res[index]; element.picElement!.sourcePath = elementResults[elementIndex];
break; break;
case ElementType.VIDEO: case ElementType.VIDEO:
element.videoElement!.filePath = res[index]; element.videoElement!.filePath = elementResults[elementIndex];
break; break;
case ElementType.PTT: case ElementType.PTT:
element.pttElement!.filePath = res[index]; element.pttElement!.filePath = elementResults[elementIndex];
break; break;
case ElementType.FILE: case ElementType.FILE:
element.fileElement!.filePath = res[index]; element.fileElement!.filePath = elementResults[elementIndex];
break; break;
} }
elementIndex++;
}
});
}); });
} }