Skip to content

Instantly share code, notes, and snippets.

@sjcotto
Created December 16, 2017 20:58
Show Gist options
  • Save sjcotto/41ab50ed18dd25c05b96fb3b30876713 to your computer and use it in GitHub Desktop.
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
}
}
}
@thEpisode
Copy link

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");
  }

@Zibri
Copy link

Zibri commented Feb 18, 2019

A better fix to find the Store Object:
https://github.com/Zibri/WhatsAppWebApi/blob/master/zstore.js

@Zibri
Copy link

Zibri commented Feb 18, 2019

but the script errors out saying:
Uncaught TypeError: temp.id.search is not a function

@mclabman
Copy link

Uncaught TypeError: temp.id.search is not a function
Change to temp.id = Chats[chat].__x_id.user;

@mclabman
Copy link

And how to get received message event?

@domgjntoki
Copy link

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

@sureshsarak
Copy link

Store.Chat.models
Uncaught TypeError: Cannot read property 'models' of undefined

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment