mirror of
https://github.com/BEARlogin/max-telegram-bridge-bot.git
synced 2026-09-07 08:35:05 +00:00
| backend | ||
| frontend | ||
| .gitignore | ||
| README.md | ||
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 (блокеры до боевого запуска)
OPEN_APPпод постами канала — работает ли мини-апп-кнопка под постом канала (а не только в ЛС бота)? Если нет — фолбэк наLINK(обычный браузер/вебвью).- Авторизация мини-аппа — есть ли у MAX подпись
initData(как Telegram WebApp), чтобы достоверно знатьuser_idкомментатора. Сейчасauth.go— заглушка («Гость»).
TODO (после MVP)
- SQLite/Postgres вместо in-memory (
store.go). - Верификация подписи мини-аппа (
auth.go). - Бот: вешать кнопку «Комментарии» под кросспост-пост (на стороне bridge-аддона).
- Кросс-синк с TG дискусс-группой (читать/писать комменты в обе стороны).
- Счётчик комментов на кнопке.
- Модерация (удаление/бан) для владельца канала.