From 7cf21348bf5fbfe7e73894a8b4b9d56c6ca71ec0 Mon Sep 17 00:00:00 2001
From: yoNico21 <119441054+yoNico21@users.noreply.github.com>
Date: Thu, 17 Oct 2024 17:58:54 +0200
Subject: [PATCH] css styling updated, added check for user mobile
---
1000_bots_webextension/background.js | 85 +++++++--
1000_bots_webextension/background_chrome.js | 85 +++++++--
1000_bots_webextension/background_ff.js | 33 ++--
1000_bots_webextension/checkUser.js | 35 ++++
1000_bots_webextension/content.js | 18 +-
1000_bots_webextension/content_chrome.js | 16 +-
1000_bots_webextension/content_ff.js | 16 +-
.../fonts/texgyreheros-bolditalic.woff | Bin 0 -> 70424 bytes
1000_bots_webextension/manifest.json | 13 +-
1000_bots_webextension/manifest_chrome.json | 13 +-
1000_bots_webextension/manifest_ff.json | 8 +-
1000_bots_webextension/package_me.sh | 2 +-
.../refused_to_be_human-0.0.3.xpi | Bin 12032 -> 24167 bytes
.../refused_to_be_human-0.0.3.zip | Bin 12718 -> 24852 bytes
.../refused_to_be_human-0.0.4.xpi | Bin 0 -> 166221 bytes
.../refused_to_be_human-0.0.4.zip | Bin 0 -> 167272 bytes
1000_bots_webextension/rtbh_style.css | 126 +++++++++++++
1000_bots_webextension/style.css | 171 ------------------
18 files changed, 367 insertions(+), 254 deletions(-)
create mode 100644 1000_bots_webextension/checkUser.js
create mode 100644 1000_bots_webextension/fonts/texgyreheros-bolditalic.woff
create mode 100644 1000_bots_webextension/packaged/refused_to_be_human-0.0.4/refused_to_be_human-0.0.4.xpi
create mode 100644 1000_bots_webextension/packaged/refused_to_be_human-0.0.4/refused_to_be_human-0.0.4.zip
create mode 100644 1000_bots_webextension/rtbh_style.css
delete mode 100644 1000_bots_webextension/style.css
diff --git a/1000_bots_webextension/background.js b/1000_bots_webextension/background.js
index 286273c..6f5ca8d 100644
--- a/1000_bots_webextension/background.js
+++ b/1000_bots_webextension/background.js
@@ -20,13 +20,13 @@
"use strict";
-const DEBUG = false;
+const DEBUG = true;
// Use chrome or browser depending on the environment
const browser = chrome || browser;
// Custom user-agent to spoof Googlebot
-const user_agent =
+let user_agent =
"Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)";
const target_urls = "*://*/*";
@@ -43,6 +43,38 @@ browser.storage.sync
console.error("Error setting duration:", error);
});
+function check_user_agent() {
+ // On active tab execute script
+ browser.tabs
+ .query({ active: true, currentWindow: true })
+ .then((tabs) => {
+ browser.scripting.executeScript({
+ target: { tabId: tabs[0].id },
+ files: ["checkUser.js"],
+ });
+ })
+ .catch((error) => {
+ console.error(`Failed to execute script: ${error}`);
+ });
+}
+
+function if_user_agent_mobile() {
+ // Get boolean from storage
+ browser.storage.sync.get("isMobile").then((result) => {
+ if (result.isMobile) {
+ if (DEBUG)
+ console.log("User is on a mobile device, changing userAgent.");
+ user_agent =
+ "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)";
+ if (DEBUG) console.log("User-Agent set to mobile device.");
+ if (DEBUG) console.log("User-Agent:", user_agent);
+ } else {
+ if (DEBUG)
+ console.log("User is not on a mobile device. Continuing...");
+ }
+ });
+}
+
// Set extension status to ON
function set_extension_status_ON() {
browser.storage.sync
@@ -56,6 +88,14 @@ function set_extension_status_ON() {
title: "You are now surfing the web as a bot 🤖",
});
})
+ .then(() => {
+ // Check if the user is on a mobile device
+ check_user_agent();
+ })
+ .then(() => {
+ // If the user is on a mobile device change the user-agent
+ if_user_agent_mobile();
+ })
.then(() => {
// Start user-agent spoofing
return startUserAgentSpoofing();
@@ -183,14 +223,21 @@ function stopUserAgentSpoofing() {
function refreshAllTabs() {
return browser.tabs.query({}).then((tabs) => {
tabs.forEach((tab) => {
- browser.tabs
- .reload(tab.id)
- .then(() => {
- if (DEBUG) console.log(`Refreshed tab: ${tab.id}`);
- })
- .catch((error) => {
- console.error(`Error refreshing tab ${tab.id}:`, error);
- });
+ if (tab.url.startsWith("https://")) {
+ browser.tabs
+ .reload(tab.id)
+ .then(() => {
+ if (DEBUG) console.log(`Refreshed tab: ${tab.id}`);
+ })
+ .catch((error) => {
+ console.error(`Error refreshing tab ${tab.id}:`, error);
+ });
+ } else {
+ if (DEBUG)
+ console.log(
+ `Skipped refreshing tab ${tab.id} (URL does not start with "https://")`
+ );
+ }
});
});
}
@@ -215,20 +262,24 @@ function injectContentScript() {
`Content script injected into tab ${tab.id}`
);
- // Use a hardcoded duration for removal
- const duration = 80000; // 8 seconds or whatever you need
-
// Set a timeout to remove the content after the hardcoded duration
setTimeout(() => {
- browser.storage.sync.set({
- bannerInjected: true,
- });
+ browser.storage.sync
+ .set({
+ bannerInjected: true,
+ })
+ .then(() => {
+ if (DEBUG)
+ console.log(
+ "Banner injected flag set to true."
+ );
+ });
if (DEBUG)
console.log(
"Duration expired. Removing content."
);
removeInjectedContent(); // Ensure this is defined
- }, duration);
+ }, DISPLAY_DURATION);
})
.catch((error) => {
console.error(
diff --git a/1000_bots_webextension/background_chrome.js b/1000_bots_webextension/background_chrome.js
index 286273c..6f5ca8d 100644
--- a/1000_bots_webextension/background_chrome.js
+++ b/1000_bots_webextension/background_chrome.js
@@ -20,13 +20,13 @@
"use strict";
-const DEBUG = false;
+const DEBUG = true;
// Use chrome or browser depending on the environment
const browser = chrome || browser;
// Custom user-agent to spoof Googlebot
-const user_agent =
+let user_agent =
"Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)";
const target_urls = "*://*/*";
@@ -43,6 +43,38 @@ browser.storage.sync
console.error("Error setting duration:", error);
});
+function check_user_agent() {
+ // On active tab execute script
+ browser.tabs
+ .query({ active: true, currentWindow: true })
+ .then((tabs) => {
+ browser.scripting.executeScript({
+ target: { tabId: tabs[0].id },
+ files: ["checkUser.js"],
+ });
+ })
+ .catch((error) => {
+ console.error(`Failed to execute script: ${error}`);
+ });
+}
+
+function if_user_agent_mobile() {
+ // Get boolean from storage
+ browser.storage.sync.get("isMobile").then((result) => {
+ if (result.isMobile) {
+ if (DEBUG)
+ console.log("User is on a mobile device, changing userAgent.");
+ user_agent =
+ "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)";
+ if (DEBUG) console.log("User-Agent set to mobile device.");
+ if (DEBUG) console.log("User-Agent:", user_agent);
+ } else {
+ if (DEBUG)
+ console.log("User is not on a mobile device. Continuing...");
+ }
+ });
+}
+
// Set extension status to ON
function set_extension_status_ON() {
browser.storage.sync
@@ -56,6 +88,14 @@ function set_extension_status_ON() {
title: "You are now surfing the web as a bot 🤖",
});
})
+ .then(() => {
+ // Check if the user is on a mobile device
+ check_user_agent();
+ })
+ .then(() => {
+ // If the user is on a mobile device change the user-agent
+ if_user_agent_mobile();
+ })
.then(() => {
// Start user-agent spoofing
return startUserAgentSpoofing();
@@ -183,14 +223,21 @@ function stopUserAgentSpoofing() {
function refreshAllTabs() {
return browser.tabs.query({}).then((tabs) => {
tabs.forEach((tab) => {
- browser.tabs
- .reload(tab.id)
- .then(() => {
- if (DEBUG) console.log(`Refreshed tab: ${tab.id}`);
- })
- .catch((error) => {
- console.error(`Error refreshing tab ${tab.id}:`, error);
- });
+ if (tab.url.startsWith("https://")) {
+ browser.tabs
+ .reload(tab.id)
+ .then(() => {
+ if (DEBUG) console.log(`Refreshed tab: ${tab.id}`);
+ })
+ .catch((error) => {
+ console.error(`Error refreshing tab ${tab.id}:`, error);
+ });
+ } else {
+ if (DEBUG)
+ console.log(
+ `Skipped refreshing tab ${tab.id} (URL does not start with "https://")`
+ );
+ }
});
});
}
@@ -215,20 +262,24 @@ function injectContentScript() {
`Content script injected into tab ${tab.id}`
);
- // Use a hardcoded duration for removal
- const duration = 80000; // 8 seconds or whatever you need
-
// Set a timeout to remove the content after the hardcoded duration
setTimeout(() => {
- browser.storage.sync.set({
- bannerInjected: true,
- });
+ browser.storage.sync
+ .set({
+ bannerInjected: true,
+ })
+ .then(() => {
+ if (DEBUG)
+ console.log(
+ "Banner injected flag set to true."
+ );
+ });
if (DEBUG)
console.log(
"Duration expired. Removing content."
);
removeInjectedContent(); // Ensure this is defined
- }, duration);
+ }, DISPLAY_DURATION);
})
.catch((error) => {
console.error(
diff --git a/1000_bots_webextension/background_ff.js b/1000_bots_webextension/background_ff.js
index 3680bca..42bbcd4 100644
--- a/1000_bots_webextension/background_ff.js
+++ b/1000_bots_webextension/background_ff.js
@@ -26,7 +26,7 @@ var user_agent =
var target_urls = "*://*/*";
var status = 0;
-const DEBUG = false; // Set to true to enable debug mode
+const DEBUG = true; // Set to true to enable debug mode
// Duration to display the injected HTML (in milliseconds)
const DISPLAY_DURATION = 8000; // Set to 8 seconds
@@ -137,16 +137,23 @@ function removeInjectedContent() {
function refreshAllTabs() {
browser.tabs.query({}, (tabs) => {
tabs.forEach((tab) => {
- browser.tabs.reload(tab.id, () => {
- if (browser.runtime.lastError) {
- console.error(
- `Error refreshing tab ${tab.id}:`,
- browser.runtime.lastError
+ if (tab.url.startsWith("https://")) {
+ browser.tabs.reload(tab.id, () => {
+ if (browser.runtime.lastError) {
+ console.error(
+ `Error refreshing tab ${tab.id}:`,
+ browser.runtime.lastError
+ );
+ } else {
+ if (DEBUG) console.log(`Refreshed tab: ${tab.id}`);
+ }
+ });
+ } else {
+ if (DEBUG)
+ console.log(
+ `Skipped refreshing tab ${tab.id} (URL does not start with https://)`
);
- } else {
- if (DEBUG) console.log(`Refreshed tab: ${tab.id}`);
- }
- });
+ }
});
});
}
@@ -158,7 +165,11 @@ function set_extension_status_ON() {
browser.browserAction.setTitle({
title: "You are now surfing the web as a bot 🤖",
});
- injectContentScript();
+ refreshAllTabs();
+
+ setTimeout(() => {
+ injectContentScript();
+ }, 500);
}
function set_extension_status_OFF() {
diff --git a/1000_bots_webextension/checkUser.js b/1000_bots_webextension/checkUser.js
new file mode 100644
index 0000000..61f0010
--- /dev/null
+++ b/1000_bots_webextension/checkUser.js
@@ -0,0 +1,35 @@
+function isAgentMobile() {
+ const regex =
+ /Mobi|Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i;
+ return regex.test(navigator.userAgent);
+}
+
+function hasTouchSupport() {
+ return "ontouchstart" in window || navigator.maxTouchPoints > 0;
+}
+
+function isMobileScreen() {
+ const minWidth = 768; // Minimum width for desktop devices
+ return window.innerWidth < minWidth || screen.width < minWidth;
+}
+
+function isMobile() {
+ // Check if at least 2 of the 3 conditions are true
+
+ const isMobileAgent = isAgentMobile(); // Renamed variable to avoid conflict
+ const touchSupport = hasTouchSupport(); // Renamed variable to avoid conflict
+ const mobileScreen = isMobileScreen(); // Renamed variable to avoid conflict
+
+ const conditions = [isMobileAgent, touchSupport, mobileScreen];
+ const trueConditions = conditions.filter((condition) => condition);
+
+ return trueConditions.length >= 2; // Return true if at least 2 conditions are true
+}
+
+const user = isMobile();
+
+// Check if the user is on a mobile device
+if (user) {
+ if (DEBUG) console.log("User is on a mobile device, changing userAgent.");
+ browser.storage.sync.set({ isMobile: user });
+}
diff --git a/1000_bots_webextension/content.js b/1000_bots_webextension/content.js
index f9c47f9..ff4c33f 100644
--- a/1000_bots_webextension/content.js
+++ b/1000_bots_webextension/content.js
@@ -5,7 +5,7 @@ let DEBUG; // Declare the DEBUG variable in the outer scope
browser.storage.sync.get("debug").then((result) => {
DEBUG = result.debug;
- console.log("DEBUG mode:", DEBUG);
+ if (DEBUG) console.log("DEBUG mode:", DEBUG);
});
// Duration to show the banner (in milliseconds)
@@ -37,7 +37,7 @@ function initializeCSSProperties(result) {
function injectCSS() {
// Inject the CSS file
const link = document.createElement("link");
- link.href = browser.runtime.getURL("style.css");
+ link.href = browser.runtime.getURL("rtbh_style.css");
link.rel = "stylesheet";
document.head.appendChild(link);
@@ -48,17 +48,15 @@ function injectCSS() {
function createBanner() {
// Create the banner container
const banner = document.createElement("div");
- banner.classList.add("extension-banner-container");
+ banner.classList.add("banner");
const marqeeText = "YOU ARE NOW SURFING THE WEB AS A BOT 🤖 ";
const bannerContent = `
-
-
-
- ${new Array(30).fill(marqeeText).join("")}
-
-
+
+
+ ${new Array(30).fill(marqeeText).join("")}
+
`;
@@ -80,7 +78,7 @@ function removeBanner() {
if (DEBUG) console.log("Banner removed after duration.");
// Remove the injected CSS file
- const link = document.querySelector('link[href$="style.css"]'); // Match any href ending with "style.css"
+ const link = document.querySelector('link[href$="rtbh_style.css"]'); // Match any href ending with "rtbh_style.css"
link.parentNode.removeChild(link);
}
}, DISPLAY_DURATION);
diff --git a/1000_bots_webextension/content_chrome.js b/1000_bots_webextension/content_chrome.js
index b662b75..ff4c33f 100644
--- a/1000_bots_webextension/content_chrome.js
+++ b/1000_bots_webextension/content_chrome.js
@@ -37,7 +37,7 @@ function initializeCSSProperties(result) {
function injectCSS() {
// Inject the CSS file
const link = document.createElement("link");
- link.href = browser.runtime.getURL("style.css");
+ link.href = browser.runtime.getURL("rtbh_style.css");
link.rel = "stylesheet";
document.head.appendChild(link);
@@ -48,17 +48,15 @@ function injectCSS() {
function createBanner() {
// Create the banner container
const banner = document.createElement("div");
- banner.classList.add("extension-banner-container");
+ banner.classList.add("banner");
const marqeeText = "YOU ARE NOW SURFING THE WEB AS A BOT 🤖 ";
const bannerContent = `
-
-
-
- ${new Array(30).fill(marqeeText).join("")}
-
-
+
+
+ ${new Array(30).fill(marqeeText).join("")}
+
`;
@@ -80,7 +78,7 @@ function removeBanner() {
if (DEBUG) console.log("Banner removed after duration.");
// Remove the injected CSS file
- const link = document.querySelector('link[href$="style.css"]'); // Match any href ending with "style.css"
+ const link = document.querySelector('link[href$="rtbh_style.css"]'); // Match any href ending with "rtbh_style.css"
link.parentNode.removeChild(link);
}
}, DISPLAY_DURATION);
diff --git a/1000_bots_webextension/content_ff.js b/1000_bots_webextension/content_ff.js
index 98a13e7..b2f7243 100644
--- a/1000_bots_webextension/content_ff.js
+++ b/1000_bots_webextension/content_ff.js
@@ -37,7 +37,7 @@ function initializeCSSProperties(result) {
function injectCSS() {
// Inject the CSS file
const link = document.createElement("link");
- link.href = browser.runtime.getURL("style.css");
+ link.href = browser.runtime.getURL("rtbh_style.css");
link.rel = "stylesheet";
document.head.appendChild(link);
@@ -48,17 +48,15 @@ function injectCSS() {
function createBanner() {
// Create the banner container
const banner = document.createElement("div");
- banner.classList.add("extension-banner-container");
+ banner.classList.add("banner");
const marqeeText = "YOU ARE NOW SURFING THE WEB AS A BOT 🤖 ";
const bannerContent = `
-
-
-
- ${new Array(30).fill(marqeeText).join("")}
-
-
+
+
+ ${new Array(30).fill(marqeeText).join("")}
+
`;
@@ -118,7 +116,7 @@ function createBanner() {
// Remove the injected CSS file
const link = document.querySelector(
- 'link[href="style.css"]'
+ 'link[href="rtbh_style.css"]'
);
if (link) {
link.parentNode.removeChild(link); // Corrected to remove the link
diff --git a/1000_bots_webextension/fonts/texgyreheros-bolditalic.woff b/1000_bots_webextension/fonts/texgyreheros-bolditalic.woff
new file mode 100644
index 0000000000000000000000000000000000000000..b7bde81b7c0fd241bc7a527b4636eef3ae136370
GIT binary patch
literal 70424
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