{% extends "base.html" %} {% block title %}cycle · aether 控制台{% endblock %} {% block content %}

Cycle

端到端一条龙:挑源 → 抓 listing → 抓原文 (Block 1D) → 改写到 draft。 点「Run」后**留在本页**,右侧 agents rail 会自动显示这次运行。

{# ----- Active cycles now ----- #} {% if active_cycles %}

当前正在跑

{% for r in active_cycles %} {% endfor %}
task_run开始状态
{{ r.id[:8] }}… {{ r.started_at.strftime('%m-%d %H:%M:%S') if r.started_at else '—' }} {{ r.status }} view →
{% endif %} {# ----- The form ----- #}

配置一次 cycle

不选 = 所有 enabled 源(跟 ``aether cycle`` 默认一致)。

{% for s in sources %} {% endfor %}

参数

改写到平台

{% for p in platforms %} {% endfor %}

跑完会自动跳到本页,看右侧 rail 详情。

{# ----- Recent runs (history) ----- #} {% if recent_cycles %}

最近 cycle runs

{% for r in recent_cycles %} {% endfor %}
时间task状态durationerror
{{ r.started_at.strftime('%m-%d %H:%M:%S') if r.started_at else '—' }} {{ r.id[:8] }}… {{ r.status }} {% if r.started_at and r.finished_at %} {{ ((r.finished_at - r.started_at).total_seconds() | round(1)) }}s {% elif r.status in ('running', 'pending') %} ⟳ running {% else %}—{% endif %} {{ (r.error or '')[:60] }}{% if r.error and r.error|length > 60 %}…{% endif %} view →
{% endif %} {% endblock %}