Files

2.0 KiB

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