Dogepick.io Auto Bypass & Claimer

Automatically bypasses captcha, timers, and claims rewards on dogepick.io

Size

8.3 KB

Version

1.1.1

Created

Nov 2, 2025

Updated

12 days ago

1// ==UserScript==
2// @name		Dogepick.io Auto Bypass & Claimer
3// @description		Automatically bypasses captcha, timers, and claims rewards on dogepick.io
4// @version		1.1.1
5// @match		*://dogepick.io/*
6// @match		*://*.dogepick.io/*
7// @icon		https://robomonkey.io/icon.png?adc3438f5fbb5315
8// ==/UserScript==
9(function() {
10    'use strict';
11
12    console.log('Dogepick.io Auto Bypass & Claimer - Initialized');
13
14    // Utility function to debounce callbacks
15    function debounce(func, wait) {
16        let timeout;
17        return function executedFunction(...args) {
18            const later = () => {
19                clearTimeout(timeout);
20                func(...args);
21            };
22            clearTimeout(timeout);
23            timeout = setTimeout(later, wait);
24        };
25    }
26
27    // Auto-solve captcha
28    async function solveCaptcha() {
29        const captchaInput = document.querySelector('input[name="captcha"], input[id*="captcha"], input[class*="captcha"]');
30        const captchaImage = document.querySelector('img[class*="captcha"], img[id*="captcha"], canvas[class*="captcha"]');
31        const verifyButton = document.querySelector('.captcha-verify-btn, button[class*="verify"], button[id*="verify"]');
32
33        if (captchaInput && captchaImage) {
34            console.log('Captcha detected, attempting to solve...');
35            
36            // Try to use RM AI to solve the captcha
37            try {
38                const imageUrl = captchaImage.src || captchaImage.toDataURL?.();
39                if (imageUrl) {
40                    console.log('Using AI to solve captcha...');
41                    const solution = await RM.aiCall(`Solve this simple math captcha or text captcha. Return only the answer as a number or text. Image: ${imageUrl}`, {
42                        type: "json_schema",
43                        json_schema: {
44                            name: "captcha_solution",
45                            schema: {
46                                type: "object",
47                                properties: {
48                                    answer: { type: "string" }
49                                },
50                                required: ["answer"]
51                            }
52                        }
53                    });
54                    
55                    if (solution && solution.answer) {
56                        captchaInput.value = solution.answer;
57                        console.log('Captcha solved:', solution.answer);
58                        
59                        // Trigger input event
60                        captchaInput.dispatchEvent(new Event('input', { bubbles: true }));
61                        captchaInput.dispatchEvent(new Event('change', { bubbles: true }));
62                        
63                        return true;
64                    }
65                }
66            } catch (error) {
67                console.log('AI captcha solving failed, trying alternative methods:', error);
68            }
69        }
70        
71        return false;
72    }
73
74    // Enable disabled buttons
75    function enableButtons() {
76        const disabledButtons = document.querySelectorAll('button[disabled], input[type="submit"][disabled], a[disabled]');
77        
78        disabledButtons.forEach(btn => {
79            const text = btn.textContent.toLowerCase();
80            if (text.includes('verify') || text.includes('claim') || text.includes('roll') || text.includes('submit')) {
81                console.log('Enabling button:', text);
82                btn.removeAttribute('disabled');
83                btn.disabled = false;
84                btn.style.opacity = '1';
85                btn.style.pointerEvents = 'auto';
86            }
87        });
88    }
89
90    // Skip timers and countdowns
91    function skipTimers() {
92        // Find and clear all timers
93        const timerElements = document.querySelectorAll('[class*="timer"], [id*="timer"], [class*="countdown"], [id*="countdown"]');
94        timerElements.forEach(el => {
95            el.textContent = '0';
96            el.style.display = 'none';
97        });
98
99        // Speed up progress bars
100        const progressBars = document.querySelectorAll('[class*="progress-bar"], [role="progressbar"]');
101        progressBars.forEach(bar => {
102            bar.style.width = '100%';
103            bar.style.transition = 'none';
104        });
105
106        // Try to find and clear JavaScript timers
107        try {
108            // Override setTimeout and setInterval to speed them up
109            const originalSetTimeout = window.setTimeout;
110            const originalSetInterval = window.setInterval;
111            
112            window.setTimeout = function(callback, delay, ...args) {
113                return originalSetTimeout(callback, Math.min(delay, 100), ...args);
114            };
115            
116            window.setInterval = function(callback, delay, ...args) {
117                return originalSetInterval(callback, Math.min(delay, 100), ...args);
118            };
119        } catch (error) {
120            console.log('Could not override timers:', error);
121        }
122    }
123
124    // Auto-click claim/roll buttons
125    function autoClickButtons() {
126        const claimButton = document.querySelector('button.process_btn, button[class*="claim"], button[id*="claim"]');
127        const rollButton = document.querySelector('button[class*="roll"], button[id*="roll"]');
128        
129        if (claimButton && !claimButton.disabled) {
130            const text = claimButton.textContent.toLowerCase();
131            if (text.includes('claim')) {
132                console.log('Auto-clicking claim button');
133                claimButton.click();
134            }
135        }
136        
137        if (rollButton && !rollButton.disabled) {
138            const text = rollButton.textContent.toLowerCase();
139            if (text.includes('roll')) {
140                console.log('Auto-clicking roll button');
141                rollButton.click();
142            }
143        }
144    }
145
146    // Remove overlays and popups
147    function removeOverlays() {
148        const overlaySelectors = [
149            'div[class*="overlay"]',
150            'div[class*="modal"]',
151            'div[class*="popup"]',
152            'div[style*="position: fixed"]',
153            'div[style*="z-index: 9999"]'
154        ];
155
156        overlaySelectors.forEach(selector => {
157            const elements = document.querySelectorAll(selector);
158            elements.forEach(el => {
159                const style = window.getComputedStyle(el);
160                if (style.position === 'fixed' && style.zIndex > 1000) {
161                    console.log('Removing overlay element');
162                    el.remove();
163                }
164            });
165        });
166
167        // Re-enable body scrolling
168        document.body.style.overflow = 'auto';
169    }
170
171    // Main bypass execution
172    async function executeBypass() {
173        console.log('Running bypass checks...');
174        
175        // Step 1: Remove overlays
176        removeOverlays();
177        
178        // Step 2: Skip timers
179        skipTimers();
180        
181        // Step 3: Enable buttons
182        enableButtons();
183        
184        // Step 4: Try to solve captcha
185        await solveCaptcha();
186        
187        // Step 5: Auto-click buttons (with delay to ensure captcha is solved)
188        setTimeout(() => {
189            enableButtons(); // Enable again after captcha
190            autoClickButtons();
191        }, 1000);
192    }
193
194    // Initialize the script
195    async function init() {
196        console.log('Dogepick.io Auto Bypass starting...');
197        
198        // Wait for page to fully load
199        await new Promise(resolve => {
200            if (document.readyState === 'complete') {
201                resolve();
202            } else {
203                window.addEventListener('load', resolve);
204            }
205        });
206
207        // Initial bypass
208        await executeBypass();
209
210        // Run periodically
211        setInterval(executeBypass, 3000);
212
213        // Watch for DOM changes
214        const debouncedBypass = debounce(executeBypass, 500);
215        const observer = new MutationObserver(debouncedBypass);
216        
217        observer.observe(document.body, {
218            childList: true,
219            subtree: true,
220            attributes: true,
221            attributeFilter: ['disabled', 'class', 'style']
222        });
223
224        console.log('Dogepick.io Auto Bypass active - monitoring page');
225    }
226
227    // Start the script
228    if (document.readyState === 'loading') {
229        document.addEventListener('DOMContentLoaded', init);
230    } else {
231        init();
232    }
233})();
Dogepick.io Auto Bypass & Claimer | Robomonkey