fix: upload media

As of WhatsApp Web v2.2035.12, the structure of the return value for  `uploadMedia()` now returns an object that contains the previously returned data in its `mediaEntry` property.

fix #318
This commit is contained in:
Pedro Lopez
2020-08-25 22:30:04 -04:00
parent 4344df6152
commit 7da8345722

View File

@@ -128,7 +128,7 @@ exports.LoadUtils = () => {
isGif: mediaData.isGif isGif: mediaData.isGif
}); });
if(forceVoice && mediaData.type === 'audio') { if (forceVoice && mediaData.type === 'audio') {
mediaData.type = 'ptt'; mediaData.type = 'ptt';
} }
@@ -140,21 +140,27 @@ exports.LoadUtils = () => {
mediaObject.consolidate(mediaData.toJSON()); mediaObject.consolidate(mediaData.toJSON());
mediaData.mediaBlob.autorelease(); mediaData.mediaBlob.autorelease();
const uploadedMedia = await window.Store.MediaUpload.uploadMedia({ mimetype: mediaData.mimetype, mediaObject, mediaType }); const uploadedMedia = await window.Store.MediaUpload.uploadMedia({
if (!uploadedMedia) { mimetype: mediaData.mimetype,
mediaObject,
mediaType
});
const mediaEntry = uploadedMedia.mediaEntry;
if (!mediaEntry) {
throw new Error('upload failed: media entry was not created'); throw new Error('upload failed: media entry was not created');
} }
mediaData.set({ mediaData.set({
clientUrl: uploadedMedia.mmsUrl, clientUrl: mediaEntry.mmsUrl,
directPath: uploadedMedia.directPath, directPath: mediaEntry.directPath,
mediaKey: uploadedMedia.mediaKey, mediaKey: mediaEntry.mediaKey,
mediaKeyTimestamp: uploadedMedia.mediaKeyTimestamp, mediaKeyTimestamp: mediaEntry.mediaKeyTimestamp,
filehash: mediaObject.filehash, filehash: mediaObject.filehash,
uploadhash: uploadedMedia.uploadHash, uploadhash: mediaEntry.uploadHash,
size: mediaObject.size, size: mediaObject.size,
streamingSidecar: uploadedMedia.sidecar, streamingSidecar: mediaEntry.sidecar,
firstFrameSidecar: uploadedMedia.firstFrameSidecar firstFrameSidecar: mediaEntry.firstFrameSidecar
}); });
return mediaData; return mediaData;
@@ -284,7 +290,7 @@ exports.LoadUtils = () => {
}; };
window.WWebJS.sendChatstate = async (state, chatId) => { window.WWebJS.sendChatstate = async (state, chatId) => {
switch(state) { switch (state) {
case 'typing': case 'typing':
await window.Store.Wap.sendChatstateComposing(chatId); await window.Store.Wap.sendChatstateComposing(chatId);
break; break;
@@ -297,10 +303,10 @@ exports.LoadUtils = () => {
default: default:
throw 'Invalid chatstate'; throw 'Invalid chatstate';
} }
return true; return true;
}; };
}; };
exports.MarkAllRead = () => { exports.MarkAllRead = () => {