mirror of
https://github.com/cheveguerra/whatsapp-web.js.git
synced 2026-04-20 04:29:15 +00:00
feat: new event for when media is uploaded
Messages created by the current client don't have attatched media on message_create because it is still being uploaded and sent. This event allows you to detect when the media has been properly sent so it can be downloaded. close #111
This commit is contained in:
@@ -23,6 +23,7 @@ const { ClientInfo, Message, MessageMedia, Location, GroupNotification } = requi
|
|||||||
* @fires Client#message_create
|
* @fires Client#message_create
|
||||||
* @fires Client#message_revoke_me
|
* @fires Client#message_revoke_me
|
||||||
* @fires Client#message_revoke_everyone
|
* @fires Client#message_revoke_everyone
|
||||||
|
* @fires Client#media_uploaded
|
||||||
* @fires Client#group_join
|
* @fires Client#group_join
|
||||||
* @fires Client#group_leave
|
* @fires Client#group_leave
|
||||||
* @fires Client#group_update
|
* @fires Client#group_update
|
||||||
@@ -259,6 +260,18 @@ class Client extends EventEmitter {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
await page.exposeFunction('onMessageMediaUploadedEvent', (msg) => {
|
||||||
|
|
||||||
|
const message = new Message(this, msg);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Emitted when media has been uploaded for a message sent by the client.
|
||||||
|
* @event Client#media_uploaded
|
||||||
|
* @param {Message} message The message with media that was uploaded
|
||||||
|
*/
|
||||||
|
this.emit(Events.MEDIA_UPLOADED, message);
|
||||||
|
});
|
||||||
|
|
||||||
await page.exposeFunction('onAppStateChangedEvent', (state) => {
|
await page.exposeFunction('onAppStateChangedEvent', (state) => {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -285,6 +298,7 @@ class Client extends EventEmitter {
|
|||||||
window.Store.Msg.on('change', (msg) => { window.onChangeMessageEvent(msg); });
|
window.Store.Msg.on('change', (msg) => { window.onChangeMessageEvent(msg); });
|
||||||
window.Store.Msg.on('change:type', (msg) => { window.onChangeMessageTypeEvent(msg); });
|
window.Store.Msg.on('change:type', (msg) => { window.onChangeMessageTypeEvent(msg); });
|
||||||
window.Store.Msg.on('change:ack', (msg, ack) => { window.onMessageAckEvent(msg, ack); });
|
window.Store.Msg.on('change:ack', (msg, ack) => { window.onMessageAckEvent(msg, ack); });
|
||||||
|
window.Store.Msg.on('change:isUnsentMedia', (msg, unsent) => { if(msg.id.fromMe && !unsent) window.onMessageMediaUploadedEvent(msg); });
|
||||||
window.Store.Msg.on('remove', (msg) => { if(msg.isNewMsg) window.onRemoveMessageEvent(msg); });
|
window.Store.Msg.on('remove', (msg) => { if(msg.isNewMsg) window.onRemoveMessageEvent(msg); });
|
||||||
window.Store.AppState.on('change:state', (_AppState, state) => { window.onAppStateChangedEvent(state); });
|
window.Store.AppState.on('change:state', (_AppState, state) => { window.onAppStateChangedEvent(state); });
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ exports.Events = {
|
|||||||
MESSAGE_REVOKED_EVERYONE: 'message_revoke_everyone',
|
MESSAGE_REVOKED_EVERYONE: 'message_revoke_everyone',
|
||||||
MESSAGE_REVOKED_ME: 'message_revoke_me',
|
MESSAGE_REVOKED_ME: 'message_revoke_me',
|
||||||
MESSAGE_ACK: 'message_ack',
|
MESSAGE_ACK: 'message_ack',
|
||||||
|
MEDIA_UPLOADED: 'media_uploaded',
|
||||||
GROUP_JOIN: 'group_join',
|
GROUP_JOIN: 'group_join',
|
||||||
GROUP_LEAVE: 'group_leave',
|
GROUP_LEAVE: 'group_leave',
|
||||||
GROUP_UPDATE: 'group_update',
|
GROUP_UPDATE: 'group_update',
|
||||||
|
|||||||
Reference in New Issue
Block a user