diff --git a/web/static/scrape.js b/web/static/scrape.js new file mode 100644 index 0000000..07e8db6 --- /dev/null +++ b/web/static/scrape.js @@ -0,0 +1,44 @@ +function startScrape() { + const output = document.getElementById("output"); + const startButton = document.getElementById("start-scrape"); + + output.textContent = "Starting scrape...\n"; + startButton.disabled = true; + startButton.textContent = "Scraping..."; + + fetch("/scrape") + .then((response) => { + const reader = response.body.getReader(); + const decoder = new TextDecoder(); + + function readStream() { + reader + .read() + .then(({ done, value }) => { + if (done) { + output.textContent += "\nScraping completed!"; + startButton.disabled = false; + startButton.textContent = "Start Scraping"; + return; + } + + const chunk = decoder.decode(value, { stream: true }); + output.textContent += chunk; + output.scrollTop = output.scrollHeight; + readStream(); + }) + .catch((error) => { + output.textContent += `\nError: ${error.message}`; + startButton.disabled = false; + startButton.textContent = "Start Scraping"; + }); + } + + readStream(); + }) + .catch((error) => { + output.textContent = `Error starting scrape: ${error.message}`; + startButton.disabled = false; + startButton.textContent = "Start Scraping"; + }); +} diff --git a/web/templates/scrape.html b/web/templates/scrape.html index 0533405..a5d805a 100644 --- a/web/templates/scrape.html +++ b/web/templates/scrape.html @@ -18,50 +18,5 @@ content %} > {% endblock %} {% block scripts %} - + {% endblock %}