komp-telegram-tools

Isolated MTProto tools for Skynet. Stage 4: verified callback button presses; custom emoji next.

Package Information

Released: this month
Downloads: 0 weekly / 0 monthly
Latest Version: 0.1.6
Author: KOMP Telegram Tools

Documentation

KOMP Telegram Tools — Stage 4 (0.1.6)

Изолированная community-нода для Telegram-аккаунта EOS Art в n8n. Никаких изменений GramPro, RichMessage Publisher и существующих workflow.

Текущее состояние

  • pressInlineButton — реализована в коде, и прошла автономные тесты; официальный n8n lint и build прошли в GitHub Actions; реальное нажатие ещё не проверено.
  • getCustomEmoji — пока безопасно возвращает ошибку NOT_IMPLEMENTED_STAGE_5.
  • Credentials kompTelegramSessionApi: API ID, API Hash, StringSession.
  • Защита: проверка Telegram ID EOS Art (6556687626), проверка отправителя/бота и точной callback_data в указанном сообщении; запрещено нажимать незнакомые кнопки.
  • Повторных попыток callback нет: при обрыве соединения Telegram мог уже обработать запрос.
  • Два формата callback data: обычная UTF-8 строка или base64: для бинарных данных.

Изоляция Teleproto

teleproto@1.230.1 используется как devDependency и собирается в автономный dist/runtime/teleproto-bundle.cjs через esbuild. Библиотека не устанавливается в общее окружение n8n во время работы ноды. В пакет включён только подготовленный JS-бандл и скомпилированные классы.

Важно: полнота упаковки проверена официальными n8n-node build, lint, автономными тестами и npm pack. Перед использованием в рабочих сценариях необходимо проверить реальное нажатие на безопасной тестовой кнопке. Публикация пакета в npm не означает установку в Amvera.

Проверка

В изолированной среде разработки, Node >= 22.22:

npm install
npm run lint
npm run build
npm run test:offline
npm run test:bundle
npm pack --dry-run

Перед созданием архива prepack автоматически проверяет, что dist/runtime/teleproto-bundle.cjs существует и загружается без установки общего teleproto. Упаковка только после build: автономная компиляция не включает библиотеку Teleproto. scripts/verify-isolated.ps1 выполняет эти этапы на Windows.

Параметры pressInlineButton

  • Бот — Telegram username, например @ildarHELPbot.
  • ID сообщения бота — положительный ID входящего сообщения с inline-кнопками.
  • Callback Data — точное значение callback_data, до 64 байт. Можно задавать бинарно как base64:....

Нода сначала убеждается, что сессия принадлежит EOS Art, сообщение действительно прислал указанный Telegram-бот и единственная его callback-кнопка имеет точно указанное значение. Только затем выполняется messages.GetBotCallbackAnswer. Возврат success=true сообщает об ответе Telegram; это не гарантирует, что сторонний бот полностью завершил бизнес-операцию — при необходимости её результат проверяется отдельно.

При тестировании используйте отдельное безопасное тестовое сообщение. Не вводите StringSession, API Hash и коды Telegram в чат, GitHub или поля workflow — только в защищённые credentials.

Публичный npm-пакет

Публичный npm-пакет содержит скомпилированный код ноды и Teleproto, а не Telegram-сессии или реальные credentials. Репозиторий GitHub остаётся приватным, поэтому ссылка на исходники доступна только участникам репозитория. В версии 0.1.6 реализовано только нажатие inline-кнопок; получение эмодзи ещё не реализовано. Код ограничен аккаунтом EOS Art и не является универсальным Telegram-клиентом.

Ранее версия 0.1.5 была загружена в npm как staged-выпуск и осталась без одобрения 2FA. Прямой выпуск использует 0.1.6, чтобы не конфликтовать с занятым номером. Версию 0.1.5 нельзя подтверждать после публикации 0.1.6.

Discussion