max-telegram-bridge-bot/examples
Andrey Lugovskoy 1235aa05de
Some checks failed
Build / build (push) Has been cancelled
Addon extension framework + crosspost UX/reliability improvements
- Pluggable optional addons via `addon` build tag: Addon interface,
  stub for the public build, generic b.extraCommands injection so the core
  stays agnostic of any extension. README section + working examples/echoaddon.
- publishTgCrosspost: единая точка кросспоста TG→MAX (формат entity→markdown +
  замены), переиспользуется вместо дублирования.
- TG_API_URL local mode: getFile отдаёт абсолютный путь — срезаем префикс до
  токена, чтобы файлы отдавались через статику (nginx).
- Автозамены: понятная инструкция вместо "from | to", человеко-читаемые ошибки.
- Очередь доставки: причина + номер поста при недоставке в MAX, быстрый дроп
  перманентных ошибок (send-message.empty, нет прав) вместо 30 ретраев.
- ForwardOrigin msg_id проброшен в Addon (старт операций с конкретного поста).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 22:34:17 +04:00
..
echoaddon Addon extension framework + crosspost UX/reliability improvements 2026-06-18 22:34:17 +04:00
addon_local.go.example Addon extension framework + crosspost UX/reliability improvements 2026-06-18 22:34:17 +04:00
README.md Addon extension framework + crosspost UX/reliability improvements 2026-06-18 22:34:17 +04:00

Пример расширения (аддона)

Минимальный аддон, отвечающий на команду /echo в личке боту. Показывает, как устроено расширение бриджа (см. раздел «Расширения (аддоны)» в корневом README).

Файлы

  • echoaddon/echoaddon.go — сам аддон. Standalone-пакет: реализует методы интерфейса Addon, в TG/MAX напрямую не лезет — все операции бриджа приходят через колбэки в Deps.
  • addon_local.go.example — образец склейки с бриджом (функция loadAddon). Собирается только с -tags addon.

Запуск

# Из корня проекта
cp examples/addon_local.go.example addon_local.go   # addon_local.go в .gitignore
go build -tags addon -o bridge .
./bridge

После запуска напишите боту в личку /echo привет — он ответит привет.

Что дальше

Замените echoaddon на свой пакет, реализующий интерфейс Addon (Start, HandleDMCommand, HandleCallback, HandleDMForward), и пробросьте в него нужные операции бриджа через свой Deps. Команды меню добавляются через b.extraCommands — ядро покажет их, не зная семантики.