2cfd1a8a9f
- Add POST /admin/crawl with TaskLock-based reentrancy guard - Add POST /admin/cleanup (tmp files older than 24h) with CrawlLog - Add POST /admin/delete with date range and 'DELETE' confirm token - Add GET /admin/logs (paginated CrawlLog + DataDeleteJob viewer) - Add app/services/cleaner.py (cleanup_tmp, delete_papers_by_date_range) - Add app/services/scheduler.py (APScheduler daily crawl/cleanup jobs) - Wire scheduler startup/shutdown hooks in app/main.py - Add admin nav link in base.html and APP_HOST security warning - Add apscheduler>=3.10 dependency - Add tests/test_admin_phase4.py covering the new endpoints
38 lines
1.2 KiB
HTML
38 lines
1.2 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>{% block title %}HF Daily Papers{% endblock %}</title>
|
|
<link rel="stylesheet" href="/static/css/style.css">
|
|
</head>
|
|
<body>
|
|
<header class="site-header">
|
|
<nav class="nav-bar">
|
|
<a href="/" class="nav-brand">📚 HF Daily Papers</a>
|
|
<form class="nav-search" action="/search" method="get">
|
|
<input type="text" name="q" placeholder="搜索..." class="nav-search-input">
|
|
</form>
|
|
<div class="nav-links">
|
|
<a href="/day/{{ today if today else '' }}">今日</a>
|
|
<a href="/search">搜索</a>
|
|
<a href="/reading-list">阅读列表</a>
|
|
<a href="/admin/logs">管理</a>
|
|
</div>
|
|
</nav>
|
|
</header>
|
|
|
|
<main class="container">
|
|
{% block content %}{% endblock %}
|
|
</main>
|
|
|
|
<footer class="site-footer">
|
|
<p>HF Daily Papers — 中文论文导览站 · 数据来源于 <a href="https://huggingface.co/papers" target="_blank">HuggingFace</a></p>
|
|
</footer>
|
|
|
|
<script src="https://unpkg.com/htmx.org@2.0.4"></script>
|
|
<script src="/static/js/app.js"></script>
|
|
{% block scripts %}{% endblock %}
|
|
</body>
|
|
</html>
|