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() {