Find a file
2026-07-29 12:26:49 +04:00
backend Clarify active PRO status in bot checkout 2026-07-29 12:26:49 +04:00
frontend Restore mini app PRO trial CTA 2026-07-29 11:56:51 +04:00
.gitignore Initial commit: MAX comments mini-app + cabinet + T-Bank billing 2026-07-01 18:24:53 +04:00
README.md Initial commit: MAX comments mini-app + cabinet + T-Bank billing 2026-07-01 18:24:53 +04:00

commenter

Комментарии для постов MAX-канала (нативных комментов у MAX нет). Открывается как мини-апп по кнопке «💬 Комментарии» под кросспост-постом (бот вешает кнопку OPEN_APP/LINK). Цель — фича PRO-тарифа бриджа MaxTelegramBridgeBot.

Фишка — кросскоменты: единый тред между Telegram (комменты в привязанной дискусс-группе канала) и MAX.

Структура

commenter/
  backend/    — Go (stdlib), HTTP API + раздача мини-аппа. MVP: in-memory store.
  frontend/   — Vue 3 + Vite, мини-апп (тред + форма коммента).

Запуск (dev)

# бэкенд (:8090)
cd backend && go run .

# фронт (:5173, проксирует /api на :8090)
cd frontend && npm install && npm run dev
# открыть http://localhost:5173/?post_id=test

Прод-сборка

cd frontend && npm run build         # → frontend/dist
cd ../backend && go build -o commenter .
STATIC_DIR=../frontend/dist ./commenter   # раздаёт мини-апп + API

API

  • GET /api/comments?post_id=<id>{ "comments": [...] }
  • POST /api/comments { "post_id", "text" } → созданный коммент (личность автора — из подписи мини-аппа, заголовок X-Init-Data)

post_id = ключ поста, напр. "<maxChatID>:<maxMid>".

Что подтвердить по MAX (блокеры до боевого запуска)

  1. OPEN_APP под постами канала — работает ли мини-апп-кнопка под постом канала (а не только в ЛС бота)? Если нет — фолбэк на LINK (обычный браузер/вебвью).
  2. Авторизация мини-аппа — есть ли у MAX подпись initData (как Telegram WebApp), чтобы достоверно знать user_id комментатора. Сейчас auth.go — заглушка («Гость»).

TODO (после MVP)

  • SQLite/Postgres вместо in-memory (store.go).
  • Верификация подписи мини-аппа (auth.go).
  • Бот: вешать кнопку «Комментарии» под кросспост-пост (на стороне bridge-аддона).
  • Кросс-синк с TG дискусс-группой (читать/писать комменты в обе стороны).
  • Счётчик комментов на кнопке.
  • Модерация (удаление/бан) для владельца канала.