84 lines
2.9 KiB
Django/Jinja

{% extends "base.html.jinja" %}
<!-- Include flash messages template -->
{% include "partials/flash_messages.html.jinja" %}
{% block title %}Home - SciPaperLoader{% endblock title %}
{% block content %}
<!-- Include flash messages template -->
{% include "partials/flash_messages.html.jinja" %}
<div class="container text-center">
<h1 class="display-4">Welcome to SciPaperLoader</h1>
<p class="lead">Your paper scraping tool is ready.</p>
<p class="text-muted">A simple tool to scrape papers from Zotero API.</p>
</div>
<div class="row g-4">
<div class="col-md-6">
<div class="card shadow-sm">
<div class="card-body">
<h5 class="card-title">📄 CSV Import</h5>
<p class="card-text">
Upload a 37-column CSV to import paper metadata. Only relevant fields
(title, DOI, ISSN, etc.) are stored. Errors are reported without
aborting the batch.
</p>
<a href="{{ url_for('upload.upload') }}" class="btn btn-sm btn-outline-primary">Upload Now</a>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card shadow-sm">
<div class="card-body">
<h5 class="card-title">🧠 Background Scraper</h5>
<p class="card-text">
A daemon process runs hourly to fetch papers using Zotero API.
Downloads are randomized to mimic human behavior and avoid detection.
</p>
<a href="{{ url_for('logger.list_logs') }}" class="btn btn-sm btn-outline-secondary">View Logs</a>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card shadow-sm">
<div class="card-body">
<h5 class="card-title">📚 Paper Management</h5>
<p class="card-text">
Monitor paper status (Pending, Done, Failed), download PDFs, and
inspect errors. Files are stored on disk in structured folders per
DOI.
</p>
<a href="{{ url_for('papers.list_papers') }}" class="btn btn-sm btn-outline-success">Browse Papers</a>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card shadow-sm">
<div class="card-body">
<h5 class="card-title">🕒 Download Schedule</h5>
<p class="card-text">
Control how many papers are downloaded per hour. Configure hourly
volume (e.g. 2/hour at daytime, 0 at night) to match your bandwidth or
usage pattern.
</p>
<a href="{{ url_for('config.schedule') }}" class="btn btn-sm btn-outline-warning">Adjust Schedule</a>
</div>
</div>
</div>
</div>
<script>
function testMultipleMessages() {
showFlashMessage('First message - Success!', 'success');
setTimeout(() => showFlashMessage('Second message - Warning!', 'warning'), 500);
setTimeout(() => showFlashMessage('Third message - Info!', 'info'), 1000);
setTimeout(() => showFlashMessage('Fourth message - Error!', 'error'), 1500);
}
</script>
{% endblock content %}