mirror of
https://gitverse.ru/kpa39l/vesti.git
synced 2026-09-29 09:55:03 +00:00
feat(sources): форма добавления источника — одно поле Address, авто-название из TG/RSS (address-field-enhancement)
- 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.
This commit is contained in:
@@ -1,8 +1,12 @@
|
||||
# VESTI — Статус
|
||||
|
||||
Обновлено: 2026-09-16 (fix-sources-add-channel: поле channel в форме добавления TG-источника)
|
||||
Обновлено: 2026-09-16 (address-field-enhancement: одно поле Address, авто-название из TG/RSS)
|
||||
<!--
|
||||
История обновлений:
|
||||
2026-09-16 — address-field-enhancement: форма добавления источника — одно поле Address
|
||||
(вместо url/channel/feed_url), парсинг по типу crawler; кнопка «Найти» получает
|
||||
название канала из TG API (Telethon get_entity; RSS — feedparser title) и slug из адреса;
|
||||
direction — datalist из реальных значений (DIRECTIONS + БД) + свободный ввод.
|
||||
2026-09-16 — fix-sources-add-channel: в форме добавления источника появилось поле channel
|
||||
(required для telegram через JS), в таблице у TG-источников виден канал.
|
||||
Причина бага: поле channel отсутствовало в UI, хотя валидатор требует его.
|
||||
@@ -22,6 +26,7 @@
|
||||
-->
|
||||
|
||||
## Текущее состояние
|
||||
- **address-field-enhancement** (2026-09-16): форма добавления источника — одно поле Address. Для telegram: `https://t.me/mknewsru` → slug=`mknewsru`, название «Мой Компьютер» (Telethon get_entity); для rss: `https://lwn.net/headlines/rss` → slug=`lwn`, название «LWN.net» (feedparser). Кнопка «🔎 Найти» в форме. direction — datalist из реальных значений (DIRECTIONS + БД), свободный ввод остаётся. БД не менялась (address — только UI-концепция, в yaml по-прежнему url/channel/feed_url).
|
||||
- **fix-sources-add-channel** (2026-09-16): добавление telegram-источника через веб снова работает. Поле `channel` добавлено в форму (required для telegram через JS) и показывается в таблице. Причина: UI-форма не имела поля channel. `web/templates/sources.html` ранее отсутствовал в git — добавлен.
|
||||
- **FEDIVERSE-ПУБЛИКАЦИЯ РАБОТАЕТ** (2026-09-13): publisher-service умеет публиковать карточки в GoToSocial (social.dedinit.ru) от имени бот-аккаунта **@vesti@dedinit.ru** (Mastodon-совместимый API). Change `gotosocial-publisher`.
|
||||
- Аккаунт **vesti** создан на GtS (2026-09-13, confirmed+approved, admin=0), OAuth-приложение `vesti-publisher` (client_id=01B09QNDM9YQ2VQVSRXHCVAV6K), токен в .env (`GT_SOCIAL_ACCESS_TOKEN`, scope `read write`), канал `VESTI_GTS_CHANNELS=@vesti@dedinit.ru`.
|
||||
|
||||
Reference in New Issue
Block a user