Skip to content

Commit

Permalink
Added delete event message(pedroslopez#33)
Browse files Browse the repository at this point in the history
* A hacky way of doing things but seems to work. Also after client restart.
  • Loading branch information
aliyss authored Feb 2, 2020
1 parent b99744a commit b597e4a
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 0 deletions.
13 changes: 13 additions & 0 deletions example.js
Original file line number Diff line number Diff line change
Expand Up @@ -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', () => {
console.log('Client was logged out');
});
Expand Down
35 changes: 35 additions & 0 deletions src/Client.js
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,38 @@ class Client extends EventEmitter {
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) => {
const ACCEPTED_STATES = [WAState.CONNECTED, WAState.OPENING, WAState.PAIRING];
if (!ACCEPTED_STATES.includes(state)) {
Expand All @@ -125,6 +157,9 @@ class Client extends EventEmitter {

await page.evaluate(() => {
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);
});

Expand Down
2 changes: 2 additions & 0 deletions src/util/Constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ exports.Events = {
READY: 'ready',
MESSAGE_RECEIVED: 'message',
MESSAGE_CREATE: 'message_create',
MESSAGE_REVOKED_EVERYONE: 'message_revoke_everyone',
MESSAGE_REVOKED_ME: 'message_revoke_me',
QR_RECEIVED: 'qr',
DISCONNECTED: 'disconnected'
};
Expand Down

0 comments on commit b597e4a

Please sign in to comment.