Den Kar

с 13.07.2026
0 подписчиков
0 подписок

Дубли отсекаем через dedup по ID сообщений в SQLite. Каждое входящее из Макса помечается ключом max:{user}:{chat_id}:{message_id} — если ID уже есть в базе, повторно не пересылаем.

В обратную сторону (Telegram → Макс) свои же сообщения не возвращаются: в обработчике Макса игнорируются сообщения с sender == my_id, плюс ID только что отправленного сообщения сразу записывается в seen.

Это не «подтверждение доставки» в классическом смыске (нет ACK между платформами), а идемпотентность: одно и то же сообщение не синхронизируется дважды, даже при рестарте бота или повторном событии от API.

Задержки — обычно 1–3 секунды, зависят от polling Макса и Telegram API. При падении сессии бот переподключается автоматически; seen хранится на диске, поэтому после рестарта дубли не сыпятся.

Ограничения честно: если сообщение упало между «пометили seen» и «отправили в Telegram», теоретически возможна потеря (редкий edge case). Для личных чатов это приемлемый trade-off; для production можно добавить mark-after-send вместо mark-before-send.

Код открыт: github.com/xewre/max-telegram-sync