Extension for www.hypedrop.com

A new extension

Size

4.8 KB

Version

1.1.1

Created

Nov 20, 2025

Updated

26 days ago

1// ==UserScript==
2// @name		Extension for www.hypedrop.com
3// @description		A new extension
4// @version		1.1.1
5// @match		https://*.hypedrop.com/*
6// ==/UserScript==
7(function() {
8    'use strict';
9    
10    console.log('Cloudflare Auto-Click Extension iniciada');
11    
12    // Función para hacer click en el checkbox de Cloudflare
13    function clickCloudflareCheckbox() {
14        // Selectores específicos para el checkbox de Cloudflare
15        const selectors = [
16            'input[type="checkbox"][id*="challenge"]',
17            'input[type="checkbox"].ctp-checkbox-label',
18            'input[type="checkbox"][name="cf-turnstile-response"]',
19            'iframe[src*="challenges.cloudflare.com"]',
20            '#cf-stage input[type="checkbox"]',
21            '.main-wrapper input[type="checkbox"]',
22            'input.ctp-checkbox-label[type="checkbox"]'
23        ];
24        
25        // Intentar encontrar y hacer click en el checkbox directamente
26        for (const selector of selectors) {
27            const checkbox = document.querySelector(selector);
28            if (checkbox && checkbox.offsetParent !== null) {
29                console.log('Checkbox de Cloudflare encontrado:', selector);
30                checkbox.click();
31                return true;
32            }
33        }
34        
35        // Buscar en iframes (Cloudflare usa iframes para el challenge)
36        const iframes = document.querySelectorAll('iframe');
37        for (const iframe of iframes) {
38            try {
39                if (iframe.src.includes('cloudflare') || iframe.src.includes('challenges')) {
40                    console.log('iframe de Cloudflare encontrado');
41                    // Intentar hacer click en el iframe mismo
42                    iframe.click();
43                    
44                    // Intentar acceder al contenido del iframe
45                    try {
46                        const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
47                        const iframeCheckbox = iframeDoc.querySelector('input[type="checkbox"]');
48                        if (iframeCheckbox) {
49                            console.log('Checkbox dentro del iframe encontrado');
50                            iframeCheckbox.click();
51                            return true;
52                        }
53                    } catch (e) {
54                        console.log('No se puede acceder al contenido del iframe (CORS)');
55                    }
56                }
57            } catch (e) {
58                console.log('Error al procesar iframe:', e);
59            }
60        }
61        
62        // Buscar el contenedor del challenge y hacer click en él
63        const challengeContainer = document.querySelector('[id*="cf-challenge"]') || 
64                                   document.querySelector('[class*="cf-challenge"]') ||
65                                   document.querySelector('.main-wrapper');
66        
67        if (challengeContainer) {
68            console.log('Contenedor de challenge encontrado');
69            challengeContainer.click();
70            return true;
71        }
72        
73        return false;
74    }
75    
76    // Función para observar cambios en el DOM
77    function observeCloudflareChallenge() {
78        const observer = new MutationObserver(debounce(() => {
79            console.log('Cambio en el DOM detectado, buscando checkbox de Cloudflare...');
80            clickCloudflareCheckbox();
81        }, 500));
82        
83        observer.observe(document.body, {
84            childList: true,
85            subtree: true
86        });
87        
88        console.log('Observer de Cloudflare activado');
89    }
90    
91    // Función debounce para evitar múltiples ejecuciones
92    function debounce(func, wait) {
93        let timeout;
94        return function executedFunction(...args) {
95            const later = () => {
96                clearTimeout(timeout);
97                func(...args);
98            };
99            clearTimeout(timeout);
100            timeout = setTimeout(later, wait);
101        };
102    }
103    
104    // Función de inicialización
105    function init() {
106        console.log('Inicializando auto-click de Cloudflare...');
107        
108        // Intentar hacer click inmediatamente
109        setTimeout(() => {
110            clickCloudflareCheckbox();
111        }, 1000);
112        
113        // Intentar nuevamente después de 2 segundos
114        setTimeout(() => {
115            clickCloudflareCheckbox();
116        }, 2000);
117        
118        // Intentar nuevamente después de 3 segundos
119        setTimeout(() => {
120            clickCloudflareCheckbox();
121        }, 3000);
122        
123        // Activar el observer para detectar cuando aparezca el challenge
124        observeCloudflareChallenge();
125    }
126    
127    // Esperar a que el DOM esté listo
128    if (document.readyState === 'loading') {
129        document.addEventListener('DOMContentLoaded', init);
130    } else {
131        init();
132    }
133})();
Extension for www.hypedrop.com | Robomonkey