ws3-fca
Version:
A node.js package for automating Facebook Messenger bot, and is one of the most advanced next-generation Facebook Chat API (FCA) by @NethWs3Dev & @ExocoreCommunity
54 lines (47 loc) • 1.81 kB
JavaScript
;
const { getRandom } = require("./constants");
// List of realistic Chrome versions and platforms
const BROWSER_DATA = {
windows: {
platform: "Windows NT 10.0; Win64; x64",
chromeVersions: ["126.0.0.0", "125.0.0.0", "124.0.0.0"],
platformVersion: '"15.0.0"'
},
mac: {
platform: "Macintosh; Intel Mac OS X 10_15_7",
chromeVersions: ["126.0.0.0", "125.0.0.0", "124.0.0.0"],
platformVersion: '"15.7.9"'
}
};
const defaultUserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36";
/**
* Generates a realistic, randomized User-Agent string and related Sec-CH headers.
* @returns {{userAgent: string, secChUa: string, secChUaPlatform: string, secChUaPlatformVersion: string}}
*/
function randomUserAgent() {
const os = getRandom(Object.keys(BROWSER_DATA));
const data = BROWSER_DATA[os];
const version = getRandom(data.chromeVersions);
const majorVersion = version.split('.')[0];
const userAgent = `Mozilla/5.0 (${data.platform}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/${version} Safari/537.36`;
// Construct the Sec-CH-UA header
const brands = [
`"Not/A)Brand";v="8"`,
`"Chromium";v="${majorVersion}"`,
`"Google Chrome";v="${majorVersion}"`
];
const secChUa = brands.join(', ');
const secChUaFullVersionList = brands.map((b, i) => b.replace(/"$/, `.0.0.0"`)).join(', ');
return {
userAgent,
secChUa,
secChUaFullVersionList,
secChUaPlatform: `"${os === 'windows' ? 'Windows' : 'macOS'}"`,
secChUaPlatformVersion: data.platformVersion
};
}
module.exports = {
defaultUserAgent,
windowsUserAgent: defaultUserAgent,
randomUserAgent,
};