// ==UserScript== // @name Universal Fast Shortlink Bypasser (Safe Mode) // @namespace https://violentmonkey.top/ // @version 6.0 // @description Fixed version: Won't auto-skip pagination or redirect prematurely. // @author Pawan's Assistant // @match *://*/* // @run-at document-end // @grant none // @downloadURL none // ==/UserScript== (function() { 'use strict'; // ⚡ CONFIGURATION const CONFIG = { clickDelay: 1000, // Increased delay (1s) to be safer scanInterval: 1000, // Check every second // Keywords to click keywords: [ 'skip', 'continue', 'go to link', 'get link', 'proceder', 'continuar', 'human verification', 'click here to', 'get url', 'verify' ], // "Next" is dangerous, so we treat it specially riskyKeywords: ['next'], // Safety Blacklist blacklist: [ 'google', 'youtube', 'facebook', 'instagram', 'netflix', 'amazon', 'bank', 'sbi', 'rrb', 'ibps', 'ssc', 'upsc', 'news', 'blog' // Added specific terms to avoid blogs ] }; const host = window.location.hostname; // 🛑 SAFETY CHECK if (CONFIG.blacklist.some(d => host.includes(d))) return; const log = (msg) => console.log(`%c[Bypass Safe] ${msg}`, 'color: #00ff00; font-weight: bold;'); // ========================================== // 🧠 PART 1: PAGINATION DETECTOR (New) // ========================================== // Returns TRUE if the button looks like a "Page 1, 2, 3" button function isPagination(element) { // Check for "Previous" button nearby (Strong indicator of a blog) const allButtons = document.body.innerText.toLowerCase(); if (allButtons.includes('previous') || allButtons.includes('prev page')) { return true; } // Check class names for "pagination" let parent = element.parentElement; while (parent) { if (parent.className && typeof parent.className === 'string' && parent.className.toLowerCase().includes('pagination')) { return true; } parent = parent.parentElement; } return false; } // ========================================== // 🧠 PART 2: THE SPECIALIST // ========================================== function runSpecialist() { // Ouo.io if (host.includes('ouo.io') || host.includes('ouo.press')) { const btn = document.querySelector('#btn-main'); if (btn) { btn.click(); return true; } } // GPLinks if (host.includes('gplinks') || host.includes('desiupload')) { const timer = document.getElementById('timer'); if (timer) timer.innerText = "0"; const btn = document.querySelector('#get_link, .get-link'); if (btn) { btn.click(); return true; } } return false; } // ========================================== // ⚙️ PART 3: THE GENERALIST // ========================================== // ⚡ Timer Accelerator const originalInterval = window.setInterval; window.setInterval = function(func, delay) { if (delay === 1000) return originalInterval(func, 10); return originalInterval(func, delay); }; function scanGeneric() { const elements = document.querySelectorAll('button, a, input[type="submit"], div[role="button"]'); for (let el of elements) { if (el.offsetParent === null) continue; let text = (el.innerText || el.value || "").toLowerCase().trim(); // Filter junk if (text.length > 40 || text.includes('login') || text.includes('signup')) continue; // CHECK 1: Safe Keywords (Always click) let shouldClick = CONFIG.keywords.some(key => text.includes(key)); // CHECK 2: Risky Keywords ("Next") - Only click if NOT pagination if (!shouldClick && CONFIG.riskyKeywords.some(key => text === key)) { // Exact match for 'next' if (!isPagination(el)) { shouldClick = true; } else { log(`Skipped pagination button: "${text}"`); } } if (shouldClick) { log(`Target found: "${text}"`); el.style.border = "3px solid #ff0000"; // Stop scanning after finding one setTimeout(() => { el.click(); }, CONFIG.clickDelay); break; } } } // ========================================== // 🚀 EXECUTION // ========================================== // I REMOVED the "window.location.href" redirector here. // It was causing the auto-jump issue. if (!runSpecialist()) { setInterval(scanGeneric, CONFIG.scanInterval); } })();