mirror of
https://gitverse.ru/kpa39l/vesti.git
synced 2026-09-29 18:05:03 +00:00
8592a82381
Форма добавления не имела поля channel, валидатор требует его для crawler=telegram → 'telegram-источнику нужен channel'. Добавлено поле в add-форму (required для telegram через JS), показ channel в таблице у telegram-источников. Backend не менялся. web/templates/sources.html ранее отсутствовал в git — добавлен.
34 lines
2.0 KiB
Markdown
34 lines
2.0 KiB
Markdown
# fix-sources-add-channel
|
||
|
||
Добавление telegram-источника из веб-модерации падало с ошибкой
|
||
«telegram-источнику нужен channel», хотя пользователь заполнял slug и название.
|
||
|
||
## Why
|
||
|
||
В форме добавления источника (`web/templates/sources.html`) поле `channel`
|
||
отсутствовало. `_form_source()` в `web/app.py` читает `channel` из формы,
|
||
`_validate_source()` в `sources/sources.py:218` требует его для `crawler=telegram`
|
||
— поэтому любой telegram-источник, добавленный через веб, отклонялся,
|
||
а rss-источник — нет (feed_url в форме есть).
|
||
|
||
## What Changes
|
||
|
||
- **web/templates/sources.html (форма добавления)**: добавлено поле `channel`
|
||
с подсказкой «@handle или t.me/... для telegram»; для `crawler=telegram`
|
||
становится `required` (маленький inline-скрипт переключает).
|
||
- **web/templates/sources.html (таблица)**: у telegram-источников под crawler
|
||
показывается `channel` (аналогично feed_url у rss), чтобы было видно,
|
||
какой канал привязан.
|
||
|
||
## Why Not
|
||
|
||
- Не трогаем backend: `_form_source`, `_validate_source`, `add_or_update_source`
|
||
уже корректно работают с полем `channel` — не хватало только UI.
|
||
- Не делаем авто-подстановку channel из url — разные форматы
|
||
(@handle, t.me/name, https://t.me/s/name), подстановка ненадёжна.
|
||
|
||
## Impact
|
||
|
||
- Telegram-источники снова можно добавлять из веб-модерации.
|
||
- В таблице виден привязанный канал — легче отлаживать нерабочие источники.
|
||
- Никаких изменений БД и БД-миграций — только шаблон. |