mirror of
https://github.com/cheveguerra/whatsapp-web.js.git
synced 2026-04-20 20:49:14 +00:00
Added delete event message(#33)
* A hacky way of doing things but seems to work. Also after client restart.
This commit is contained in:
13
example.js
13
example.js
@@ -127,6 +127,19 @@ client.on('message_create', (msg) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
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.
|
||||||
|
if (before) {
|
||||||
|
console.log(before); // message before it was deleted.
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
client.on('message_revoke_me', async (msg) => {
|
||||||
|
// Fired whenever a message is only deleted in your own view.
|
||||||
|
console.log(msg.body); // message before it was deleted.
|
||||||
|
});
|
||||||
|
|
||||||
client.on('disconnected', () => {
|
client.on('disconnected', () => {
|
||||||
console.log('Client was logged out');
|
console.log('Client was logged out');
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -115,6 +115,38 @@ class Client extends EventEmitter {
|
|||||||
this.emit(Events.MESSAGE_RECEIVED, message);
|
this.emit(Events.MESSAGE_RECEIVED, message);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
let last_message;
|
||||||
|
|
||||||
|
await page.exposeFunction('onChangeMessageTypeEvent', (msg) => {
|
||||||
|
|
||||||
|
if (msg.type === 'revoked') {
|
||||||
|
const message = new Message(this, msg);
|
||||||
|
let revoked_msg;
|
||||||
|
if(last_message && msg.id.id === last_message.id.id) {
|
||||||
|
revoked_msg = new Message(this, last_message);
|
||||||
|
}
|
||||||
|
this.emit(Events.MESSAGE_REVOKED_EVERYONE, message, revoked_msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
await page.exposeFunction('onChangeMessageEvent', (msg) => {
|
||||||
|
|
||||||
|
if (msg.type !== 'revoked') {
|
||||||
|
last_message = msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
await page.exposeFunction('onRemoveMessageEvent', (msg) => {
|
||||||
|
|
||||||
|
if (!msg.isNewMsg) return;
|
||||||
|
|
||||||
|
const message = new Message(this, msg);
|
||||||
|
this.emit(Events.MESSAGE_REVOKED_ME, message);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
await page.exposeFunction('onAppStateChangedEvent', (AppState, state) => {
|
await page.exposeFunction('onAppStateChangedEvent', (AppState, state) => {
|
||||||
const ACCEPTED_STATES = [WAState.CONNECTED, WAState.OPENING, WAState.PAIRING];
|
const ACCEPTED_STATES = [WAState.CONNECTED, WAState.OPENING, WAState.PAIRING];
|
||||||
if (!ACCEPTED_STATES.includes(state)) {
|
if (!ACCEPTED_STATES.includes(state)) {
|
||||||
@@ -125,6 +157,9 @@ class Client extends EventEmitter {
|
|||||||
|
|
||||||
await page.evaluate(() => {
|
await page.evaluate(() => {
|
||||||
window.Store.Msg.on('add', window.onAddMessageEvent);
|
window.Store.Msg.on('add', window.onAddMessageEvent);
|
||||||
|
window.Store.Msg.on('change', window.onChangeMessageEvent);
|
||||||
|
window.Store.Msg.on('change:type', window.onChangeMessageTypeEvent);
|
||||||
|
window.Store.Msg.on('remove', window.onRemoveMessageEvent);
|
||||||
window.Store.AppState.on('change:state', window.onAppStateChangedEvent);
|
window.Store.AppState.on('change:state', window.onAppStateChangedEvent);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ exports.Events = {
|
|||||||
READY: 'ready',
|
READY: 'ready',
|
||||||
MESSAGE_RECEIVED: 'message',
|
MESSAGE_RECEIVED: 'message',
|
||||||
MESSAGE_CREATE: 'message_create',
|
MESSAGE_CREATE: 'message_create',
|
||||||
|
MESSAGE_REVOKED_EVERYONE: 'message_revoke_everyone',
|
||||||
|
MESSAGE_REVOKED_ME: 'message_revoke_me',
|
||||||
QR_RECEIVED: 'qr',
|
QR_RECEIVED: 'qr',
|
||||||
DISCONNECTED: 'disconnected'
|
DISCONNECTED: 'disconnected'
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user