whatsapp-web.js/src/util/Injected.js

57 lines
No EOL
1.6 KiB
JavaScript

'use strict';
/**
* Exposes the internal Store to the WhatsApp Web client
*/
exports.ExposeStore = (moduleRaidStr) => {
eval("var moduleRaid = " + moduleRaidStr);
window.mR = moduleRaid();
window.Store = window.mR.findModule("Conn")[0].default;
window.Store.genId = window.mR.findModule((module) => module.default && typeof module.default === 'function' && module.default.toString().match(/crypto/))[0].default;
window.Store.SendMessage = window.mR.findModule("sendTextMsgToChat")[0].sendTextMsgToChat;
}
/**
* Adds extra props to the serialization of a model
*/
exports.LoadExtraProps = (model, props) => {
Store[model].models[0].__props = Store[model].models[0].__props.concat(props);
}
exports.LoadCustomSerializers = () => {
window.WWebJS = {};
window.WWebJS.getChatModel = chat => {
let res = chat.serialize();
res.isGroup = chat.isGroup;
res.formattedTitle = chat.formattedTitle;
if(chat.groupMetadata) {
res.groupMetadata = chat.groupMetadata.serialize();
}
return res;
}
window.WWebJS.getChat = chatId => {
const chat = Store.Chat.get(chatId);
return WWebJS.getChatModel(chat);
}
}
exports.MarkAllRead = () => {
let Chats = Store.Chat.models;
for (chatIndex in Chats) {
if (isNaN(chatIndex)) {
continue;
}
let chat = Chats[chatIndex];
if (chat.unreadCount > 0) {
chat.markSeen();
Store.Wap.sendConversationSeen(chat.id, chat.getLastMsgKeyForAction(), chat.unreadCount - chat.pendingSeenCount);
}
}
}