Greasy Fork is available in English.
Safer Human-like Engine: Fast but Undetectable
当前为
// ==UserScript==
// @name Universal Fast Shortlink Bypasser (Adaptive v14.5 SAFE)
// @namespace https://violentmonkey.top/
// @version 14.5
// @description Safer Human-like Engine: Fast but Undetectable
// @author Pawan
// @match *://*/*
// @run-at document-start
// @grant none
// ==/UserScript==
(function () {
'use strict';
const HOST = window.location.hostname;
// =========================================================================
// 🛡️ SAFETY MODE DETECTION
// =========================================================================
const IS_GPLINKS = HOST.includes('gplinks');
// =========================================================================
// ⏳ HUMAN-LIKE DELAY (MOST IMPORTANT CHANGE)
// =========================================================================
function humanDelay(base) {
return base + Math.floor(Math.random() * 1200) + 400;
}
// =========================================================================
// 🕵️ CONFIGURATION
// =========================================================================
const CONFIG = {
scanInterval: 1200,
// realistic waiting
safetyDelay: IS_GPLINKS ? 6500 : 2800,
targets: [
'skip', 'continue', 'next', 'go to link', 'get link',
'proceder', 'continuar', 'click here', 'verify',
'get url', 'link download', 'click to continue'
],
blacklist: [
'google', 'youtube', 'facebook', 'instagram', 'netflix',
'amazon', 'bank', 'sbi', 'rrb', 'ibps', 'ssc', 'upsc',
'irctc', 'wikipedia', 'reddit'
]
};
if (CONFIG.blacklist.some(d => HOST.includes(d))) return;
// =========================================================================
// 🧠 MEMORY
// =========================================================================
const MEMORY = new WeakSet();
// =========================================================================
// 🔍 SCANNER
// =========================================================================
function scan() {
const elements = document.querySelectorAll(
'button, a, input[type="submit"], div[role="button"], span[onclick], span.btn'
);
for (let el of elements) {
if (MEMORY.has(el)) continue;
if (el.offsetParent === null) continue;
let text = (el.innerText || el.value || '').toLowerCase().trim();
if (text.length < 2 || text.length > 50) continue;
if (!CONFIG.targets.some(k => text.includes(k))) continue;
// ❌ avoid blog navigation
if (text === 'next') {
const body = document.body.innerText.toLowerCase();
if (body.includes('previous') || body.includes('prev page')) continue;
}
// ❌ ad / useless links
if (el.tagName === 'A' && el.href) {
if (
el.href.includes('googleads') ||
el.href.includes('doubleclick') ||
el.href === '#' ||
el.href.startsWith('/')
) continue;
}
MEMORY.add(el);
// 🟠 waiting indicator
el.style.border = '3px solid orange';
el.style.position = 'relative';
const label = document.createElement('span');
label.textContent = '⏳ waiting...';
label.style.cssText =
'position:absolute;top:-28px;left:0;background:orange;color:black;' +
'padding:3px 6px;font-size:12px;font-weight:bold;z-index:9999;';
el.parentNode && el.parentNode.insertBefore(label, el);
const delay = humanDelay(CONFIG.safetyDelay);
setTimeout(() => {
el.style.border = '3px solid #00ff00';
label.style.background = '#00ff00';
label.textContent = '🚀 clicking';
try { el.click(); } catch (e) {}
}, delay);
break;
}
}
window.addEventListener('load', () => {
setInterval(scan, CONFIG.scanInterval);
});
})();