From cf8c54879ea240f008fc8819777eb8f0eefbd441 Mon Sep 17 00:00:00 2001 From: Pedro Lopez Date: Sun, 8 Sep 2019 00:53:38 -0400 Subject: [PATCH] Load moduleRaid from GitHub --- package-lock.json | 4 ++ package.json | 1 + src/Client.js | 6 +- src/util/Injected.js | 160 +------------------------------------------ 4 files changed, 12 insertions(+), 159 deletions(-) diff --git a/package-lock.json b/package-lock.json index 25048a3..24dc4e2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -194,6 +194,10 @@ "minimist": "0.0.8" } }, + "moduleraid": { + "version": "git+https://github.com/pixeldesu/moduleRaid.git#113b90ec709f5d4601db8d5e96b1155aa772ae97", + "from": "git+https://github.com/pixeldesu/moduleRaid.git" + }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", diff --git a/package.json b/package.json index 7c54e77..89abf14 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ }, "homepage": "https://github.com/pedroslopez/whatsapp-web.js#readme", "dependencies": { + "moduleraid": "git+https://github.com/pixeldesu/moduleRaid.git", "puppeteer": "^1.12.2" } } diff --git a/src/Client.js b/src/Client.js index 1b01e77..ee7aa68 100644 --- a/src/Client.js +++ b/src/Client.js @@ -2,12 +2,14 @@ const EventEmitter = require('events'); const puppeteer = require('puppeteer'); +const moduleRaid = require('moduleraid/moduleraid'); + const Util = require('./util/Util'); const { WhatsWebURL, UserAgent, DefaultOptions, Events } = require('./util/Constants'); const { ExposeStore, LoadExtraProps, LoadCustomSerializers } = require('./util/Injected'); const ChatFactory = require('./factories/ChatFactory'); const Chat = require('./structures/Chat'); -const Message = require('./structures/Message') +const Message = require('./structures/Message'); /** * Starting point for interacting with the WhatsApp Web API @@ -76,7 +78,7 @@ class Client extends EventEmitter { await page.waitForSelector(KEEP_PHONE_CONNECTED_IMG_SELECTOR, {timeout: 0}); } - await page.evaluate(ExposeStore); + await page.evaluate(ExposeStore, moduleRaid.toString()); // Get session tokens const localStorage = JSON.parse(await page.evaluate(() => { diff --git a/src/util/Injected.js b/src/util/Injected.js index 20f14fb..8e42647 100644 --- a/src/util/Injected.js +++ b/src/util/Injected.js @@ -3,163 +3,9 @@ /** * Exposes the internal Store to the WhatsApp Web client */ -exports.ExposeStore = () => { - // CREDITS: moduleRaid by PixelDesu - // https://github.com/pixeldesu/moduleRaid/blob/master/moduleraid.js - - const moduleRaid = function (debug) { - moduleRaid.mID = Math.random().toString(36).substring(7); - moduleRaid.mObj = {}; - moduleRaid.cArr = []; - moduleRaid.mGet = null; - - if (debug) { - moduleRaid.debug = true; - } else if (window.mRdebug) { - moduleRaid.debug = true; - } else { - moduleRaid.debug = false; - } - - moduleRaid.log = function (message) { - if (moduleRaid.debug) { - console.warn(`[moduleRaid] ${message}`); - } - } - - moduleRaid.args = [ - [[0], [function(e, t, i) { - mCac = i.c; - Object.keys(mCac).forEach (function(mod) { - moduleRaid.mObj[mod] = mCac[mod].exports; - }) - moduleRaid.cArr = i.m; - moduleRaid.mGet = i; - }]], - [[1e3], {[moduleRaid.mID]: function(e, t, i) { - mCac = i.c; - Object.keys(mCac).forEach (function(mod) { - moduleRaid.mObj[mod] = mCac[mod].exports; - }) - moduleRaid.cArr = i.m; - moduleRaid.mGet = i; - }}, [[moduleRaid.mID]]] - ] - - fillModuleArray = function() { - if (typeof webpackJsonp === 'function') { - moduleRaid.args.forEach(function (argument, index) { - try { - webpackJsonp(...argument); - } - catch (err) { - moduleRaid.log(`moduleRaid.args[${index}] failed: ${err}`); - } - }) - } - else { - try { - webpackJsonp.push(moduleRaid.args[1]); - } - catch (err) { - moduleRaid.log(`Pushing moduleRaid.args[1] into webpackJsonp failed: ${err}`); - } - } - - if (moduleRaid.mObj.length == 0) { - mEnd = false; - mIter = 0; - - if (!webpackJsonp([],[],[mIter])) { - throw Error('Unknown Webpack structure'); - } - - while (!mEnd) { - try { - moduleRaid.mObj[mIter] = webpackJsonp([],[],[mIter]); - mIter++; - } - catch (err) { - mEnd = true; - } - } - } - } - - fillModuleArray() - - get = function get (id) { - return moduleRaid.mObj[id] - } - - findModule = function findModule (query) { - results = []; - modules = Object.keys(moduleRaid.mObj); - - modules.forEach(function(mKey) { - mod = moduleRaid.mObj[mKey]; - - if (typeof mod !== 'undefined') { - if (typeof mod.default === 'object') { - for (key in mod.default) { - if (key == query) results.push(mod); - } - } - - for (key in mod) { - if (key == query) results.push(mod); - } - } - }) - - return results; - } - - findFunction = function(query) { - if (moduleRaid.cArr.length == 0) { - throw Error('No module constructors to search through!'); - } - - results = []; - - if (typeof query === 'string') { - moduleRaid.cArr.forEach(function (ctor, index) { - if (ctor.toString().includes(query)) { - results.push(moduleRaid.mObj[index]); - } - }) - } else if (typeof query === 'function') { - modules = Object.keys(moduleRaid.mObj); - - modules.forEach(function(mKey, index) { - mod = moduleRaid.mObj[mKey]; - - if (query(mod)) { - results.push(moduleRaid.mObj[index]); - } - }) - } else { - throw new TypeError('findFunction can only find via string and function, ' + (typeof query) + ' was passed'); - } - - return results; - } - - return { - modules: moduleRaid.mObj, - constructors: moduleRaid.cArr, - findModule: findModule, - findFunction: findFunction, - get: moduleRaid.mGet ? moduleRaid.mGet : get - } - } - - if (typeof module === 'object' && module.exports) { - module.exports = moduleRaid; - } else { - window.mR = moduleRaid(); - } - +exports.ExposeStore = (moduleRaidStr) => { + eval("var moduleRaid = " + moduleRaidStr); + window.mR = moduleRaid(); window.Store = window.mR.findModule("Conn")[0].default; window.Store.SendMessage = window.mR.findModule("sendTextMsgToChat")[0].sendTextMsgToChat; }