Sorry, the diff of this file is not supported yet
+1
-1
| { | ||
| "manifest_version": 3, | ||
| "name": "ZeroGate", | ||
| "version": "2.7.0", | ||
| "version": "2.8.0", | ||
| "description": "Modular automation & link extraction toolkit with category-based control.", | ||
@@ -6,0 +6,0 @@ "permissions": [ |
| // bypass.js - Runs in MAIN world | ||
| window.prolinkVerified = true; | ||
| // 1. Prevent visibility detection (Keep timer running in background) | ||
| // 1. Prevent visibility and focus detection (Stops site from detecting if you left the page/tab) | ||
| Object.defineProperty(document, 'visibilityState', { get: () => 'visible', configurable: true }); | ||
| Object.defineProperty(document, 'hidden', { get: () => false, configurable: true }); | ||
| Object.defineProperty(document, 'hasFocus', { value: () => true, configurable: true }); | ||
| // Intercept page focus/blur event handlers to prevent tracking | ||
| ['visibilitychange', 'webkitvisibilitychange', 'blur', 'focus', 'mouseleave', 'pagehide'].forEach(eventName => { | ||
| window.addEventListener(eventName, (e) => { | ||
| e.stopImmediatePropagation(); | ||
| }, true); | ||
| document.addEventListener(eventName, (e) => { | ||
| e.stopImmediatePropagation(); | ||
| }, true); | ||
| }); | ||
| // 2. Block Alerts (Prevents "Please wait for timer" popups) | ||
@@ -9,0 +20,0 @@ window.alert = function() { console.log("[ZeroGate] Blocked site alert:", arguments[0]); return true; }; |
@@ -5,3 +5,3 @@ // main.js - Runs in ISOLATED world | ||
| let copied = false; | ||
| let isProcessingFinal = false; | ||
| let isProcessing = false; // Lock to prevent spamming actions every second | ||
@@ -33,3 +33,3 @@ chrome.storage.local.get(['modMenuDisabled'], (result) => { | ||
| // Remove annoying Ads & Overlays | ||
| // Remove annoying Ads, Overlays, and the AdBlock popup (#AdbModel) | ||
| function cleanUI() { | ||
@@ -39,3 +39,3 @@ const adSelectors = [ | ||
| 'iframe[src*="googleads"]', '#overlay', '.popup-overlay', | ||
| '.fixed-bottom-ad', '.top-ad-banner' | ||
| '.fixed-bottom-ad', '.top-ad-banner', '#AdbModel', '.adb-overlay' | ||
| ]; | ||
@@ -46,3 +46,3 @@ adSelectors.forEach(selector => { | ||
| } | ||
| setInterval(cleanUI, 1000); | ||
| setInterval(cleanUI, 500); | ||
@@ -62,5 +62,5 @@ // Advanced Mouse click simulation | ||
| // The new Backend API Fetcher for the final step | ||
| // The Backend API Fetcher for the final step | ||
| async function handleFinalStep() { | ||
| if (isProcessingFinal || copied || modMenuDisabled) return; | ||
| if (copied || modMenuDisabled) return; | ||
@@ -73,3 +73,3 @@ const stepEl = document.querySelector('.sgu-tech-step'); | ||
| isProcessingFinal = true; | ||
| copied = true; | ||
| console.log("[ZeroGate Engine] Step 6/6 reached. Triggering API fetch..."); | ||
@@ -82,3 +82,2 @@ | ||
| if (res.success && res.finalUrl) { | ||
| copied = true; | ||
| const targetUrl = res.finalUrl; | ||
@@ -102,7 +101,7 @@ | ||
| } else { | ||
| isProcessingFinal = false; // Reset to allow retry | ||
| copied = false; | ||
| } | ||
| } catch (err) { | ||
| console.error("[ZeroGate Engine] Error fetching final link:", err); | ||
| isProcessingFinal = false; | ||
| copied = false; | ||
| } | ||
@@ -113,3 +112,3 @@ } | ||
| async function autoRun() { | ||
| if (modMenuDisabled || copied) return; | ||
| if (modMenuDisabled || copied || isProcessing) return; | ||
@@ -129,18 +128,63 @@ // --- Google Search Auto-open First Result --- | ||
| const vBtn = document.getElementById('verifyBtn'); | ||
| if (vBtn && vBtn.offsetHeight > 0) await humanClick(vBtn); | ||
| if (vBtn && vBtn.offsetHeight > 0) { | ||
| await humanClick(vBtn); | ||
| await sleep(1000); | ||
| } | ||
| // Step 2: Footer "CONTINUE" | ||
| // Step 2: Footer "CONTINUE" -> Wait 10s -> Click Proceed -> Wait 25s -> Click Proceed 3 times | ||
| const fBtn = document.getElementById('footerBtn'); | ||
| if (fBtn && fBtn.innerText.includes('CONTINUE') && !fBtn.classList.contains('verifying')) { | ||
| isProcessing = true; | ||
| console.log('[ZeroGate Engine] Clicking Continue button...'); | ||
| await humanClick(fBtn); | ||
| console.log('[ZeroGate Engine] Waiting 10 seconds...'); | ||
| await sleep(10000); | ||
| // Initial Proceed click | ||
| const pWaitInitial = document.getElementById('pleaseWait'); | ||
| if (pWaitInitial && window.getComputedStyle(pWaitInitial).display !== 'none') { | ||
| console.log('[ZeroGate Engine] Clicking Proceed button...'); | ||
| await humanClick(pWaitInitial); | ||
| } | ||
| console.log('[ZeroGate Engine] Waiting 25 seconds before multi-clicking Proceed...'); | ||
| await sleep(25000); | ||
| // Press the Proceed button 3 times consecutively after 25 seconds | ||
| const pWaitFinal = document.getElementById('pleaseWait'); | ||
| if (pWaitFinal && window.getComputedStyle(pWaitFinal).display !== 'none') { | ||
| for (let i = 1; i <= 3; i++) { | ||
| console.log(`[ZeroGate Engine] Multi-clicking Proceed attempt ${i}/3...`); | ||
| await humanClick(pWaitFinal); | ||
| await sleep(600); // 600ms gap between consecutive clicks | ||
| } | ||
| } | ||
| isProcessing = false; | ||
| return; | ||
| } | ||
| // Step 3: "PROCEED" after timer | ||
| // Fallback if Proceed appears independently later | ||
| const pWait = document.getElementById('pleaseWait'); | ||
| if (pWait && window.getComputedStyle(pWait).display !== 'none') { | ||
| if (pWait.innerText === 'PROCEED') { | ||
| if (pWait.innerText.trim() === 'PROCEED') { | ||
| isProcessing = true; | ||
| console.log('[ZeroGate Engine] Clicking Proceed button (fallback)...'); | ||
| await humanClick(pWait); | ||
| } else if (pWait.innerText === 'ERROR') { | ||
| await sleep(1000); | ||
| console.log('[ZeroGate Engine] Waiting 25 seconds before multi-clicking Proceed...'); | ||
| await sleep(25000); | ||
| for (let i = 1; i <= 3; i++) { | ||
| console.log(`[ZeroGate Engine] Multi-clicking Proceed fallback attempt ${i}/3...`); | ||
| await humanClick(pWait); | ||
| await sleep(600); | ||
| } | ||
| isProcessing = false; | ||
| return; | ||
| } else if (pWait.innerText.trim() === 'ERROR') { | ||
| pWait.innerText = 'PROCEED'; | ||
| return; | ||
| } | ||
@@ -153,4 +197,3 @@ } | ||
| // Run the sequence every 1.5 seconds | ||
| setInterval(autoRun, 1500); | ||
| })(); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet