66 lines
2.3 KiB
Django/Jinja
66 lines
2.3 KiB
Django/Jinja
{% extends "base.html.jinja" %}
|
|
{% block content %}
|
|
|
|
<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('schedule.schedule') }}" class="btn btn-sm btn-outline-warning">Adjust Schedule</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock content %} |