fixes dummy scraper

This commit is contained in:
Michael Beck 2025-04-16 21:39:59 +02:00
parent 0adaed0bfa
commit a0fa541de3
2 changed files with 581 additions and 173 deletions

File diff suppressed because it is too large Load Diff

View File

@ -62,6 +62,7 @@
<button id="startButton" class="btn btn-success">Start</button> <button id="startButton" class="btn btn-success">Start</button>
<button id="pauseButton" class="btn btn-warning" disabled>Pause</button> <button id="pauseButton" class="btn btn-warning" disabled>Pause</button>
<button id="stopButton" class="btn btn-danger" disabled>Stop</button> <button id="stopButton" class="btn btn-danger" disabled>Stop</button>
<button id="resetButton" class="btn btn-secondary" disabled>Reset</button>
</div> </div>
</div> </div>
</div> </div>
@ -160,6 +161,7 @@
const startButton = document.getElementById('startButton'); const startButton = document.getElementById('startButton');
const pauseButton = document.getElementById('pauseButton'); const pauseButton = document.getElementById('pauseButton');
const stopButton = document.getElementById('stopButton'); const stopButton = document.getElementById('stopButton');
const resetButton = document.getElementById('resetButton');
const notificationsToggle = document.getElementById('notificationsToggle'); const notificationsToggle = document.getElementById('notificationsToggle');
const activityLog = document.getElementById('activityLog'); const activityLog = document.getElementById('activityLog');
@ -173,6 +175,7 @@
startButton.addEventListener('click', startScraper); startButton.addEventListener('click', startScraper);
pauseButton.addEventListener('click', togglePauseScraper); pauseButton.addEventListener('click', togglePauseScraper);
stopButton.addEventListener('click', stopScraper); stopButton.addEventListener('click', stopScraper);
resetButton.addEventListener('click', resetScraper);
notificationsToggle.addEventListener('click', toggleNotifications); notificationsToggle.addEventListener('click', toggleNotifications);
document.getElementById('volumeForm').addEventListener('submit', function (e) { document.getElementById('volumeForm').addEventListener('submit', function (e) {
@ -213,12 +216,14 @@
startButton.disabled = true; startButton.disabled = true;
pauseButton.disabled = false; pauseButton.disabled = false;
stopButton.disabled = false; stopButton.disabled = false;
resetButton.disabled = false; // Enable reset when active
} else { } else {
statusIndicator.className = 'status-indicator status-inactive'; statusIndicator.className = 'status-indicator status-inactive';
statusText.textContent = 'Inactive'; statusText.textContent = 'Inactive';
startButton.disabled = false; startButton.disabled = false;
pauseButton.disabled = true; pauseButton.disabled = true;
stopButton.disabled = true; stopButton.disabled = true;
resetButton.disabled = false; // Enable reset when inactive too
} }
}); });
} }
@ -276,6 +281,46 @@
}); });
} }
function resetScraper() {
if (confirm("Are you sure you want to reset the scraper? This will stop all current tasks, optionally clear non-pending papers, and restart the scraper.")) {
// Disable button to prevent multiple clicks
resetButton.disabled = true;
// Show a loading message
showFlashMessage('Resetting scraper, please wait...', 'info');
fetch('/scraper/reset', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
clear_papers: true // You could make this configurable with a checkbox
})
})
.then(response => response.json())
.then(data => {
if (data.success) {
showFlashMessage('Scraper has been completely reset and restarted', 'success');
// Update everything
updateStatus();
loadActivityStats(currentTimeRange);
setTimeout(() => { loadRecentActivity(); }, 1000);
} else {
showFlashMessage(data.message || 'Error resetting scraper', 'error');
}
// Re-enable button
resetButton.disabled = false;
})
.catch(error => {
console.error("Error resetting scraper:", error);
showFlashMessage('Error resetting scraper: ' + error.message, 'error');
// Re-enable button
resetButton.disabled = false;
});
}
}
function updateVolume() { function updateVolume() {
const volume = document.getElementById('volumeInput').value; const volume = document.getElementById('volumeInput').value;