Исходные файлы
| Файл | Описание |
|---|---|
main.go | Точка входа, разбор флагов, регистрация ботов |
bot.go | Обёртка Telegram Bot API |
proxy.go | ProxyManager: опрос, пересылка, проверки состояния |
server.go | HTTP-сервер, эндпоинты REST API |
store.go | Слой хранения SQLite |
bridge.go | BridgeManager для мультипротокольных мостов |
slack.go | Нативный мост протокола Slack |
auth.go | Аутентификация и авторизация |
llm.go | Маршрутизация сообщений на основе LLM |
demo.go | Заполнение данных демо-режима |
templates/index.html | SPA (чистый JS, встроен на этапе компиляции) |
Зависимости
| Пакет | Назначение |
|---|---|
github.com/OvyFlash/telegram-bot-api | Клиент Telegram Bot API |
modernc.org/sqlite | Чистый Go-драйвер SQLite (без CGO) |
github.com/skrashevich/go-webp | Конвертация стикеров WebP→PNG |
golang.org/x/crypto/bcrypt | Хеширование паролей |
Ключевые решения проектирования
- Нет различий между CLI и веб-ботами — все боты функционально идентичны
- Единый бинарный файл — веб-интерфейс встроен через
go:embed - Без CGO — чистые Go-зависимости для простой кросс-компиляции
- SQLite с режимом WAL — простое и надёжное хранилище