From f3fb641ecd7100196eb1c9bd0473f7a621a35e41 Mon Sep 17 00:00:00 2001 From: TheNetsky <56271887+TheNetsky@users.noreply.github.com> Date: Wed, 27 Dec 2023 11:38:52 +0100 Subject: [PATCH] 1.3.2 - Better generation of mobile user agents --- package.json | 2 +- src/browser/Browser.ts | 22 ++++++++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index e00223e..ecb8720 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "microsoft-rewards-script", - "version": "1.3.1", + "version": "1.3.2", "description": "Automatically do tasks for Microsoft Rewards but in TS!", "main": "index.js", "engines": { diff --git a/src/browser/Browser.ts b/src/browser/Browser.ts index b4f5ed6..60a0710 100644 --- a/src/browser/Browser.ts +++ b/src/browser/Browser.ts @@ -16,6 +16,7 @@ http://f.vision/ class Browser { private bot: MicrosoftRewardsBot + private usedUserAgents: string[] = [] constructor(bot: MicrosoftRewardsBot) { this.bot = bot @@ -38,21 +39,34 @@ class Browser { ] }) - const { fingerprint, headers } = new FingerprintGenerator().getFingerprint({ + let fingerPrintData = new FingerprintGenerator().getFingerprint({ devices: this.bot.isMobile ? ['mobile'] : ['desktop'], operatingSystems: this.bot.isMobile ? ['android'] : ['windows'], - browsers: ['edge'], - browserListQuery: 'last 2 Edge versions' + browsers: ['edge'] }) + if (this.usedUserAgents) { + while (this.usedUserAgents.includes(fingerPrintData.fingerprint.navigator.userAgent)) { + fingerPrintData = new FingerprintGenerator().getFingerprint({ + devices: this.bot.isMobile ? ['mobile'] : ['desktop'], + operatingSystems: this.bot.isMobile ? ['android'] : ['windows'], + browsers: ['edge'] + }) + } + } + + this.usedUserAgents.push(fingerPrintData.fingerprint.navigator.userAgent) + // Modify the newPage function to attach the fingerprint const originalNewPage = browser.newPage browser.newPage = async function () { const page = await originalNewPage.apply(browser) - await new FingerprintInjector().attachFingerprintToPuppeteer(page, { fingerprint, headers }) + await new FingerprintInjector().attachFingerprintToPuppeteer(page, fingerPrintData) return page } + this.bot.log('BROWSER', `Created browser with User-Agent: "${fingerPrintData.fingerprint.navigator.userAgent}"`) + return browser }