mirror of
https://gitverse.ru/kpa39l/vesti.git
synced 2026-09-29 18:05:03 +00:00
48c25f13d4
- parse_address(address, crawler) в sources/sources.py: telegram (t.me/name, @name, https://t.me/s/name) → slug/channel/url; rss → feed_url/url/slug из домена. - GET /sources/preview: telegram — название через Telethon get_entity (title), rss — через feedparser (feed.title); slug и name возвращаются в JSON. - _form_source: единое поле address вместо url/channel/feed_url; slug из адреса. - /sources: direction datalist из DIRECTIONS + уникальные значения из БД, свободный ввод остаётся. - Форма: поле Address + кнопка «Найти» (JS fetch → заполнение slug/name), direction datalist динамический. Также в sources.py входит незакоммиченная ранее веб-CRUD-логика (upsert_source_yaml, delete_source_yaml, sync_yaml_to_db_and_back и др.) — работала на проде, теперь в git.
1.2 KiB
1.2 KiB
address-field-enhancement
Problem
Форма добавления источника требует url/channel/feed_url/название вручную. Хочется: одно поле Address, название — из TG API (RSS — из фида), slug — из адреса. Direction — datalist из реальных значений БД + свободный ввод.
Tasks
- sources/sources.py:
parse_address(address, crawler)— telegram/rss парсинг адреса - web/app.py: route GET /sources/preview (Telethon get_entity / feedparser title)
- web/app.py: _form_source — address вместо url/channel/feed_url; slug из address
- web/app.py: /sources — DIRECTIONS + уникальные из БД → directions в контекст
- web/templates/sources.html: одно поле address, кнопка «Найти» → slug/name; datalist direction из данных
- openspec validate clean
- рестарт vesti-web; curl preview (telegram: mknewsru→«Мой Компьютер», linuxklub→«Linux Club»; rss: lwn→«LWN.net»)
- STATUS.md актуализирован; commit + push gitverse