Skip to content

Sillkiin/max2tg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MAX → Telegram 🚀

max2tg — мост между мессенджером MAX и Telegram

CI Docker image MIT Platforms

Читайте и отвечайте на сообщения мессенджера MAX (max.ru) прямо в Telegram.
Двусторонний · медиа · отдельная тема на каждый чат · бесплатно · self-hosted  ·  🇬🇧 In English


max2tg — личный мост: зеркалит ваш аккаунт MAX в Telegram. Входящие сообщения, фото, видео, файлы и стикеры прилетают в Telegram, а ответить можно прямо оттуда — ответ уходит в нужный чат MAX.

Для пользователей iPhone / iPad

MAX удалён из App Store — на iOS его официально не установить, и нормально пользоваться MAX на Apple сейчас по сути невозможно. max2tg это решает: все ваши диалоги MAX приходят в Telegram, который у вас уже есть, — с обычными push-уведомлениями 🔔, поиском и нормальным клиентом. Отвечать тоже можно прямо из Telegram. По факту это единственный рабочий способ читать и писать в MAX с iPhone.

Пуш-уведомление MAX в Telegram на экране iPhone   Каждый чат MAX — отдельная тема в Telegram   Ответ из Telegram уходит обратно в MAX

1. пуши из MAX на локскрине iPhone · 2. каждый чат — отдельная тема · 3. ответ из Telegram уходит обратно в MAX  (макеты)

Видно, что сообщения именно из MAX: мост помечает каждое — MAX | Имя (чат …), голосовые как 🎤 Голосовое (N с) — открыть в MAX, а доставку ответа подтверждает ✅ Отправлено в MAX. Это реальный формат вывода моста.

Содержание


Возможности

Работает на iOS MAX удалён из App Store — а здесь все диалоги приходят в Telegram, который на iPhone есть всегда
🔔 Уведомления Пуши о новых сообщениях MAX приходят как обычные уведомления Telegram — на iOS это единственный способ их получать
↔️ Двусторонний Не просто пересылка — отвечаете из Telegram, и сообщение уходит в чат MAX
🗂 Темы Каждый MAX-чат = отдельная тема Telegram-форума с именем собеседника
🎮 Команды Вступать в каналы и искать людей прямо из Telegram — /join, /find
🖼 Медиа Фото, видео, файлы, стикеры — в обе стороны
🔒 Приватно Токены и переписка остаются у вас; ничего не уходит на чужие серверы
🆓 Бесплатно Без подписок, открытый код (MIT)
🖥 Где угодно Windows, старый Android (Termux) или сервер 24/7

Что именно передаётся:

Направление Содержимое
MAX → Telegram текст, фото, видео, файлы, стикеры, пометки о голосовых
Telegram → MAX текст (ответом), фото, видео, файлы

Быстрый старт

Windows, ~5 минут. Запустите run.bat — мастер настройки попросит три вещи:

1. Токен Telegram-бота Создайте бота у @BotFather командой /newbot и скопируйте выданный токен.

2. /start вашему боту Напишите боту /start, чтобы мост узнал, куда слать сообщения.

3. Токен MAX Войдите на web.max.ru, нажмите F12 → вкладка Console, выполните команду и вставьте результат в мастер:

copy(JSON.parse(localStorage.__oneme_auth).token)

⚠️ Не нажимайте «Выйти» (Logout) в web.max.ru — это аннулирует токен. Просто закройте вкладку. Токен хранится локально в config.json.

Готово ✅ Это базовый режим: все сообщения MAX приходят в одну личку с ботом. Дальше советуем включить режим тем — так гораздо удобнее.


⭐ Режим тем

Чтобы каждый MAX-чат стал отдельной темой Telegram-форума, а не сваливался в одну ленту:

  1. Создайте Telegram-супергруппу и включите в настройках «Темы» (Topics).
  2. Добавьте бота в группу, дайте права администратора с разрешением «Управление темами» (Manage Topics) — без этого мост не создаст темы.
  3. Узнайте id группы (начинается с -100…, например через @getidsbot) и пропишите в config.json:
{
  "telegram_topics_enabled": true,
  "telegram_forum_chat_id": -1001234567890,
  "telegram_preload_topics": true,
  "telegram_seed_last_messages": true,
  "telegram_confirm_sent": false
}

Каждый MAX-чат получит свою тему с именем собеседника. Пишете в теме — уходит в этот чат MAX; Reply (свайп) отправляет ответ цитатой.


🎮 Команды

Ботом можно управлять MAX прямо из Telegram — команды видны в меню по «/»:

Команда Что делает
/dm <телефон или id> <текст> Написать человеку. Найду по номеру и напишу; его ответ придёт отдельной темой.
/join <ссылка или @username> Вступить в канал / группу / чат. Появится отдельной темой.
/help · /start Справка и приветствие.

Просто: люди — /dm по телефону, каналы — /join по ссылке.

Примеры:

/dm +79991234567 привет            # написать человеку по телефону
/dm 21243808 привет                # написать по id
/join https://max.ru/join/AbCdEf   # вступить в канал/чат по ссылке (или просто пришлите ссылку)

ℹ️ Ответить в существующий чатReply (свайп) на пересланном сообщении: уйдёт точно туда.

Поиск каналов по названию MAX не поддерживает — только по ссылке/@нику (/join).


