-
-
Save sjcotto/41ab50ed18dd25c05b96fb3b30876713 to your computer and use it in GitHub Desktop.
function isChatMessage(message) { | |
if (message.__x_isSentByMe) { | |
return false; | |
} | |
if (message.__x_isNotification) { | |
return false; | |
} | |
if (!message.__x_isUserCreatedType) { | |
return false; | |
} | |
return true; | |
} | |
function getUnreadChats() { | |
var Chats = Store.Chat.models; | |
var Output = []; | |
for (chat in Chats) { | |
if (isNaN(chat)) { | |
continue; | |
}; | |
var temp = {}; | |
temp.contact = Chats[chat].__x_formattedTitle; | |
temp.id = Chats[chat].__x_id; | |
temp.messages = []; | |
var messages = Chats[chat].msgs.models; | |
for (var i = messages.length - 1; i >= 0; i--) { | |
if (!messages[i].__x_isNewMsg) { | |
break; | |
} else { | |
if (!isChatMessage(messages[i])) { | |
continue | |
} | |
messages[i].__x_isNewMsg = false; | |
temp.messages.push({ | |
message: messages[i].__x_body, | |
timestamp: messages[i].__x_t, | |
type : messages[i].__x_type, | |
e : messages[i] | |
}); | |
} | |
} | |
if(temp.messages.length > 0) { | |
Output.push(temp); | |
} | |
} | |
console.log("Unread messages: ", Output); | |
return Output; | |
} |
function sendMsg (id, text) { | |
var Chats = Store.Chat.models; | |
var contact = id; | |
var message = text; | |
for (chat in Chats) { | |
if (isNaN(chat)) { | |
continue; | |
}; | |
var temp = {}; | |
temp.contact = Chats[chat].__x__formattedTitle; | |
temp.id = Chats[chat].__x_id; | |
if(temp.id.search(contact)!=-1 && temp.id.search('g.us')==-1 ){ | |
Chats[chat].sendMessage(message); | |
return true | |
} | |
} | |
} |
Is this a chat-bot? I mean which automatically replies in my name?
The NLP chat bot?
Store is not defined
https://imgur.com/a/bwAj211
@nicobytes @sjcotto
Here me too, Store not available, is my Firefox result
Store
ReferenceError: Store is not defined[Learn More]
You have new solution?
They just've changed all the web framework, so we should try another way, store var doesn't exist anymore.
Here is a quick fix for Store is not defined
Just run
if (window.Store === undefined) {
webpackJsonp([], {"bcihgfbdeb": (x, y, z) => window.Store = z('"bcihgfbdeb"')}, "bcihgfbdeb");
webpackJsonp([], {"iaeeehaci": (x, y, z) => window.Store.Wap = z('"iaeeehaci"')}, "iaeeehaci");
}
Credit @schgressive
function sendMsg (id, text) {
if (window.Store === undefined) {
webpackJsonp([], {"bcihgfbdeb": (x, y, z) => window.Store = z('"bcihgfbdeb"')}, "bcihgfbdeb");
webpackJsonp([], {"iaeeehaci": (x, y, z) => window.Store.Wap = z('"iaeeehaci"')}, "iaeeehaci");
}
var Chats = Store.Chat.models;
var contact = id;
var message = text;
for (chat in Chats) {
if (isNaN(chat)) {
continue;
};
var temp = {};
temp.contact = Chats[chat].__x__formattedTitle;
temp.id = Chats[chat].__x_id;
if(temp.id.search(contact)!=-1 && temp.id.search('g.us')==-1 ){
Chats[chat].sendMessage(message);
return true
}
}
}
Usage:
SendMsg(919922907221,"test msg")
The above script read.js was working fine till yesterday, but from today, when I copy paste the code I get this error
progress.6aed375fd354eb3e27018f51e0f252ce.js:2 Uncaught TypeError: Cannot read property 'call' of undefined
at a (progress.6aed375fd354eb3e27018f51e0f252ce.js:2)
at Object.iaeeehaci (:3:64)
at a (progress.6aed375fd354eb3e27018f51e0f252ce.js:2)
at window.webpackJsonp (progress.6aed375fd354eb3e27018f51e0f252ce.js:2)
at :3:1
Also when I paste the code for second time, it works, loads the contents in Store.
But getUnreadChats() do not show anything even when the message is unread.
Please help.
How do you send an image?
function sendMsg (id, text) {
if (window.Store === undefined) {
webpackJsonp([], {"bcihgfbdeb": (x, y, z) => window.Store = z('"bcihgfbdeb"')}, "bcihgfbdeb");
webpackJsonp([], {"iaeeehaci": (x, y, z) => window.Store.Wap = z('"iaeeehaci"')}, "iaeeehaci");
}
var Chats = Store.Chat.models;
var contact = id;
var message = text;
for (chat in Chats) {
if (isNaN(chat)) {
continue;
};
var temp = {};
temp.contact = Chats[chat].__x__formattedTitle;
temp.id = Chats[chat].__x_id;
if(temp.id.search(contact)!=-1 && temp.id.search('g.us')==-1 ){
Chats[chat].sendMessage(message);
return true
}
}
}
SendMsg(91**********,"test msg")
this above code working perfectly if i send message to existing chat contact number
But if i put new mobile number which is not exist in my whatsapp chat contact list then < SendMsg(new_number,"test msg") > not working
Please help, Thank You
Thank you for sharing above code :)
New solution:
setTimeout(function() {
// Returns promise that resolves to all installed modules
function getAllModules() {
return new Promise((resolve) => {
const id = _.uniqueId("fakeModule_");
window["webpackJsonp"](
[],
{
[id]: function(module, exports, __webpack_require__) {
resolve(__webpack_require__.c);
}
},
[id]
);
});
}
var modules = getAllModules()._value;
// Automatically locate modules
for (var key in modules) {
if (modules[key].exports) {
if (modules[key].exports.default) {
if (modules[key].exports.default.Wap) {
store_id = modules[key].id.replace(/"/g, '"');
}
}
}
}
}, 5000);
function _requireById(id) {
return webpackJsonp([], null, [id]);
}
// Module IDs
var store_id = 0;
var Store = {};
function init() {
Store = _requireById(store_id).default;
console.log("Store is ready" + Store);
}
setTimeout(function() {
init();
}, 7000);
For send media like image this code working for me https://gist.github.com/phpRajat/a6422922efae32914f4dbd1082f3f412
Awesome this helps. I am using this to send web link, but the preview (og-image) and all is not loading up
It just goes as a simple link, without any preview. Is there a way we can handle that as well
Awesome. Good job.
But how do you integrate this code with an external service?
I wrote a python server that handles input messages and answers like a bot, later I wrote an ajax call in this code to make the remote call.
However, I keep having tons of problems regarding security.
I have already tried all possible workaround I can think of with no success yet.
How do you integrate this with external sources?
If anyone is having trouble trying to remove a message for everyone in a chat, I made a script for that:
Use: deleteMessage("5************-15********@g.us", "I will be deleted")
// The chat_id is in chat.__x_id._serialized;
window.deleteMessage = function(chat_id, msg_str) {
if (window.Store === undefined) {
try { // Often this cause the error "Cannot read property 'call' of undefined" but works anyway
webpackJsonp([], {"bcihgfbdeb": (x, y, z) => window.Store = z('"bcihgfbdeb"')}, "bcihgfbdeb");
webpackJsonp([], {"iaeeehaci": (x, y, z) => window.Store.Wap = z('"iaeeehaci"')}, "iaeeehaci");
} catch (e) {}
}
Chats = Store.Chat.models
for(chat in Chats) {
if (isNaN(chat)) {
continue;
};
temp_id = Chats[chat].__x_id._serialized;
if(temp_id.search(chat_id) != -1){
messages = Chats[chat].msgs.models
for(message in messages) {
temp_msg = messages[message]
if(temp_msg.__x_text == msg_str && temp_msg.canRevoke()) {
temp_msg.sendRevoke(temp_msg)
return true;
}
}
}
}
}
Temp.id.search is not a function
Here is a quick fix for Store is not defined
Just run
if (window.Store === undefined) {
webpackJsonp([], {"bcihgfbdeb": (x, y, z) => window.Store = z('"bcihgfbdeb"')}, "bcihgfbdeb");
webpackJsonp([], {"iaeeehaci": (x, y, z) => window.Store.Wap = z('"iaeeehaci"')}, "iaeeehaci");
}
Credit @schgressive
A little update:
if (window.Store === undefined) {
webpackJsonp([], { "bcihgfbdeb": (x, y, z) => window.Store = z('"bcihgfbdeb"') }, "bcihgfbdeb");
webpackJsonp([], { "cbagcefdge": (x, y, z) => window.Store.Wap = z('"cbagcefdge"') }, "cbagcefdge");
}
A better fix to find the Store Object:
https://github.com/Zibri/WhatsAppWebApi/blob/master/zstore.js
but the script errors out saying:
Uncaught TypeError: temp.id.search is not a function
Uncaught TypeError: temp.id.search is not a function
Change to temp.id = Chats[chat].__x_id.user;
And how to get received message event?
The sendMessage function in the Store.Chat.models[i].sendMessage has disappeared, has someone successfully fixed that?
The error
M433:1 Uncaught TypeError: Store.Chat.models[0].sendMessage is not a function
Store.Chat.models
Uncaught TypeError: Cannot read property 'models' of undefined
Is it possible to inject the code from an aplication ?