feat: event message_ciphertext (#2292)
* add option cipherMsg * add event message_ciphertext * example * remove option cipherMsg * removing unlinked code * Update Client.js --------- Co-authored-by: Shir Serlui <70711723+shirser121@users.noreply.github.com> Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
This commit is contained in:
parent
981fa822a0
commit
1dd35be834
4 changed files with 28 additions and 0 deletions
|
|
@ -386,6 +386,14 @@ client.on('message_create', (msg) => {
|
|||
}
|
||||
});
|
||||
|
||||
client.on('message_ciphertext', (msg) => {
|
||||
// Receiving new incoming messages that have been encrypted
|
||||
// msg.type === 'ciphertext'
|
||||
msg.body = 'Waiting for this message. Check your phone.';
|
||||
|
||||
// do stuff here
|
||||
});
|
||||
|
||||
client.on('message_revoke_everyone', async (after, before) => {
|
||||
// Fired whenever a message is deleted by anyone (including you)
|
||||
console.log(after); // message after it was deleted.
|
||||
|
|
|
|||
7
index.d.ts
vendored
7
index.d.ts
vendored
|
|
@ -305,6 +305,12 @@ declare namespace WAWebJS {
|
|||
message: Message
|
||||
) => void): this
|
||||
|
||||
/** Emitted when a new message ciphertext is received */
|
||||
on(event: 'message_ciphertext', listener: (
|
||||
/** The message that was ciphertext */
|
||||
message: Message
|
||||
) => void): this
|
||||
|
||||
/** Emitted when a message is deleted for everyone in the chat */
|
||||
on(event: 'message_revoke_everyone', listener: (
|
||||
/** The message that was revoked, in its current state. It will not contain the original message's data */
|
||||
|
|
@ -647,6 +653,7 @@ declare namespace WAWebJS {
|
|||
AUTHENTICATION_FAILURE = 'auth_failure',
|
||||
READY = 'ready',
|
||||
MESSAGE_RECEIVED = 'message',
|
||||
MESSAGE_CIPHERTEXT = 'message_ciphertext',
|
||||
MESSAGE_CREATE = 'message_create',
|
||||
MESSAGE_REVOKED_EVERYONE = 'message_revoke_everyone',
|
||||
MESSAGE_REVOKED_ME = 'message_revoke_me',
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ const NoAuth = require('./authStrategies/NoAuth');
|
|||
* @fires Client#message_create
|
||||
* @fires Client#message_revoke_me
|
||||
* @fires Client#message_revoke_everyone
|
||||
* @fires Client#message_ciphertext
|
||||
* @fires Client#message_edit
|
||||
* @fires Client#media_uploaded
|
||||
* @fires Client#group_join
|
||||
|
|
@ -660,6 +661,16 @@ class Client extends EventEmitter {
|
|||
this.emit(Events.MESSAGE_EDIT, new Message(this, msg), newBody, prevBody);
|
||||
});
|
||||
|
||||
await page.exposeFunction('onAddMessageCiphertextEvent', msg => {
|
||||
|
||||
/**
|
||||
* Emitted when messages are edited
|
||||
* @event Client#message_ciphertext
|
||||
* @param {Message} message
|
||||
*/
|
||||
this.emit(Events.MESSAGE_CIPHERTEXT, new Message(this, msg));
|
||||
});
|
||||
|
||||
await page.evaluate(() => {
|
||||
window.Store.Msg.on('change', (msg) => { window.onChangeMessageEvent(window.WWebJS.getMessageModel(msg)); });
|
||||
window.Store.Msg.on('change:type', (msg) => { window.onChangeMessageTypeEvent(window.WWebJS.getMessageModel(msg)); });
|
||||
|
|
@ -677,6 +688,7 @@ class Client extends EventEmitter {
|
|||
if(msg.type === 'ciphertext') {
|
||||
// defer message event until ciphertext is resolved (type changed)
|
||||
msg.once('change:type', (_msg) => window.onAddMessageEvent(window.WWebJS.getMessageModel(_msg)));
|
||||
window.onAddMessageCiphertextEvent(window.WWebJS.getMessageModel(msg));
|
||||
} else {
|
||||
window.onAddMessageEvent(window.WWebJS.getMessageModel(msg));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ exports.Events = {
|
|||
CHAT_REMOVED: 'chat_removed',
|
||||
CHAT_ARCHIVED: 'chat_archived',
|
||||
MESSAGE_RECEIVED: 'message',
|
||||
MESSAGE_CIPHERTEXT: 'message_ciphertext',
|
||||
MESSAGE_CREATE: 'message_create',
|
||||
MESSAGE_REVOKED_EVERYONE: 'message_revoke_everyone',
|
||||
MESSAGE_REVOKED_ME: 'message_revoke_me',
|
||||
|
|
|
|||
Loading…
Reference in a new issue