From 8ae2f375c9c56d01981ba6d75e431a518538e339 Mon Sep 17 00:00:00 2001
From: jamz-uk <222520099+jamz-uk@users.noreply.github.com>
Date: Wed, 13 Aug 2025 21:09:37 +0100
Subject: [PATCH] Update Auto-Image.js
---
Auto-Image.js | 47 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)
diff --git a/Auto-Image.js b/Auto-Image.js
index 925c2ae..5e84a0e 100644
--- a/Auto-Image.js
+++ b/Auto-Image.js
@@ -132,6 +132,8 @@
lastPosition: { x: 0, y: 0 },
estimatedTime: 0,
language: "en",
+ autoRefresh: true,
+ pausedForManual: false
};
// Global variable to store the captured CAPTCHA token.
@@ -566,6 +568,43 @@
).color.id;
}
+ // Auto-refresh sequence: mimics UI clicks to refresh CAPTCHA
+ async function autoRefreshSequence() {
+ const sleep = Utils.sleep;
+ const waitForSelector = async (selector, interval = 200, timeout = 5000) => {
+ const start = Date.now();
+ while (Date.now() - start < timeout) {
+ const el = document.querySelector(selector);
+ if (el) return el;
+ await sleep(interval);
+ }
+ return null;
+ };
+ // Paint button
+ const paintBtn = await waitForSelector('button.btn.btn-primary.btn-lg, button.btn-primary.sm\\:btn-xl');
+ paintBtn?.click();
+ await sleep(500);
+ // Transparent
+ const trans = await waitForSelector('button#color-0'); trans?.click();
+ await sleep(500);
+ // Canvas center + space
+ const canvas = await waitForSelector('canvas');
+ if (canvas) {
+ canvas.setAttribute('tabindex','0'); canvas.focus();
+ const r = canvas.getBoundingClientRect();
+ const cx = Math.round(r.left + r.width/2);
+ const cy = Math.round(r.top + r.height/2);
+ canvas.dispatchEvent(new MouseEvent('mousemove',{clientX:cx,clientY:cy,bubbles:true}));
+ canvas.dispatchEvent(new KeyboardEvent('keydown',{key:' ',code:'Space',bubbles:true}));
+ canvas.dispatchEvent(new KeyboardEvent('keyup',{key:' ',code:'Space',bubbles:true}));
+ }
+ await sleep(500);
+ // Confirm
+ let cbtn = await waitForSelector('button.btn.btn-primary.btn-lg, button.btn.btn-primary.sm\\:btn-xl');
+ if (!cbtn) { const all = Array.from(document.querySelectorAll('button.btn-primary')); cbtn = all[all.length-1]; }
+ cbtn?.click();
+ }
+
async function createUI() {
await detectLanguage();
@@ -1415,6 +1454,14 @@
// Check for saved progress after a short delay to let UI settle
setTimeout(checkSavedProgress, 1000);
+
+ // add Auto Refresh checkbox
+ const autoChk = document.createElement('label');
+ autoChk.style = 'margin-left:10px;display:flex;align-items:center;';
+ autoChk.innerHTML = ` Auto Refresh`;
+ container.querySelector('.wplace-controls').appendChild(autoChk);
+ const chk = container.querySelector('#autoRefreshChk');
+ chk.addEventListener('change', ()=>{ state.autoRefresh = chk.checked; });
}
async function processImage() {