{% extends "base.html" %} {% block body %}

Система и Воркеры

Управление фоновыми процессами, категориями, расписанием и настройками AI.
Site Parser
{{ site_parser_url or "URL не настроен" }}
{{ site_parser_health.message }}
Настройки
{% for w in workers %} {% endfor %}
Воркер Состояние Heartbeat Статус Текущая задача Действия
{{ "Парсер источников (VK + сайты)" if w.name == "vk-parser" else w.name }} {% if w.effective_enabled %} Включен {% elif w.enabled and w.setting_enabled == false %} Выключен настройкой {% else %} Выключен {% endif %} {{ w.heartbeat_at or "—" }}
{{ w.status or "—" }}
{% if w.meta_json and w.meta_json.error %}
{{ w.meta_json.error }}
{% endif %}
{{ w.current_job_id or "—" }}
Категории публикаций
Название помогает AI выбрать категорию, тэг используется в соцсетях.
Добавить категорию
{% for c in categories %} {% endfor %}
Название / Тэг ID Статус
{{ c.sort_order }}
{% if c.is_active %}Активна{% else %}Выкл{% endif %}
Расписание TG-постера
Время по Екб. Нужны: воркер tg-poster и настройка tg_poster_enabled.
{% for row in tg_schedule %} {% if row.enabled %}
{{ row.time[:2] }}:00 {{ row.count }} шт.
{% endif %} {% else %}
Расписание пусто
{% endfor %}
Расписание VK-постера
Время по Екб. Нужны: воркер vk-poster и vk_poster_enabled.
Получить VK user token
{% for row in vk_schedule %} {% if row.enabled %}
{{ row.time[:2] }}:00 {{ row.count }} шт.
{% endif %} {% else %}
Расписание пусто
{% endfor %}
Брендинг проекта
PNG до 1 МБ. Хранится отдельно для этого проекта в uploads/branding/favicon.png.

Глобальные настройки

{% for category, rows in settings|groupby("category") %}
{{ category_titles.get(category, category) }}
{% for s in rows %}
{{ s.key }}
{{ s.title }}
{{ s.description }}
{% if s.value_type == "bool" %} {% elif s.key in ["ai_qualifier_provider", "ai_writer_provider"] %} {% elif s.key == "site_poster_provider" %} {% elif s.key == "ai_qualifier_model" %} {% elif s.key == "ai_writer_model" %} {% elif s.value_type == "secret" %} {% elif s.value_type == "text" %}
{% if prompt_hints and s.key in prompt_hints %}
{{ prompt_hints[s.key].title }}
{{ prompt_hints[s.key].body }}
Как безопасно менять:
{{ prompt_hints[s.key].safe }}
На вход:
{{ prompt_hints[s.key].input }}
{% endif %}
{% elif s.value_type == "json" %} {% else %} {% endif %}
{% endfor %}
{% endfor %}
{% endblock %}