Запуск на сервере 24/7

Мост держит постоянное соединение, поэтому ему нужен хост, который не «засыпает» (обычные бесплатные «спящие» PaaS не подойдут).

Где Как
🖥 Windows run.bat + автозапуск через shell:startup
📟 Старый Android Termux — мини-сервер с российским IP
☁️ Сервер (Docker) готовый образ из GHCR, без исходников ↓

Готовый Docker-образ — нужны только два файла:

mkdir max2tg && cd max2tg
curl -O https://raw.githubusercontent.com/Sillkiin/max2tg/main/docker-compose.yml
curl -o .env https://raw.githubusercontent.com/Sillkiin/max2tg/main/.env.example
nano .env                 # три значения MAX2TG_* (свежий токен MAX!)
docker compose up -d      # подтянет ghcr.io/sillkiin/max2tg:latest

Обновление позже: docker compose pull && docker compose up -d. Полный гайд (Oracle Cloud, прокси, systemd) — в DEPLOY.md.


Вопросы и ответы

Канал шлёт слишком много уведомлений — как заглушить?


Заглушите тему штатными средствами Telegram: долгий тап по теме в списке → «Выключить уведомления» (или внутри темы → тап по названию → отключить уведомления). В форуме глушится каждая тема отдельно — каналам выключите, людям оставите. Это полностью убирает уведомление (и звук, и баннер). Бот сам сделать это не может: «без звука» он отправить умеет, но совсем убрать пуш — настройка на стороне Telegram, которую ставите вы.

Темы пересоздаются после каждого перезапуска


Значит не сохраняется state.json (карта «MAX-чат → тема»). В Docker он лежит на постоянном томе (docker-compose.yml); путь можно задать через MAX2TG_STATE_PATH. Без Docker файл хранится рядом со скриптами.

Как убрать «✅ Отправлено в MAX» после каждого ответа


Добавьте в config.json: "telegram_confirm_sent": false (или переменную окружения MAX2TG_TELEGRAM_CONFIRM_SENT=false). Ошибки отправки при этом всё равно показываются.

Мост пишет, что токен MAX устарел


Получите свежий токен на web.max.ru (та же команда в консоли) и обновите его в config.json или в .env, затем перезапустите мост.


Ограничения

  • ⚙️ Неофициальный API MAX (через vkmax — официального API для личных аккаунтов нет). Для MAX это выглядит как вход через веб-версию; теоретически он может ограничить сессию.
  • 🎤 Голосовые из MAX приходят подписью «🎤 Голосовое (N с)» — само аудио недоступно даже веб-клиенту MAX.
  • 📦 Файлы и видео до ~50 МБ (лимит Telegram-ботов); крупнее — уведомление «открыть в MAX».
  • 🔑 Токены лежат локально в config.json.gitignore, не коммитятся).

Для разработчиков

Структура проекта и сборка
Файл Назначение
main.py / setup_wizard.py точка входа и мастер настройки
bridge.py ядро: слушает MAX, маршрутизирует, принимает ответы
max_client.py WebSocket-клиент MAX (браузерные заголовки, вход по токену)
attaches.py / mediamax.py разбор и загрузка медиа MAX
tg.py мини-клиент Telegram Bot API
state.py / config.py карта тем и конфигурация
Dockerfile / docker-compose*.yml / DEPLOY.md деплой
python -m unittest discover -s tests     # тесты

CI (GitHub Actions) на каждый push в main гоняет тесты и публикует Docker-образ ghcr.io/sillkiin/max2tg:latest. Для локальной сборки из исходников: docker compose -f docker-compose.build.yml up -d --build.


🇬🇧 In English

Click to expand


max2tg mirrors your personal MAX (max.ru) messenger account into Telegram and lets you reply from there.

MAX is gone from the App Store — you can't install it on iPhone/iPad anymore. max2tg brings every MAX chat into Telegram (which you already have) with normal push notifications — effectively the only way to use MAX on iOS.

  • Two-way. Incoming MAX messages — text, photos, videos, files, stickers — are forwarded to Telegram; reply right from Telegram and it lands in the MAX chat.
  • Topics. Each MAX chat becomes its own Telegram forum topic, named after the contact.
  • Commands (shown in the "/" menu): /join <link | @username> — join a MAX channel/group/chat · /find <phone | @username | link | id> — look up a person or channel and get their id · /help — command reference.
  • Private & free. Tokens and messages stay on your machine. Open-source (MIT).
  • Runs anywhere. Windows, old Android (Termux), or a 24/7 server. Pull the ready image: docker pull ghcr.io/sillkiin/max2tg:latest.

Quick start: run run.bat, create a bot via @BotFather, and paste your MAX token from web.max.ru (DevTools console: copy(JSON.parse(localStorage.__oneme_auth).token)).

⚠️ Uses MAX's unofficial web API. Voice messages from MAX are only labeled — MAX's own web client can't play them either. Use at your own risk.


Дисклеймер

Личный инструмент для удобства, не связан с MAX/VK и Telegram. Использует неофициальный API — применяйте на свой риск и соблюдайте условия сервисов. Лицензия: MIT.

About

Читайте и отвечайте на сообщения мессенджера MAX (max.ru) прямо в Telegram — личный двусторонний мост с медиа и темами по чатам. Удобно на iOS, бесплатно.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages