fakebrowser
Version:
🤖 Fake fingerprints to bypass anti-bot systems. Simulate mouse and keyboard operations to make behavior like a real person.
143 lines • 9.55 kB
JavaScript
// noinspection JSUnusedGlobalSymbols
import axios from 'axios';
import crypto from 'crypto';
function md5(data) {
const md5 = crypto.createHash('md5');
const result = md5.update(data).digest('hex');
return result;
}
/**
* setTimeout async wrapper
* @param ms sleep timeout
*/
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
function sleepRd(a, b) {
const rd = _rd(a, b);
return sleep(rd);
}
/**
* random method
* @param min
* @param max
* @param pon random positive or negative
*/
function _rd(min, max, pon = false) {
const c = max - min + 1;
return Math.floor(Math.random() * c + min) * (pon ? _pon() : 1);
}
function _arrRd(arr) {
if (!arr || !arr.length) {
throw new TypeError('arr must not be empty');
}
return arr[_rd(0, arr.length - 1)];
}
/**
* positive or negative
*/
function _pon() {
return _rd(0, 10) >= 5 ? 1 : -1;
}
function inMac() {
return process.platform == 'darwin';
}
function inLinux() {
return process.platform == 'linux';
}
function inWindow() {
return process.platform == 'win32';
}
async function waitFor(func, timeout) {
let startTime = new Date().getTime();
for (;;) {
const result = await func();
if (result) {
return result;
}
if (new Date().getTime() - startTime > timeout) {
return null;
}
await sleep(100);
}
}
function myRealExportIP() {
return new Promise((resolve, reject) => {
axios.get('https://httpbin.org/ip').then(response => {
resolve(response.data.origin);
}).catch(ex => {
reject(ex);
});
});
}
function arrShuffle(arr) {
const result = arr.sort(() => 0.5 - Math.random());
return result;
}
function objClone(obj) {
return JSON.parse(JSON.stringify(obj));
}
/**
* @desc Second-order Bessel curves
* @param {number} t Current Percentage
* @param {Array} p1 Starting point coordinates
* @param {Array} p2 End point coordinates
* @param {Array} cp Control Points
*/
function twoBezier(t, p1, cp, p2) {
const [x1, y1] = p1;
const [cx, cy] = cp;
const [x2, y2] = p2;
let x = (1 - t) * (1 - t) * x1 + 2 * t * (1 - t) * cx + t * t * x2;
let y = (1 - t) * (1 - t) * y1 + 2 * t * (1 - t) * cy + t * t * y2;
return [x, y];
}
/**
* @desc Third-order Bessel curves
* @param {number} t Current Percentage
* @param {Array} p1 Starting point coordinates
* @param {Array} p2 End point coordinates
* @param {Array} cp1 First Control Points
* @param {Array} cp2 Second Control Points
*/
function threeBezier(t, p1, cp1, cp2, p2) {
const [x1, y1] = p1;
const [x2, y2] = p2;
const [cx1, cy1] = cp1;
const [cx2, cy2] = cp2;
let x = x1 * (1 - t) * (1 - t) * (1 - t) +
3 * cx1 * t * (1 - t) * (1 - t) +
3 * cx2 * t * t * (1 - t) +
x2 * t * t * t;
let y = y1 * (1 - t) * (1 - t) * (1 - t) +
3 * cy1 * t * (1 - t) * (1 - t) +
3 * cy2 * t * t * (1 - t) +
y2 * t * t * t;
return [x, y];
}
function makeFuncName(len = 4) {
let result = '';
for (let n = 0; n < len; ++n) {
result += String.fromCharCode(_rd(65, 132));
}
return result;
}
export const helper = {
md5,
sleep,
sleepRd,
rd: _rd,
arrRd: _arrRd,
pon: _pon,
inMac,
inLinux,
inWindow,
waitFor,
myRealExportIP,
arrShuffle,
objClone,
twoBezier,
threeBezier,
makeFuncName,
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFDQUFxQztBQUVyQyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUE7QUFDekIsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFBO0FBRTNCLFNBQVMsR0FBRyxDQUFDLElBQVk7SUFDckIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNwQyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUU3QyxPQUFPLE1BQU0sQ0FBQTtBQUNqQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxLQUFLLENBQUMsRUFBVTtJQUNyQixPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBQzFELENBQUM7QUFFRCxTQUFTLE9BQU8sQ0FBQyxDQUFTLEVBQUUsQ0FBUztJQUNqQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3BCLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQ3BCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsR0FBRyxDQUFDLEdBQVcsRUFBRSxHQUFXLEVBQUUsR0FBRyxHQUFHLEtBQUs7SUFDOUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUE7SUFDdkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FB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