Обновить

Как не открывать навязанный мессенджер и выжить: история одного моста Max2TG 🚀🚪

Привет,

Случалось ли у вас такое: сидите вы в своём уютном Telegram, пьёте кофе, пишете код… и тут приходят они — инициаторы «великого переезда».

С горящими глазами они объявляют:

Ребята, с понедельника мы все дружно переходим на корпоративный мессенджер МАКС!

И ладно бы это был просто мессенджер. Но к нему обычно прилагаются новый интерфейс, слежка, новые уведомления, которые ломают привычный дзен.

В общем, кто-то с ИИ-напарником сел, переглянулись и решили: если мы не можем отменить МАКС, мы можем сделать так, чтобы никогда его не открывать.

Max2TG — двусторонний мост между МАКСом и Telegram Topics, написанный полностью на чистом вайбе. Ну и на Python, конечно.

Сразу важное уточнение: автор этого поста и автор репозитория никак не связаны. Я просто нашёл проект, посмотрел на идею, восхитился уровнем инженерного упрямства и решил оформить это в виде небольшого рассказа.

Как это работает

Вместо того чтобы держать открытым приложение МАКС, вы создаёте одну Telegram-группу с включёнными топиками, то есть форумами, и приглашаете туда бота.

Дальше всё работает примерно так:

  • каждый чат или канал в МАКСе превращается в отдельный топик в Telegram;

  • кто-то пишет вам в МАКС — бот ловит сообщение и аккуратно пересылает его в нужный топик в Telegram;

  • вы отвечаете на сообщение в топике Telegram — бот отправляет ответ обратно в МАКС от вашего имени;

  • картинки, видео, файлы, редактирование и даже удаление сообщений синхронизируются в обе стороны.

С технической точки зрения самое интересное здесь то, что приложение, судя по всему, эмулирует работу официального клиента МАКСа.

Как так получилось, почему это работает и кто вообще оставил эту дверь приоткрытой — науке неизвестно. Мы, как говорится, просто наблюдаем интересный инженерный артефакт.

Выглядит это так: для коллег вы прилежный сотрудник, который мгновенно отвечает в МАКСе. Для себя — человек, который вообще не сворачивает Telegram.

Победа? Победа.

Что под капотом

Проект собран на классическом Python-стеке:

  • aiogram;

  • aiosqlite;

  • python-dotenv.

Но дьявол, как обычно, крылся в деталях. Точнее — в зависимостях.

Поскольку оригинальный API МАКСа завязан на корпоративный TLS со стеком GOST/LibreSSL, при первой сборке авторы столкнулись с суровой реальностью: библиотека шифрования стабильно выдавала SIGSEGV, то есть падение процесса, при долгих параллельных запросах.

Как это решили?

Вайбкодинг-стилем.

Приложение разнесли на три изолированных процесса:

  1. Основной процесс — Telegram, SQLite и логика синхронизации.

  2. max-polling — отдельный процесс-слухач для событий МАКСа.

  3. max-sdk-worker — отдельный процесс для отправки сообщений.

Если суровое шифрование падает от сетевого шока, падает только один маленький воркер, который тихо перезапускается Docker-ом. Основной бот в Telegram при этом даже бровью не ведёт.

Костыль? Нет, отказоустойчивая микросервисная архитектура! 😎

Важный дисклеймер

Этот пост — не рекомендация нарушать корпоративные политики, требования ИБ, правила использования сервисов или внутренние регламенты компании.

Если у вас в организации запрещены неофициальные клиенты, мосты, прокси, боты, автоматизация сообщений или эмуляция работы приложений — лучше не пытаться быть героем. В корпоративной среде «оно же просто пересылает сообщения» очень быстро превращается в разговор с безопасниками, юристами и руководителем.

Проект стоит воспринимать в первую очередь как любопытный инженерный эксперимент: пример того, как люди строят мосты между несовместимыми мирами, когда один мир очень хочет жить в Telegram, а другой внезапно переехал в государственный мессенджер.

Итог

Мост собран, протестирован, залит на GitHub и готов к бою.

Теперь вся коммуникация с МАКСом может происходить из любимого кресла в Telegram.

Если вас тоже пытаются насильно пересадить на новые корпоративные рельсы — не унывайте. Пишите мосты, кодите на вайбе и берегите свою менталку.

Код и инструкция по настройке здесь:

GitHub

Теги:
+10
Комментарии9

Публикации