Automatically Clicks
// ==UserScript==
// @name CuttLinks.com Auto Clicker
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Automatically Clicks
// @author Shiva
// @match https://cuttlinks.com/*
// @match http://cuttlinks.com/*
// @grant none
// @run-at document-start
// @license GPL-3.0-only
// ==/UserScript==
(function() {
'use strict';
console.log('🚀 CuttLinks Bypass v3.3 FAST Started');
let timerCompleted = false;
let processedStates = new Set();
// Faster element detection
function findElement(selector) {
return document.querySelector(selector);
}
// Wait for element with shorter timeout
function waitForElement(selector, timeout = 5000) {
return new Promise((resolve) => {
const element = findElement(selector);
if (element) {
return resolve(element);
}
const observer = new MutationObserver(() => {
const el = findElement(selector);
if (el) {
observer.disconnect();
resolve(el);
}
});
observer.observe(document.body || document.documentElement, {
childList: true,
subtree: true
});
setTimeout(() => {
observer.disconnect();
resolve(null);
}, timeout);
});
}
// Detect page state
function detectPageState() {
// Priority: Go button after timer
if (timerCompleted) {
const goBtn = findElement('#submit-button');
if (goBtn) {
const text = goBtn.textContent.toLowerCase().trim();
if (text.includes('go') || text.includes('->') || text.includes('→')) {
return 'STATE_4_GO_BUTTON';
}
}
}
// State 1: First Continue
const firstContinue = findElement('#submit-button:not(.g-recaptcha)');
if (firstContinue && firstContinue.textContent.toLowerCase().includes('continue')) {
return 'STATE_1_FIRST_CONTINUE';
}
// State 2: reCAPTCHA
const recaptchaBtn = findElement('#submit-button.g-recaptcha');
if (recaptchaBtn) {
return 'STATE_2_RECAPTCHA';
}
// State 3: Timer (only if not completed)
if (!timerCompleted) {
const timerElements = document.querySelectorAll('[id*="timer"], [class*="timer"], [id*="countdown"]');
for (let elem of timerElements) {
if (elem.textContent && elem.textContent.match(/\d+/)) {
return 'STATE_3_TIMER';
}
}
}
// Check Go button again
const goBtn = findElement('#submit-button');
if (goBtn) {
const text = goBtn.textContent.toLowerCase().trim();
if (text.includes('go') || text.includes('->') || text.includes('→')) {
return 'STATE_4_GO_BUTTON';
}
}
return 'UNKNOWN';
}
// State 1: Click Continue (FAST)
async function handleState1() {
if (processedStates.has('STATE_1')) return true;
console.log('📍 STATE 1: Clicking Continue...');
const button = findElement('#submit-button[type="submit"]:not(.g-recaptcha)') ||
await waitForElement('#submit-button[type="submit"]:not(.g-recaptcha)', 2000);
if (button && button.offsetParent !== null) {
console.log('✅ Clicking Continue instantly');
button.click();
processedStates.add('STATE_1');
await new Promise(resolve => setTimeout(resolve, 800));
return true;
}
return false;
}
// State 2: Handle reCAPTCHA (FAST)
async function handleState2() {
if (processedStates.has('STATE_2')) return true;
console.log('📍 STATE 2: Triggering reCAPTCHA...');
const button = findElement('#submit-button.g-recaptcha') ||
await waitForElement('#submit-button.g-recaptcha', 2000);
if (button) {
console.log('✅ reCAPTCHA found - clicking');
console.log('⚠️ SOLVE RECAPTCHA NOW');
button.click();
processedStates.add('STATE_2');
// Fast monitoring for completion
return new Promise((resolve) => {
const checkInterval = setInterval(() => {
const state = detectPageState();
if (state === 'STATE_3_TIMER' || state === 'STATE_4_GO_BUTTON') {
console.log('✅ reCAPTCHA solved!');
clearInterval(checkInterval);
resolve(true);
}
}, 500);
setTimeout(() => {
clearInterval(checkInterval);
resolve(false);
}, 90000);
});
}
return false;
}
// State 3: WAIT for timer naturally (NO MANIPULATION)
async function handleState3() {
if (processedStates.has('STATE_3')) return true;
console.log('📍 STATE 3: Timer detected - monitoring...');
const timerSelectors = '[id*="timer"], [class*="timer"], [id*="countdown"], [class*="countdown"]';
const timerElement = findElement(timerSelectors);
if (timerElement) {
console.log('⏱️ Waiting for timer to complete naturally...');
// DO NOT MANIPULATE THE TIMER - just monitor it
processedStates.add('STATE_3');
return new Promise((resolve) => {
let hasReachedZero = false;
const checkTimer = setInterval(() => {
const elem = findElement(timerSelectors);
if (!elem) {
console.log('✅ Timer disappeared!');
timerCompleted = true;
clearInterval(checkTimer);
resolve(true);
return;
}
const text = elem.textContent;
const match = text.match(/\d+/);
const value = match ? parseInt(match[0]) : null;
if (value !== null) {
// Log every second
console.log(`⏱️ ${value}s remaining`);
if (value <= 0 && !hasReachedZero) {
hasReachedZero = true;
console.log('✅ Timer complete!');
timerCompleted = true;
// Wait a bit for Go button to appear
setTimeout(() => {
clearInterval(checkTimer);
resolve(true);
}, 500);
}
}
}, 1000); // Check every 1 second (natural timing)
// Safety timeout - 12 seconds max
setTimeout(() => {
console.log('✅ Timer timeout');
timerCompleted = true;
clearInterval(checkTimer);
resolve(true);
}, 12000);
});
}
return true;
}
// State 4: Click Go button (INSTANT)
async function handleState4() {
if (processedStates.has('STATE_4')) return true;
console.log('📍 STATE 4: Finding Go button...');
// Try immediately first
let button = findElement('#submit-button');
// Fast retry loop - 3 attempts with 300ms delays
for (let i = 0; i < 3 && !button; i++) {
await new Promise(resolve => setTimeout(resolve, 300));
button = findElement('#submit-button');
}
if (button && button.offsetParent !== null) {
const text = button.textContent.toLowerCase().trim();
if (text.includes('go') || text.includes('->') || text.includes('→')) {
console.log('✅ Go button found - CLICKING NOW');
button.click();
processedStates.add('STATE_4');
// Fast redirect check
await new Promise(resolve => setTimeout(resolve, 800));
findAndRedirect();
return true;
}
}
// If not found, try broader search
const allButtons = document.querySelectorAll('button, a');
for (let btn of allButtons) {
if (btn.offsetParent !== null) {
const text = btn.textContent.toLowerCase().trim();
if (text === 'go' || text.includes('go ->')) {
console.log('✅ Go button found (alt) - CLICKING');
btn.click();
processedStates.add('STATE_4');
await new Promise(resolve => setTimeout(resolve, 800));
findAndRedirect();
return true;
}
}
}
console.log('❌ Go button not found');
return false;
}
// Find destination (FAST)
function findAndRedirect() {
console.log('🔍 Finding destination...');
const links = document.querySelectorAll('a[href^="http"]');
for (let link of links) {
const href = link.href;
if (!href.includes('cuttlinks.com') &&
!href.includes('cuty.io') &&
!href.includes('facebook.com') &&
!href.includes('google.com') &&
!href.includes('recaptcha') &&
link.offsetParent !== null) {
console.log('✅ Destination found!');
console.log('🎯 REDIRECTING:', href);
window.location.href = href;
return;
}
}
console.log('ℹ️ No auto-redirect found');
}
// FAST main loop
async function main() {
while (!document.body) {
await new Promise(resolve => setTimeout(resolve, 50));
}
// Start faster - only 500ms delay
await new Promise(resolve => setTimeout(resolve, 500));
console.log('🔄 FAST MODE ACTIVATED (Timer runs naturally)');
let attempts = 0;
const maxAttempts = 40;
let lastState = '';
while (attempts < maxAttempts) {
attempts++;
const state = detectPageState();
if (state !== lastState) {
console.log(`\n🔍 ${state}`);
lastState = state;
}
try {
switch(state) {
case 'STATE_1_FIRST_CONTINUE':
await handleState1();
break;
case 'STATE_2_RECAPTCHA':
await handleState2();
break;
case 'STATE_3_TIMER':
await handleState3();
break;
case 'STATE_4_GO_BUTTON':
await handleState4();
console.log('✅ COMPLETE!');
return;
case 'UNKNOWN':
await new Promise(resolve => setTimeout(resolve, 500));
break;
}
} catch (error) {
console.error('❌ Error:', error);
}
// Faster loop - 300ms delay
await new Promise(resolve => setTimeout(resolve, 300));
}
console.log('⚠️ Max attempts');
}
// Start immediately
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', main);
} else {
main();
}
})();