{% extends "base.html" %} {% block title %}管理仪表盘 — HF Daily Papers{% endblock %} {% block content %}
{% set active = "dashboard" %}{% include "partials/admin_subnav.html" %}

📊 系统状态

{{ stats.total_papers }}
论文总数
{{ stats.today_papers }}
今日新增
{{ stats.pending_count + stats.none_count }}
待总结
{{ stats.failed_count }}
总结失败

🕐 调度器

状态 {% if stats.scheduler_enabled %} 运行中 {% else %} 未启用 {% endif %}
调度时间 {{ stats.schedule_time }}({{ stats.timezone }})
{% if stats.next_run %}
下次执行 {{ stats.next_run[:19] | replace('T', ' ') }}
{% endif %}
投票刷新 每日自动刷新最近 {{ stats.upvote_refresh_days | default(7) }} 天
{% if stats.active_locks %}
活跃任务 {% for lock in stats.active_locks %} {{ lock.task }} {% endfor %}
{% endif %}

执行历史

{% if scheduler_history %}
{% for log in scheduler_history %} {% endfor %}
时间状态发现新增错误
{{ log.started_at.strftime('%Y-%m-%d %H:%M') if log.started_at else '-' }} {% if log.status == 'success' %}✓{% elif log.status == 'running' %}⟳{% elif log.status == 'failed' %}✗{% else %}{{ log.status }}{% endif %} {{ log.papers_found or 0 }} {{ log.papers_new or 0 }} {{ (log.error[:50] + '...') if log.error and log.error|length > 50 else (log.error or '-') }}
{% else %}

暂无调度器执行记录。

{% endif %}

💾 存储概况

数据库{{ stats.db_size }}
论文文件{{ stats.papers_size }}
临时文件{{ stats.tmp_size }}

总结状态分布

{% set total = stats.total_papers or 1 %} {% set labels = {"done": "已完成", "pending": "待总结", "running": "运行中", "processing": "处理中", "failed": "失败", "permanent_failure": "永久失败", "none": "未开始"} %} {% for st, cnt in stats.status_counts.items() %} {% if cnt > 0 %}
{{ labels.get(st, st) }}
{{ cnt }}
{% endif %} {% endfor %}

📋 最近活动

{% if stats.recent_logs %}
{% for log in stats.recent_logs %} {% endfor %}
任务状态日期发现新增开始时间完成时间错误
{{ log.task }} {# djlint:off #} {% if log.status == 'success' %}✓ 成功{% elif log.status == 'running' %}⟳ 运行中{% elif log.status == 'failed' %}✗ 失败{% else %}{{ log.status }}{% endif %} {# djlint:on #} {{ log.date or '-' }} {{ log.papers_found or 0 }} {{ log.papers_new or 0 }} {{ log.started_at.strftime('%Y-%m-%d %H:%M') if log.started_at else '-' }} {{ log.completed_at.strftime('%Y-%m-%d %H:%M') if log.completed_at else '-' }} {{ (log.error[:60] + '...') if log.error and log.error|length > 60 else (log.error or '-') }}
{% else %}

暂无活动日志

通过快捷操作触发任务后,日志将出现在这里。

{% endif %}
{% endblock %} {% block scripts %} {% endblock %}