mirror of
https://gitverse.ru/kpa39l/vesti.git
synced 2026-09-29 09:55:03 +00:00
openspec: архив 14 завершённых change-ов (веб-фиксы, crawler-queue, own-content-hub, publisher-service); спеки влиты в openspec/specs
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
# Tasks: sources-admin
|
||||
|
||||
## 1. sources.py — CRUD для БД + валидация
|
||||
|
||||
- [x] 1.1 `delete_source_db(slug)`: UPDATE posts/runs SET source_id=NULL, DELETE rss_state, DELETE sources.
|
||||
Проверка: юнит-тест — после delete_source_db строки sources нет, rss_state нет, posts.source_id=NULL.
|
||||
- [x] 1.2 `set_source_enabled(slug, enabled)`: обновить yaml (upsert с enabled) + sync_yaml_to_db_and_back.
|
||||
Проверка: юнит — после toggle enabled в БД = 0/1, в yaml = false/true.
|
||||
- [x] 1.3 `add_or_update_source(data)`: валидация (slug regex, crawler ∈ {telegram,rss}, priority ∈ P0..P3, rss→feed_url обязателен) → upsert yaml → sync.
|
||||
Проверка: юнит — add 'opennet' (rss) → есть в yaml и БД; невалидный 400.
|
||||
|
||||
## 2. Веб-слой
|
||||
|
||||
- [x] 2.1 GET /sources — страница (таблица + форма). Шаблон sources.html.
|
||||
Проверка: GET с auth → 200, в таблице все источники (10).
|
||||
- [x] 2.2 POST /sources/add, /sources/update/<slug> — добавление/правка. Валидация, flash, редирект.
|
||||
Проверка: POST add opennet → в БД/yaml появился; POST update — name изменился.
|
||||
- [x] 2.3 POST /sources/{slug}/toggle — пауза (enabled 0) / снятие (enabled 1).
|
||||
Проверка: toggle lwn → enabled=0 в БД и yaml; в /crawlers lwn помечен disabled.
|
||||
- [x] 2.4 POST /sources/{slug}/delete — удаление с confirm. Каскад: posts/runs source_id=NULL, rss_state удалён.
|
||||
Проверка: delete тестового источника → из yaml и БД исчез, посты не потеряны (source_id NULL).
|
||||
- [x] 2.5 Навбар: ссылка «Источники» (была добавлена — проверена в base.html).
|
||||
|
||||
## 3. Интеграция, доки
|
||||
|
||||
- [x] 3.1 AGENT.MD / STATUS.md / TODO.md — /sources (добавлено/закрыто).
|
||||
- [x] 3.2 Ссылка /sources в nav (проверка вёрстки).
|
||||
- [x] 3.3 `openspec validate sources-admin` → valid.
|
||||
- [x] 3.4 Рестарт vesti-web, ручная проверка GET /sources 200.
|
||||
|
||||
## Примечания
|
||||
- sources.yaml — источник истины; каждое изменение пишется в yaml И БД.
|
||||
- Удалённые посты НЕ удаляются (история), только source_id=NULL.
|
||||
- Пауза не трогает уже собранные посты — только прекращает сбор (enabled=0).
|
||||
- HTTP-тест: add→toggle(pause)→toggle(resume)→delete прошёл end-to-end (тест. источник test_tmp_src удалён, чисто).
|
||||
Reference in New Issue
Block a user