mukulhase / WebWhatsapp-Wrapper

An API for sending and receiving messages over web.whatsapp [Working as of 18th May 2018]
https://webwhatsapi.readthedocs.io/en/latest/
MIT License
2.02k stars 796 forks source link

deleteMessage not working anymore #1149

Open dekkardnexus5 opened 2 years ago

dekkardnexus5 commented 2 years ago

Hi,

The deleteMessage is not working anymore in Whatsapp Web Beta MD.

When I try to delete a sent message, I get this error:

Error in function deleteMessage (TypeError: conversation.sendRevokeMsgs is not a function).

jonyhandoko commented 2 years ago

Hi, @dekkardnexus5 are yours source code is working on new whatsapp beta?

dekkardnexus5 commented 2 years ago

yes, wapi.js is working on Whatsapp Beta MD

andlb commented 2 years ago

Is this the delete method code ?

window.WAPI.deleteMessage = function (chatId, messageArray, revoke = false, done) { let userId = new window.Store.UserConstructor(chatId, { intentionallyUsePrivateConstructor: true }); let conversation = WAPI.getChat(userId);

if (!conversation) {
    if (done !== undefined) {
        done(false);
    }
    return false;
}

if (!Array.isArray(messageArray)) {
    messageArray = [messageArray];
}
let messagesToDelete = messageArray.map(msgId => window.Store.Msg.get(msgId));

if (revoke) {
    conversation.sendRevokeMsgs(messagesToDelete, conversation);
} else {
    conversation.sendDeleteMsgs(messagesToDelete, conversation);
}

if (done !== undefined) {
    done(true);
}

return true;

};

dekkardnexus5 commented 2 years ago

Here is my delete method:

if(!conversation) {
    if(done !== undefined) {
        done(false);
    }
    return false;
}

if (!Array.isArray(messageArray)) {
    messageArray = [messageArray];
}
let messagesToDelete = messageArray.map(msgId => window.Store.Msg.get(msgId));

if (revoke) {
    conversation.sendRevokeMsgs(messagesToDelete, conversation);
} else {
    //conversation.sendDeleteMsgs(messagesToDelete, conversation);
    messageArray.forEach(msgId => {
        window.Store.Msg.get(msgId).delete()
    })
}

if (done !== undefined) {
    done(true);
}

return true;