Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
var _0xda19 = ["Message received : ", "log", "stop", "Stopping", "container", "on"]; $box..
Decoded Output download
<? var _0xda19 = ["Message received : ", "log", "stop", "Stopping", "container", "on"];
$box[_0xda19[5]]((_0xc739x1, _0xc739x2) => {
console[_0xda19[1]](_0xda19[0] + _0xc739x1);
if (_0xc739x1 == _0xda19[2]) {
console[_0xda19[1]](_0xda19[3]);
TaskManager[_0xda19[4]][_0xda19[2]]();
}
});
/*-------------------------- On Load ------------------------*/
var _0xe9d2 = ["Content.js loaded", "log", "status", "Starting Process", "getLocal"];
$(() => {
console[_0xe9d2[1]](_0xe9d2[0]);
$box[_0xe9d2[4]](_0x70dcx1 => {
console[_0xe9d2[1]](_0x70dcx1);
if (_0x70dcx1[_0xe9d2[2]]) {
console[_0xe9d2[1]](_0xe9d2[3]);
extractResults();
}
});
});
var startTime = new Date();
var _0x526d = ["** Extracting Google Maps data...", "log", "random", "floor", "** saveResults callback called...", "** End of list reached, opening new search query...", "shift", "taskList", "Sendig send message", "start", "send", "setLocal", "getLocal"];
function extractResults(_0x4b1cx2 = true) {
$box[_0x526d[12]](_0x4b1cx3 => {
console[_0x526d[1]](_0x526d[0]);
var _0x4b1cx4 = Math[_0x526d[3]](Math[_0x526d[2]]() * 2) + 3;
saveResults(_0x4b1cx3 => {
console[_0x526d[1]](_0x526d[4]);
setTimeout(() => {
if (!endOfListExists()) {
var _0x4b1cx4 = Math[_0x526d[3]](Math[_0x526d[2]]() * 2) + 3;
scrollPage();
setTimeout(() => {
extractResults(false);
}, _0x4b1cx4 * 1000);
} else {
console[_0x526d[1]](_0x526d[5]);
_0x4b1cx3[_0x526d[7]][_0x526d[6]]();
$box[_0x526d[11]](_0x4b1cx3, {
onSet: () => {
console[_0x526d[1]](_0x526d[8]);
$box[_0x526d[10]](_0x526d[9]);
}
});
}
}, _0x4b1cx4 * 1000);
}, _0x4b1cx2);
});
}
var _0x252e = ["innerHTML", "html", "getElementsByTagName", "newdata", "getAttribute", "newDataHolder", "getElementById", "** newdata not valid, calling callback...", "log", "getLocal"];
function saveResults(_0xef4bx2, _0xef4bx3) {
$box[_0x252e[9]](_0xef4bx4 => {
var _0xef4bx5;
if (_0xef4bx3) {
_0xef4bx5 = voegToeAanCollection(document[_0x252e[2]](_0x252e[1])[0][_0x252e[0]]);
} else {
try {
_0xef4bx5 = leesCollection(document[_0x252e[6]](_0x252e[5])[_0x252e[4]](_0x252e[3]));
startTime = new Date();
} catch (e) {
console[_0x252e[8]](_0x252e[7]);
setTimeout(() => {
_0xef4bx2(_0xef4bx4);
}, 1000);
return;
}
}
;
saveToLocal(_0xef4bx2, _0xef4bx5);
});
}
var _0x60bd = ["length", "keyword", "trim", "~in~", "split", "taskList", "location", "hasValidKey", "_auth", "collect", "** exceeded free quota...", "log", "showLoginModal", "push", "cid", "uniqBy", "** Saving Data...", "** set successfully...", "Calling callback", "stop", "send", "setLocal", "getLocal"];
function saveToLocal(_0x6c48x2, _0x6c48x3) {
$box[_0x60bd[22]](_0x6c48x4 => {
for (let _0x6c48x5 = 0; _0x6c48x5 < _0x6c48x3[_0x60bd[0]]; _0x6c48x5++) {
data = _0x6c48x3[_0x6c48x5];
data[_0x60bd[1]] = _0x6c48x4[_0x60bd[5]][0][_0x60bd[4]](_0x60bd[3])[0][_0x60bd[2]]();
data[_0x60bd[6]] = _0x6c48x4[_0x60bd[5]][0][_0x60bd[4]](_0x60bd[3])[1][_0x60bd[2]]();
if (!_0x6c48x4[_0x60bd[8]][_0x60bd[7]] && _0x6c48x4[_0x60bd[9]][_0x60bd[0]] >= 50) {
_0x6c48x4[_0x60bd[12]] = false;
}
;
_0x6c48x4[_0x60bd[9]][_0x60bd[13]](data);
_0x6c48x4[_0x60bd[9]] = _[_0x60bd[15]](_0x6c48x4[_0x60bd[9]], _0x60bd[14]);
}
;
console[_0x60bd[11]](_0x60bd[16]);
console[_0x60bd[11]](_0x6c48x4[_0x60bd[9]]);
$box[_0x60bd[21]](_0x6c48x4, {
onSet: () => {
console[_0x60bd[11]](_0x60bd[17]);
console[_0x60bd[11]](_0x60bd[18]);
if (!_0x6c48x4[_0x60bd[8]][_0x60bd[7]] && _0x6c48x4[_0x60bd[9]][_0x60bd[0]] >= 50) {
$box[_0x60bd[20]]('start');
} else {
console[_0x60bd[11]](_0x60bd[18]);
_0x6c48x2(_0x6c48x4);
}
}
});
});
}
setTimeout(() => {
/**
* Addes a requests intercepting script. Which will appen the data
* to 'newData' element on the page. Which will be used to add further data.
*/
// adding a new element to DOM
const dataHolder = document.createElement("div");
dataHolder.setAttribute("id", "newDataHolder");
document.body.appendChild(dataHolder);
// observer for listening changes to added element
const observer = new MutationObserver(function (mutations) {
// pass
});
observer.observe(dataHolder, {
//configure it to listen to attribute changes
attributes: true
});
// script to intercept the requests, if correct response then 'append' to element
const injectedScript = "(" + function () {
// define monkey patch function
const monkeyPatch = () => {
let oldXHROpen = window.XMLHttpRequest.prototype.open;
window.XMLHttpRequest.prototype.open = function () {
this.addEventListener("load", function () {
try {
// try parsing the response, correct if works
const responseBody = this.response.replace("/*\"\"*/", '');
parsedRespone = JSON.parse(responseBody);
if (parsedRespone.d) {
var data = parsedRespone.d.substr(4);
document.getElementById('newDataHolder').setAttribute('newData', data);
}
} catch (e) {
// not the required response
// pass
}
});
return oldXHROpen.apply(this, arguments);
};
};
monkeyPatch();
} + ")();";
// script element for intercepting the requests
const injectScript = () => {
console.log("** Injecting Script");
var script = document.createElement("script");
script.textContent = injectedScript;
(document.head || document.documentElement).appendChild(script);
script.remove();
};
injectScript(); // injecting the script to dom
console.log("** Requests interceptions started...");
}, 2000);
// HELPER FUNCTIONS
var _0x3696 = ["getMinutes", "abs", "** ", " minutes elapsed before getting new data, refreshing the page...", "log", "Sendig send message", "start", "send", "setLocal", "getLocal", "** Scrolling page...", "scrollTop", ".m6QErb .DxyBCb .kA9KIf", "querySelectorAll"];
function scrollPage() {
let _0x1f82x2 = new Date();
let _0x1f82x3 = Math[_0x3696[1]](_0x1f82x2[_0x3696[0]]() - startTime[_0x3696[0]]());
if (_0x1f82x3 > 2) {
console[_0x3696[4]](`${_0x3696[2]}${_0x1f82x3}${_0x3696[3]}`);
$box[_0x3696[9]](_0x1f82x4 => {
$box[_0x3696[8]](_0x1f82x4, {
onSet: () => {
console[_0x3696[4]](_0x3696[5]);
$box[_0x3696[7]](_0x3696[6]);
}
});
});
}
;
console[_0x3696[4]](_0x3696[10], _0x1f82x3);
document[_0x3696[13]](_0x3696[12])[0][_0x3696[11]] = 1000000;
return;
}
var _0x65d5 = ["length", ".fontHeadlineLarge", "querySelectorAll", "single page result...", "log", "HlvSq", "getElementsByClassName"];
function endOfListExists() {
if (document[_0x65d5[2]](_0x65d5[1])[_0x65d5[0]]) {
console[_0x65d5[4]](_0x65d5[3]);
return true;
}
;
return document[_0x65d5[6]](_0x65d5[5])[_0x65d5[0]];
}
// setTimeout(() => {
// /**
// * Automattically reloading page after 30 secs to avoid stuck loading issue.
// */
// console.log('** Quiting scrapping session after 5 minutes...');
// $box.getLocal(local => {
// local.taskList.shift();
// $box.setLocal(local, {
// onSet: () => {
// console.log("Sendig send message");
// $box.send('start');
// }
// });
// })
// }, 300 * 1000)
// SCRAPING FUNCTIONS
var _0x76ca = ["window.APP_INITIALIZATION_STATE", "includes", "d", "slice", "parse", "window.APP_INITIALIZATION_STATE=", "indexOf", ";window.APP_FLAGS", "substr", "response", "data", "log", "status", "headers", "request", "Error", "message"];
function voegToeAanCollection(_0xe8d5x2) {
try {
collectedFlag = true;
var _0xe8d5x3 = null;
if (!_0xe8d5x2[_0x76ca[1]](_0x76ca[0])) {
_0xe8d5x3 = JSON[_0x76ca[4]](_0xe8d5x2[_0x76ca[3]](0, -6))[_0x76ca[2]];
} else {
_0xe8d5x3 = JSON[_0x76ca[4]](_0xe8d5x2[_0x76ca[3]](_0xe8d5x2[_0x76ca[6]](_0x76ca[5]) + 32, _0xe8d5x2[_0x76ca[6]](_0x76ca[7])))[3][2];
}
;
if (_0xe8d5x3 === null) {
return;
}
;
var _0xe8d5x4 = _0xe8d5x3[_0x76ca[8]](4);
if (_0xe8d5x4) {
return leesCollection(_0xe8d5x4);
}
} catch (error) {
if (error[_0x76ca[9]]) {
console[_0x76ca[11]](error[_0x76ca[9]][_0x76ca[10]]);
console[_0x76ca[11]](error[_0x76ca[9]][_0x76ca[12]]);
console[_0x76ca[11]](error[_0x76ca[9]][_0x76ca[13]]);
} else {
if (error[_0x76ca[14]]) {
console[_0x76ca[11]](error[_0x76ca[14]]);
} else {
console[_0x76ca[11]](_0x76ca[15], error[_0x76ca[16]]);
}
}
;
console[_0x76ca[11]](error);
}
;
return;
}
var _0xe7c9 = ["parse", "length", "company_name", "", "website", ":", "split", "https://www.google.com/maps?cid=", "cid", "phone", "rating_count", "review", "address", "pincode", "match", "pop", "category", "trim", ",", "city", "replace", "state", "push"];
function leesCollection(_0xfb2fx2) {
var _0xfb2fx3 = JSON[_0xe7c9[0]](_0xfb2fx2)[0][1];
var _0xfb2fx4 = _0xfb2fx3[_0xe7c9[1]];
var _0xfb2fx5 = [];
for (i = 0; i < _0xfb2fx4; i++) {
if (_0xfb2fx3[i][_0xe7c9[1]] == 15) {
result = {};
result[_0xe7c9[2]] = _0xfb2fx3[i][14][11];
var _0xfb2fx6 = _0xe7c9[3];
if (_0xfb2fx3[i][14][7]) {
_0xfb2fx6 = _0xfb2fx3[i][14][7][0];
}
;
result[_0xe7c9[4]] = _0xfb2fx6;
cid = hexToDec(_0xfb2fx3[i][14][10][_0xe7c9[6]](_0xe7c9[5])[1]);
gmu = _0xe7c9[7] + cid;
result[_0xe7c9[8]] = cid;
try {
if (_0xfb2fx3[i][14][178][0][0]) {
var _0xfb2fx7 = _0xfb2fx3[i][14][178][0][3];
}
} catch (e) {
var _0xfb2fx7 = _0xe7c9[3];
}
;
result[_0xe7c9[9]] = _0xfb2fx7;
try {
if (_0xfb2fx3[i][14][4][8]) {
var _0xfb2fx8 = _0xfb2fx3[i][14][4][8];
}
} catch (e) {
var _0xfb2fx8 = _0xe7c9[3];
}
;
result[_0xe7c9[10]] = _0xfb2fx8;
try {
if (_0xfb2fx3[i][14][4][7]) {
var _0xfb2fx9 = _0xfb2fx3[i][14][4][7];
}
} catch (e) {
var _0xfb2fx9 = _0xe7c9[3];
}
;
result[_0xe7c9[11]] = _0xfb2fx9;
var _0xfb2fxa = _0xe7c9[3];
if (_0xfb2fx3[i][14][39]) {
_0xfb2fxa = _0xfb2fx3[i][14][39];
}
;
result[_0xe7c9[12]] = _0xfb2fxa;
result[_0xe7c9[13]] = result[_0xe7c9[12]][_0xe7c9[14]](/[1000-999999]+/g);
result[_0xe7c9[13]] = result[_0xe7c9[13]] ? result[_0xe7c9[13]] : [];
result[_0xe7c9[13]] = result[_0xe7c9[13]][_0xe7c9[1]] ? result[_0xe7c9[13]][_0xe7c9[15]]() : _0xe7c9[3];
try {
var _0xfb2fxb = _0xfb2fx3[i][14][13][0];
} catch (e) {
var _0xfb2fxb = _0xe7c9[3];
}
;
result[_0xe7c9[16]] = _0xfb2fxb;
try {
var _0xfb2fxc = _0xfb2fx3[i][14][2][_0xfb2fx3[i][14][2][_0xe7c9[1]] - 1];
} catch (e) {
var _0xfb2fxc = _0xe7c9[3];
}
;
try {
var _0xfb2fxd = _0xfb2fxc[_0xe7c9[6]](_0xe7c9[18])[0][_0xe7c9[17]]();
} catch (e) {
var _0xfb2fxd = _0xe7c9[3];
}
;
result[_0xe7c9[19]] = _0xfb2fxd;
try {
var _0xfb2fxe = _0xfb2fxc[_0xe7c9[6]](_0xe7c9[18])[1][_0xe7c9[20]](result[_0xe7c9[13]], _0xe7c9[3])[_0xe7c9[17]]();
} catch (e) {
var _0xfb2fxe = _0xe7c9[3];
}
;
result[_0xe7c9[21]] = _0xfb2fxe;
_0xfb2fx5[_0xe7c9[22]](result);
}
}
;
return _0xfb2fx5;
}
var _0x8fec = ["length", "max", "push", "floor"];
function add(_0x4221x2, _0x4221x3, _0x4221x4) {
var _0x4221x5 = [];
var _0x4221x6 = Math[_0x8fec[1]](_0x4221x2[_0x8fec[0]], _0x4221x3[_0x8fec[0]]);
var _0x4221x7 = 0;
var _0x4221x8 = 0;
while (_0x4221x8 < _0x4221x6 || _0x4221x7) {
var _0x4221x9 = _0x4221x8 < _0x4221x2[_0x8fec[0]] ? _0x4221x2[_0x4221x8] : 0;
var _0x4221xa = _0x4221x8 < _0x4221x3[_0x8fec[0]] ? _0x4221x3[_0x4221x8] : 0;
var _0x4221xb = _0x4221x7 + _0x4221x9 + _0x4221xa;
_0x4221x5[_0x8fec[2]](_0x4221xb % _0x4221x4);
_0x4221x7 = Math[_0x8fec[3]](_0x4221xb / _0x4221x4);
_0x4221x8++;
}
;
return _0x4221x5;
}
var _0xc84b = [];
function multiplyByNumber(_0xef99x2, _0xef99x3, _0xef99x4) {
if (_0xef99x2 < 0) {
return null;
}
;
if (_0xef99x2 == 0) {
return [];
}
;
var _0xef99x5 = [];
var _0xef99x6 = _0xef99x3;
while (true) {
if (_0xef99x2 & 1) {
_0xef99x5 = add(_0xef99x5, _0xef99x6, _0xef99x4);
}
;
_0xef99x2 = _0xef99x2 >> 1;
if (_0xef99x2 === 0) {
break;
}
;
_0xef99x6 = add(_0xef99x6, _0xef99x6, _0xef99x4);
}
;
return _0xef99x5;
}
var _0xf2eb = ["", "split", "length", "push"];
function parseToDigitsArray(_0xec5bx2, _0xec5bx3) {
var _0xec5bx4 = _0xec5bx2[_0xf2eb[1]](_0xf2eb[0]);
var _0xec5bx5 = [];
for (var _0xec5bx6 = _0xec5bx4[_0xf2eb[2]] - 1; _0xec5bx6 >= 0; _0xec5bx6--) {
var _0xec5bx7 = parseInt(_0xec5bx4[_0xec5bx6], _0xec5bx3);
if (isNaN(_0xec5bx7)) {
return null;
}
;
_0xec5bx5[_0xf2eb[3]](_0xec5bx7);
}
;
return _0xec5bx5;
}
var _0xca6c = ["0x"];
function decToHex(_0x7a5ax2) {
var _0x7a5ax3 = convertBase(_0x7a5ax2, 10, 16);
return _0x7a5ax3 ? _0xca6c[0] + _0x7a5ax3 : null;
}
var _0x427a = ["length", ""];
function convertBase(_0x91ddx2, _0x91ddx3, _0x91ddx4) {
var _0x91ddx5 = parseToDigitsArray(_0x91ddx2, _0x91ddx3);
if (_0x91ddx5 === null) {
return null;
}
;
var _0x91ddx6 = [];
var _0x91ddx7 = [1];
for (var _0x91ddx8 = 0; _0x91ddx8 < _0x91ddx5[_0x427a[0]]; _0x91ddx8++) {
if (_0x91ddx5[_0x91ddx8]) {
_0x91ddx6 = add(_0x91ddx6, multiplyByNumber(_0x91ddx5[_0x91ddx8], _0x91ddx7, _0x91ddx4), _0x91ddx4);
}
;
_0x91ddx7 = multiplyByNumber(_0x91ddx3, _0x91ddx7, _0x91ddx4);
}
;
var _0x91ddx9 = _0x427a[1];
for (var _0x91ddx8 = _0x91ddx6[_0x427a[0]] - 1; _0x91ddx8 >= 0; _0x91ddx8--) {
_0x91ddx9 += _0x91ddx6[_0x91ddx8].toString(_0x91ddx4);
}
;
return _0x91ddx9;
}
var _0x4d18 = ["substring", "0x", "toLowerCase"];
function hexToDec(_0x54e0x2) {
if (_0x54e0x2[_0x4d18[0]](0, 2) === _0x4d18[1]) {
_0x54e0x2 = _0x54e0x2[_0x4d18[0]](2);
}
;
_0x54e0x2 = _0x54e0x2[_0x4d18[2]]();
return convertBase(_0x54e0x2, 16, 10);
}
/*-------------------------- On Load ------------------------*/
/*---------------------- Extension Toolbar ---------------------
$(function(){
let extensionToolbar = {};
extensionToolbar.height = "50px";
extensionToolbar.url = chrome.extension.getURL("views/extensionToolbar.html");
$('body').css('-webkit-transform','translateY('+extensionToolbar.height+')');
$('html').append(`
<iframe src="${extensionToolbar.url}" id="simple-chrome-extension-toolbar" style="height:${extensionToolbar.height};"></iframe>
`);
});
---------------------- Extension Toolbar ---------------------*/ ?>
Did this file decode correctly?
Original Code
var _0xda19 = ["Message received : ", "log", "stop", "Stopping", "container", "on"];
$box[_0xda19[5]]((_0xc739x1, _0xc739x2) => {
console[_0xda19[1]](_0xda19[0] + _0xc739x1);
if (_0xc739x1 == _0xda19[2]) {
console[_0xda19[1]](_0xda19[3]);
TaskManager[_0xda19[4]][_0xda19[2]]();
}
});
/*-------------------------- On Load ------------------------*/
var _0xe9d2 = ["Content.js loaded", "log", "status", "Starting Process", "getLocal"];
$(() => {
console[_0xe9d2[1]](_0xe9d2[0]);
$box[_0xe9d2[4]](_0x70dcx1 => {
console[_0xe9d2[1]](_0x70dcx1);
if (_0x70dcx1[_0xe9d2[2]]) {
console[_0xe9d2[1]](_0xe9d2[3]);
extractResults();
}
});
});
var startTime = new Date();
var _0x526d = ["** Extracting Google Maps data...", "log", "random", "floor", "** saveResults callback called...", "** End of list reached, opening new search query...", "shift", "taskList", "Sendig send message", "start", "send", "setLocal", "getLocal"];
function extractResults(_0x4b1cx2 = true) {
$box[_0x526d[12]](_0x4b1cx3 => {
console[_0x526d[1]](_0x526d[0]);
var _0x4b1cx4 = Math[_0x526d[3]](Math[_0x526d[2]]() * 2) + 3;
saveResults(_0x4b1cx3 => {
console[_0x526d[1]](_0x526d[4]);
setTimeout(() => {
if (!endOfListExists()) {
var _0x4b1cx4 = Math[_0x526d[3]](Math[_0x526d[2]]() * 2) + 3;
scrollPage();
setTimeout(() => {
extractResults(false);
}, _0x4b1cx4 * 1000);
} else {
console[_0x526d[1]](_0x526d[5]);
_0x4b1cx3[_0x526d[7]][_0x526d[6]]();
$box[_0x526d[11]](_0x4b1cx3, {
onSet: () => {
console[_0x526d[1]](_0x526d[8]);
$box[_0x526d[10]](_0x526d[9]);
}
});
}
}, _0x4b1cx4 * 1000);
}, _0x4b1cx2);
});
}
var _0x252e = ["innerHTML", "html", "getElementsByTagName", "newdata", "getAttribute", "newDataHolder", "getElementById", "** newdata not valid, calling callback...", "log", "getLocal"];
function saveResults(_0xef4bx2, _0xef4bx3) {
$box[_0x252e[9]](_0xef4bx4 => {
var _0xef4bx5;
if (_0xef4bx3) {
_0xef4bx5 = voegToeAanCollection(document[_0x252e[2]](_0x252e[1])[0][_0x252e[0]]);
} else {
try {
_0xef4bx5 = leesCollection(document[_0x252e[6]](_0x252e[5])[_0x252e[4]](_0x252e[3]));
startTime = new Date();
} catch (e) {
console[_0x252e[8]](_0x252e[7]);
setTimeout(() => {
_0xef4bx2(_0xef4bx4);
}, 1000);
return;
}
}
;
saveToLocal(_0xef4bx2, _0xef4bx5);
});
}
var _0x60bd = ["length", "keyword", "trim", "~in~", "split", "taskList", "location", "hasValidKey", "_auth", "collect", "** exceeded free quota...", "log", "showLoginModal", "push", "cid", "uniqBy", "** Saving Data...", "** set successfully...", "Calling callback", "stop", "send", "setLocal", "getLocal"];
function saveToLocal(_0x6c48x2, _0x6c48x3) {
$box[_0x60bd[22]](_0x6c48x4 => {
for (let _0x6c48x5 = 0; _0x6c48x5 < _0x6c48x3[_0x60bd[0]]; _0x6c48x5++) {
data = _0x6c48x3[_0x6c48x5];
data[_0x60bd[1]] = _0x6c48x4[_0x60bd[5]][0][_0x60bd[4]](_0x60bd[3])[0][_0x60bd[2]]();
data[_0x60bd[6]] = _0x6c48x4[_0x60bd[5]][0][_0x60bd[4]](_0x60bd[3])[1][_0x60bd[2]]();
if (!_0x6c48x4[_0x60bd[8]][_0x60bd[7]] && _0x6c48x4[_0x60bd[9]][_0x60bd[0]] >= 50) {
_0x6c48x4[_0x60bd[12]] = false;
}
;
_0x6c48x4[_0x60bd[9]][_0x60bd[13]](data);
_0x6c48x4[_0x60bd[9]] = _[_0x60bd[15]](_0x6c48x4[_0x60bd[9]], _0x60bd[14]);
}
;
console[_0x60bd[11]](_0x60bd[16]);
console[_0x60bd[11]](_0x6c48x4[_0x60bd[9]]);
$box[_0x60bd[21]](_0x6c48x4, {
onSet: () => {
console[_0x60bd[11]](_0x60bd[17]);
console[_0x60bd[11]](_0x60bd[18]);
if (!_0x6c48x4[_0x60bd[8]][_0x60bd[7]] && _0x6c48x4[_0x60bd[9]][_0x60bd[0]] >= 50) {
$box[_0x60bd[20]]('start');
} else {
console[_0x60bd[11]](_0x60bd[18]);
_0x6c48x2(_0x6c48x4);
}
}
});
});
}
setTimeout(() => {
/**
* Addes a requests intercepting script. Which will appen the data
* to 'newData' element on the page. Which will be used to add further data.
*/
// adding a new element to DOM
const dataHolder = document.createElement("div");
dataHolder.setAttribute("id", "newDataHolder");
document.body.appendChild(dataHolder);
// observer for listening changes to added element
const observer = new MutationObserver(function (mutations) {
// pass
});
observer.observe(dataHolder, {
//configure it to listen to attribute changes
attributes: true
});
// script to intercept the requests, if correct response then 'append' to element
const injectedScript = "(" + function () {
// define monkey patch function
const monkeyPatch = () => {
let oldXHROpen = window.XMLHttpRequest.prototype.open;
window.XMLHttpRequest.prototype.open = function () {
this.addEventListener("load", function () {
try {
// try parsing the response, correct if works
const responseBody = this.response.replace("/*\"\"*/", '');
parsedRespone = JSON.parse(responseBody);
if (parsedRespone.d) {
var data = parsedRespone.d.substr(4);
document.getElementById('newDataHolder').setAttribute('newData', data);
}
} catch (e) {
// not the required response
// pass
}
});
return oldXHROpen.apply(this, arguments);
};
};
monkeyPatch();
} + ")();";
// script element for intercepting the requests
const injectScript = () => {
console.log("** Injecting Script");
var script = document.createElement("script");
script.textContent = injectedScript;
(document.head || document.documentElement).appendChild(script);
script.remove();
};
injectScript(); // injecting the script to dom
console.log("** Requests interceptions started...");
}, 2000);
// HELPER FUNCTIONS
var _0x3696 = ["getMinutes", "abs", "** ", " minutes elapsed before getting new data, refreshing the page...", "log", "Sendig send message", "start", "send", "setLocal", "getLocal", "** Scrolling page...", "scrollTop", ".m6QErb .DxyBCb .kA9KIf", "querySelectorAll"];
function scrollPage() {
let _0x1f82x2 = new Date();
let _0x1f82x3 = Math[_0x3696[1]](_0x1f82x2[_0x3696[0]]() - startTime[_0x3696[0]]());
if (_0x1f82x3 > 2) {
console[_0x3696[4]](`${_0x3696[2]}${_0x1f82x3}${_0x3696[3]}`);
$box[_0x3696[9]](_0x1f82x4 => {
$box[_0x3696[8]](_0x1f82x4, {
onSet: () => {
console[_0x3696[4]](_0x3696[5]);
$box[_0x3696[7]](_0x3696[6]);
}
});
});
}
;
console[_0x3696[4]](_0x3696[10], _0x1f82x3);
document[_0x3696[13]](_0x3696[12])[0][_0x3696[11]] = 1000000;
return;
}
var _0x65d5 = ["length", ".fontHeadlineLarge", "querySelectorAll", "single page result...", "log", "HlvSq", "getElementsByClassName"];
function endOfListExists() {
if (document[_0x65d5[2]](_0x65d5[1])[_0x65d5[0]]) {
console[_0x65d5[4]](_0x65d5[3]);
return true;
}
;
return document[_0x65d5[6]](_0x65d5[5])[_0x65d5[0]];
}
// setTimeout(() => {
// /**
// * Automattically reloading page after 30 secs to avoid stuck loading issue.
// */
// console.log('** Quiting scrapping session after 5 minutes...');
// $box.getLocal(local => {
// local.taskList.shift();
// $box.setLocal(local, {
// onSet: () => {
// console.log("Sendig send message");
// $box.send('start');
// }
// });
// })
// }, 300 * 1000)
// SCRAPING FUNCTIONS
var _0x76ca = ["window.APP_INITIALIZATION_STATE", "includes", "d", "slice", "parse", "window.APP_INITIALIZATION_STATE=", "indexOf", ";window.APP_FLAGS", "substr", "response", "data", "log", "status", "headers", "request", "Error", "message"];
function voegToeAanCollection(_0xe8d5x2) {
try {
collectedFlag = true;
var _0xe8d5x3 = null;
if (!_0xe8d5x2[_0x76ca[1]](_0x76ca[0])) {
_0xe8d5x3 = JSON[_0x76ca[4]](_0xe8d5x2[_0x76ca[3]](0, -6))[_0x76ca[2]];
} else {
_0xe8d5x3 = JSON[_0x76ca[4]](_0xe8d5x2[_0x76ca[3]](_0xe8d5x2[_0x76ca[6]](_0x76ca[5]) + 32, _0xe8d5x2[_0x76ca[6]](_0x76ca[7])))[3][2];
}
;
if (_0xe8d5x3 === null) {
return;
}
;
var _0xe8d5x4 = _0xe8d5x3[_0x76ca[8]](4);
if (_0xe8d5x4) {
return leesCollection(_0xe8d5x4);
}
} catch (error) {
if (error[_0x76ca[9]]) {
console[_0x76ca[11]](error[_0x76ca[9]][_0x76ca[10]]);
console[_0x76ca[11]](error[_0x76ca[9]][_0x76ca[12]]);
console[_0x76ca[11]](error[_0x76ca[9]][_0x76ca[13]]);
} else {
if (error[_0x76ca[14]]) {
console[_0x76ca[11]](error[_0x76ca[14]]);
} else {
console[_0x76ca[11]](_0x76ca[15], error[_0x76ca[16]]);
}
}
;
console[_0x76ca[11]](error);
}
;
return;
}
var _0xe7c9 = ["parse", "length", "company_name", "", "website", ":", "split", "https://www.google.com/maps?cid=", "cid", "phone", "rating_count", "review", "address", "pincode", "match", "pop", "category", "trim", ",", "city", "replace", "state", "push"];
function leesCollection(_0xfb2fx2) {
var _0xfb2fx3 = JSON[_0xe7c9[0]](_0xfb2fx2)[0][1];
var _0xfb2fx4 = _0xfb2fx3[_0xe7c9[1]];
var _0xfb2fx5 = [];
for (i = 0; i < _0xfb2fx4; i++) {
if (_0xfb2fx3[i][_0xe7c9[1]] == 15) {
result = {};
result[_0xe7c9[2]] = _0xfb2fx3[i][14][11];
var _0xfb2fx6 = _0xe7c9[3];
if (_0xfb2fx3[i][14][7]) {
_0xfb2fx6 = _0xfb2fx3[i][14][7][0];
}
;
result[_0xe7c9[4]] = _0xfb2fx6;
cid = hexToDec(_0xfb2fx3[i][14][10][_0xe7c9[6]](_0xe7c9[5])[1]);
gmu = _0xe7c9[7] + cid;
result[_0xe7c9[8]] = cid;
try {
if (_0xfb2fx3[i][14][178][0][0]) {
var _0xfb2fx7 = _0xfb2fx3[i][14][178][0][3];
}
} catch (e) {
var _0xfb2fx7 = _0xe7c9[3];
}
;
result[_0xe7c9[9]] = _0xfb2fx7;
try {
if (_0xfb2fx3[i][14][4][8]) {
var _0xfb2fx8 = _0xfb2fx3[i][14][4][8];
}
} catch (e) {
var _0xfb2fx8 = _0xe7c9[3];
}
;
result[_0xe7c9[10]] = _0xfb2fx8;
try {
if (_0xfb2fx3[i][14][4][7]) {
var _0xfb2fx9 = _0xfb2fx3[i][14][4][7];
}
} catch (e) {
var _0xfb2fx9 = _0xe7c9[3];
}
;
result[_0xe7c9[11]] = _0xfb2fx9;
var _0xfb2fxa = _0xe7c9[3];
if (_0xfb2fx3[i][14][39]) {
_0xfb2fxa = _0xfb2fx3[i][14][39];
}
;
result[_0xe7c9[12]] = _0xfb2fxa;
result[_0xe7c9[13]] = result[_0xe7c9[12]][_0xe7c9[14]](/\b[1000-999999]+\b/g);
result[_0xe7c9[13]] = result[_0xe7c9[13]] ? result[_0xe7c9[13]] : [];
result[_0xe7c9[13]] = result[_0xe7c9[13]][_0xe7c9[1]] ? result[_0xe7c9[13]][_0xe7c9[15]]() : _0xe7c9[3];
try {
var _0xfb2fxb = _0xfb2fx3[i][14][13][0];
} catch (e) {
var _0xfb2fxb = _0xe7c9[3];
}
;
result[_0xe7c9[16]] = _0xfb2fxb;
try {
var _0xfb2fxc = _0xfb2fx3[i][14][2][_0xfb2fx3[i][14][2][_0xe7c9[1]] - 1];
} catch (e) {
var _0xfb2fxc = _0xe7c9[3];
}
;
try {
var _0xfb2fxd = _0xfb2fxc[_0xe7c9[6]](_0xe7c9[18])[0][_0xe7c9[17]]();
} catch (e) {
var _0xfb2fxd = _0xe7c9[3];
}
;
result[_0xe7c9[19]] = _0xfb2fxd;
try {
var _0xfb2fxe = _0xfb2fxc[_0xe7c9[6]](_0xe7c9[18])[1][_0xe7c9[20]](result[_0xe7c9[13]], _0xe7c9[3])[_0xe7c9[17]]();
} catch (e) {
var _0xfb2fxe = _0xe7c9[3];
}
;
result[_0xe7c9[21]] = _0xfb2fxe;
_0xfb2fx5[_0xe7c9[22]](result);
}
}
;
return _0xfb2fx5;
}
var _0x8fec = ["length", "max", "push", "floor"];
function add(_0x4221x2, _0x4221x3, _0x4221x4) {
var _0x4221x5 = [];
var _0x4221x6 = Math[_0x8fec[1]](_0x4221x2[_0x8fec[0]], _0x4221x3[_0x8fec[0]]);
var _0x4221x7 = 0;
var _0x4221x8 = 0;
while (_0x4221x8 < _0x4221x6 || _0x4221x7) {
var _0x4221x9 = _0x4221x8 < _0x4221x2[_0x8fec[0]] ? _0x4221x2[_0x4221x8] : 0;
var _0x4221xa = _0x4221x8 < _0x4221x3[_0x8fec[0]] ? _0x4221x3[_0x4221x8] : 0;
var _0x4221xb = _0x4221x7 + _0x4221x9 + _0x4221xa;
_0x4221x5[_0x8fec[2]](_0x4221xb % _0x4221x4);
_0x4221x7 = Math[_0x8fec[3]](_0x4221xb / _0x4221x4);
_0x4221x8++;
}
;
return _0x4221x5;
}
var _0xc84b = [];
function multiplyByNumber(_0xef99x2, _0xef99x3, _0xef99x4) {
if (_0xef99x2 < 0) {
return null;
}
;
if (_0xef99x2 == 0) {
return [];
}
;
var _0xef99x5 = [];
var _0xef99x6 = _0xef99x3;
while (true) {
if (_0xef99x2 & 1) {
_0xef99x5 = add(_0xef99x5, _0xef99x6, _0xef99x4);
}
;
_0xef99x2 = _0xef99x2 >> 1;
if (_0xef99x2 === 0) {
break;
}
;
_0xef99x6 = add(_0xef99x6, _0xef99x6, _0xef99x4);
}
;
return _0xef99x5;
}
var _0xf2eb = ["", "split", "length", "push"];
function parseToDigitsArray(_0xec5bx2, _0xec5bx3) {
var _0xec5bx4 = _0xec5bx2[_0xf2eb[1]](_0xf2eb[0]);
var _0xec5bx5 = [];
for (var _0xec5bx6 = _0xec5bx4[_0xf2eb[2]] - 1; _0xec5bx6 >= 0; _0xec5bx6--) {
var _0xec5bx7 = parseInt(_0xec5bx4[_0xec5bx6], _0xec5bx3);
if (isNaN(_0xec5bx7)) {
return null;
}
;
_0xec5bx5[_0xf2eb[3]](_0xec5bx7);
}
;
return _0xec5bx5;
}
var _0xca6c = ["0x"];
function decToHex(_0x7a5ax2) {
var _0x7a5ax3 = convertBase(_0x7a5ax2, 10, 16);
return _0x7a5ax3 ? _0xca6c[0] + _0x7a5ax3 : null;
}
var _0x427a = ["length", ""];
function convertBase(_0x91ddx2, _0x91ddx3, _0x91ddx4) {
var _0x91ddx5 = parseToDigitsArray(_0x91ddx2, _0x91ddx3);
if (_0x91ddx5 === null) {
return null;
}
;
var _0x91ddx6 = [];
var _0x91ddx7 = [1];
for (var _0x91ddx8 = 0; _0x91ddx8 < _0x91ddx5[_0x427a[0]]; _0x91ddx8++) {
if (_0x91ddx5[_0x91ddx8]) {
_0x91ddx6 = add(_0x91ddx6, multiplyByNumber(_0x91ddx5[_0x91ddx8], _0x91ddx7, _0x91ddx4), _0x91ddx4);
}
;
_0x91ddx7 = multiplyByNumber(_0x91ddx3, _0x91ddx7, _0x91ddx4);
}
;
var _0x91ddx9 = _0x427a[1];
for (var _0x91ddx8 = _0x91ddx6[_0x427a[0]] - 1; _0x91ddx8 >= 0; _0x91ddx8--) {
_0x91ddx9 += _0x91ddx6[_0x91ddx8].toString(_0x91ddx4);
}
;
return _0x91ddx9;
}
var _0x4d18 = ["substring", "0x", "toLowerCase"];
function hexToDec(_0x54e0x2) {
if (_0x54e0x2[_0x4d18[0]](0, 2) === _0x4d18[1]) {
_0x54e0x2 = _0x54e0x2[_0x4d18[0]](2);
}
;
_0x54e0x2 = _0x54e0x2[_0x4d18[2]]();
return convertBase(_0x54e0x2, 16, 10);
}
/*-------------------------- On Load ------------------------*/
/*---------------------- Extension Toolbar ---------------------
$(function(){
let extensionToolbar = {};
extensionToolbar.height = "50px";
extensionToolbar.url = chrome.extension.getURL("views/extensionToolbar.html");
$('body').css('-webkit-transform','translateY('+extensionToolbar.height+')');
$('html').append(`
<iframe src="${extensionToolbar.url}" id="simple-chrome-extension-toolbar" style="height:${extensionToolbar.height};"></iframe>
`);
});
---------------------- Extension Toolbar ---------------------*/
Function Calls
None |
Stats
MD5 | 353c3d81752f7e294d3a6065898dc659 |
Eval Count | 0 |
Decode Time | 71 ms |