fediverse: публикация в GoToSocial (@vesti@dedinit.ru) из publisher-service

- gotosocial.py: клиент GtS (httpx): post_status (markdown), upload_media v2, verify_credentials, delete_status
- config.py: gt_social_url/token/visibility/format/channels
- channels.py: fediverse-каналы (VESTI_GTS_CHANNELS, префикс gt:), gt: уходит только в fediverse
- main.py: _publish_gotosocial + healthz-блок gotosocial + dry_run; status_id (ULID) в ответе
- .env.example: GT_SOCIAL_* и VESTI_GTS_CHANNELS
- STATUS.md/WALKTHROUGH.md: fediverse-раздел, хронология
- openspec: change gotosocial-publisher (proposal/design/tasks/specs), validate чисто
This commit is contained in:
kpa39l
2026-09-13 20:19:52 +00:00
parent 71fd48aa06
commit bf176cc02b
12 changed files with 677 additions and 16 deletions
+11
View File
@@ -10,6 +10,17 @@ TG_SESSION_DIR=/opt/vesti/telegram
VESTI_BOT_TOKEN=your_bot_token_here
# Канал публикации (шаблон dedinit_vesti_<direction>_<lang>_bot)
VESTI_BOT_CHANNEL=@dedinit_vesti_linux_ru_bot
# GoToSocial (fediverse, Mastodon-совместимый API) — публикация от имени kpa39l
# Нода: https://social.dedinit.ru (bigbox, Docker-контейнер gotosocial, :8082)
GT_SOCIAL_URL=https://social.dedinit.ru
# Bearer-токен пользователя kpa39l (OAuth, scope write; см. change gotosocial-publisher)
GT_SOCIAL_ACCESS_TOKEN=your_gotosocial_token_here
# Видимость статуса: public | unlisted | private
GT_SOCIAL_VISIBILITY=public
# Формат статуса: markdown (GtS поддерживает) | plain
GT_SOCIAL_FORMAT=markdown
# Fediverse-каналы (отдельно от Telegram-каналов; через запятую)
VESTI_GTS_CHANNELS=@kpa39l@dedinit.ru
# Веб-админ
ADMIN_USER=admin
ADMIN_PASSWORD=change_me