# 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-источники снова можно добавлять из веб-модерации. - В таблице виден привязанный канал — легче отлаживать нерабочие источники. - Никаких изменений БД и БД-миграций — только шаблон.