From 5cbb7600053151b7c4eee068e147813ab0fcbebb Mon Sep 17 00:00:00 2001 From: zwitschi Date: Wed, 17 Sep 2025 17:12:29 +0200 Subject: [PATCH] separate javascript for scrape page --- web/static/scrape.js | 44 ++++++++++++++++++++++++++++++++++++ web/templates/scrape.html | 47 +-------------------------------------- 2 files changed, 45 insertions(+), 46 deletions(-) create mode 100644 web/static/scrape.js 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 %}