{% extends "base.html" %} {% block title %}News Harvester — 栏目列表{% endblock %} {% block extra_head %} {% if auto_refresh %} {% endif %} {% endblock %} {% block content %} {% if digest_status and digest_status.running %}
每日汇总运行中… (启动于 {{ digest_status.start }}) 页面每 10 秒自动刷新
{% endif %}
+ 添加栏目

栏目列表 ({{ sources|length }} 个)

{% for s in sources %} {% endfor %}
栏目 状态 运行时间 Provider 上次触发 下次触发 最近运行 成本 Session 操作
{{ s.source }} {% if s.active == 'active' %} active {% elif s.active == 'inactive' %} inactive {% else %} {{ s.active }} {% endif %} {{ s.run_time }} {% if s.provider %} {{ s.provider }} {% else %} 默认 {% endif %} {% if s.fallback_provider %} → {{ s.fallback_provider }} {% endif %} {{ s.last }} {{ s.next }} {% if s.log %} {{ s.log.mtime }} · {% if '成功' in s.log.get('status', '') %} 成功 {% elif '失败' in s.log.get('status', '') %} 失败 {% else %} {{ s.log.get('status', '?') }} {% endif %} {% else %} — {% endif %} {% if s.log and s.log.get('cost') %} {% set cost_num = s.log.cost | replace('$', '') | replace('成本:', '') | trim %} {% set cost_str = cost_num | float %} ${{ "%.2f"|format(cost_str) }} {% else %} — {% endif %} {% if s.log and s.log.get('session') %} {{ s.log.session }} {% else %} — {% endif %} 详情 编辑

每日汇总

Timer 状态 运行时间 上次触发 下次触发 操作
news-harvester-digest.timer {% if digest_props.active == 'active' %} active {% else %} {{ digest_props.active }} {% endif %} {{ digest_run_time }} {{ digest_props.last }} {{ digest_props.next }}
{% endblock %}