let scanInterval = null; async function scan() { startScanStatusPolling(); await apiGet(`/scan`); } function startScanStatusPolling() { if (scanInterval) clearInterval(scanInterval); scanInterval = setInterval(async () => { const res = await fetch(`/photos/scan_status.json?ts=${Date.now()}`); if (!res.ok) return; const data = await res.json(); document.getElementById("scanProgress").textContent = `Progresso: ${data.current}/${data.total} (${data.percent}%)`; document.getElementById("scanEta").textContent = `ETA: ${data.eta}`; document.getElementById("progressBar").style.width = data.percent + "%"; if (data.current >= data.total && data.total > 0) { clearInterval(scanInterval); scanInterval = null; await readDB(); } }, 1000); }