new landing page
This commit is contained in:
parent
70e2e2e900
commit
ce6bc03b46
@ -7,78 +7,140 @@
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Include flash messages template -->
|
||||
{% include "partials/flash_messages.html.jinja" %}
|
||||
|
||||
<div class="container text-center">
|
||||
<div class="container text-center mb-5">
|
||||
<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>
|
||||
<p class="lead">Your comprehensive paper management and scraping platform</p>
|
||||
<p class="text-muted">Automate paper collection, manage metadata, and monitor download progress with intelligent
|
||||
scheduling</p>
|
||||
</div>
|
||||
|
||||
<div class="row g-4">
|
||||
<div class="col-md-6">
|
||||
<div class="card shadow-sm">
|
||||
<!-- Main Features Section -->
|
||||
<div class="row g-4 mb-5">
|
||||
<div class="col-12">
|
||||
<h2 class="text-center mb-4">🚀 Core Features</h2>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
<div class="card shadow-sm h-100">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">📄 CSV Import</h5>
|
||||
<h5 class="card-title">🎛️ Scraper Control Panel</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.
|
||||
Start, pause, and monitor the automated paper scraping process. View real-time statistics,
|
||||
activity charts, and process individual papers on demand.
|
||||
</p>
|
||||
<a href="{{ url_for('upload.upload') }}" class="btn btn-sm btn-outline-primary">Upload Now</a>
|
||||
<a href="{{ url_for('scraper.index') }}" class="btn btn-primary">Open Control Panel</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="col-lg-4 col-md-6">
|
||||
<div class="card shadow-sm h-100">
|
||||
<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.
|
||||
Browse, search, and manage your paper collection. View download status,
|
||||
inspect metadata, export data, and handle failed downloads.
|
||||
</p>
|
||||
<a href="{{ url_for('papers.list_papers') }}" class="btn btn-sm btn-outline-success">Browse Papers</a>
|
||||
<a href="{{ url_for('papers.list_papers') }}" class="btn btn-success">Browse Papers</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<div class="card shadow-sm">
|
||||
<div class="col-lg-4 col-md-6">
|
||||
<div class="card shadow-sm h-100">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">🕒 Download Schedule</h5>
|
||||
<h5 class="card-title">📄 CSV Data Import</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.
|
||||
Bulk import paper metadata from CSV files. Supports 37-column format with
|
||||
intelligent duplicate detection and comprehensive error reporting.
|
||||
</p>
|
||||
<a href="{{ url_for('config.schedule') }}" class="btn btn-sm btn-outline-warning">Adjust Schedule</a>
|
||||
<a href="{{ url_for('upload.upload') }}" class="btn btn-outline-primary">Import Data</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Configuration & Monitoring Section -->
|
||||
<div class="row g-4 mb-5">
|
||||
<div class="col-12">
|
||||
<h2 class="text-center mb-4">⚙️ Configuration & Monitoring</h2>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
<div class="card shadow-sm h-100">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">🕒 Download Scheduling</h5>
|
||||
<p class="card-text">
|
||||
Configure hourly download quotas and timing patterns. Set different rates for
|
||||
day/night hours to optimize bandwidth usage and avoid detection.
|
||||
</p>
|
||||
<a href="{{ url_for('config.schedule') }}" class="btn btn-warning">Manage Schedule</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
<div class="card shadow-sm h-100">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">🔧 System Configuration</h5>
|
||||
<p class="card-text">
|
||||
Adjust global settings including daily volume limits, download paths,
|
||||
and scraper module selection for optimal performance.
|
||||
</p>
|
||||
<a href="{{ url_for('config.general') }}" class="btn btn-outline-secondary">System Settings</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
<div class="card shadow-sm h-100">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">📊 Activity Logs</h5>
|
||||
<p class="card-text">
|
||||
Monitor system activity, track scraping progress, and troubleshoot issues
|
||||
with comprehensive logging and activity timeline views.
|
||||
</p>
|
||||
<a href="{{ url_for('logger.list_logs') }}" class="btn btn-info">View Logs</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Advanced Features Section -->
|
||||
<div class="row g-4 mb-5">
|
||||
<div class="col-12">
|
||||
<h2 class="text-center mb-4">🔬 Advanced Features</h2>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 col-md-6">
|
||||
<div class="card shadow-sm h-100">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">🗄️ Database Management</h5>
|
||||
<p class="card-text">
|
||||
Manage your paper database with tools for generating test data,
|
||||
cleaning up records, and database maintenance operations.
|
||||
</p>
|
||||
<a href="{{ url_for('config.database') }}" class="btn btn-outline-danger">Database Tools</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 col-md-6">
|
||||
<div class="card shadow-sm h-100">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">🧠 Intelligent Processing</h5>
|
||||
<p class="card-text">
|
||||
Background daemon with randomized timing, human-like behavior patterns,
|
||||
and automatic retry mechanisms for robust paper collection.
|
||||
</p>
|
||||
<div class="mt-3">
|
||||
<span class="badge bg-success me-2">Auto-Retry</span>
|
||||
<span class="badge bg-info me-2">Smart Timing</span>
|
||||
<span class="badge bg-warning">Rate Limiting</span>
|
||||
</div>
|
||||
</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 %}
|
Loading…
x
Reference in New Issue
Block a user