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})();