# SciPaperLoader Diagnostic and Emergency Tools This directory contains various scripts for diagnosing issues, debugging, and handling emergency situations with the SciPaperLoader application. ## Available Tools ### Scraper Management - **emergency_stop.py**: Force stops all scraper activities, revokes running tasks, and reverts papers from "Pending" state - **quick_fix.py**: A simplified emergency stop that also stops Flask processes to ensure code changes are applied - **test_reversion.py**: Tests the paper reversion functionality when stopping the scraper ### Monitoring and Diagnostics - **check_state.py**: Checks the current state of the scraper in the database - **diagnose_scraper.py**: Comprehensive diagnostic tool that examines tasks, logs, and scraper state - **inspect_tasks.py**: Displays currently running and scheduled APScheduler tasks ## Usage ### Interactive Diagnostic Menu For a user-friendly interface to all diagnostic tools, run: ```bash cd /path/to/SciPaperLoader python tools/run_diagnostics.py ``` This will launch the diagnostic menu where you can select which tool to run. ### Emergency Stop When the scraper needs to be immediately stopped, regardless of its state: ```bash cd /path/to/SciPaperLoader python tools/diagnostics/emergency_stop.py ``` ### Diagnosing Issues To investigate problems with the scraper or task queue: ```bash cd /path/to/SciPaperLoader python tools/diagnostics/diagnose_scraper.py ``` ### Quick Fix for Worker Issues If tasks continue to run despite stopping the scraper: ```bash cd /path/to/SciPaperLoader python tools/diagnostics/quick_fix.py ``` ## Notes - Always run these scripts from the project root directory - Some scripts may require a running Flask application with APScheduler - After using emergency tools, the application may need to be restarted completely