Zhabogram — транспорт (мост, шлюз) из сети Jabber (XMPP) в сеть Telegram, написанный на Ruby. Преемник tg4xmpp.
-
Зависимости
- Ruby >= 1.9
- xmpp4r == 0.5.6
- tdlib-ruby == 2.0 с скомпилированным tdlib == 1.3
-
Возможности
- Авторизация в существующем аккаунте Telegram
- Синхронизация списка чатов с ростером
- Синхронизация статусов контактов с ростером
- Добавление и удаление Telegram-контактов
- Поддержка VCard с аватарками
- Отправка, приём, редактирование и удаление сообщений
- Обработка цитат и пересланных сообщений
- Отправка и приём файлов и специальных сообщений (поддержка фото, видео, аудио, документов, голосовых сообщений, стикеров, анимаций, геолокаций, системных сообщений)
- Поддержка секретных чатов
- Создание, управление и модерирование чатов/супергрупп/каналов
- Сохранение сессий и автоматическое подключение при входе в сеть XMPP
- Получение истории и поиск по сообщениям
- Управление аккаунтом Telegram
-
Значимые изменения до версии 1.0, новости о которой не было на LOR:
- Добавлена обработка SIGINT с корректным закрытием всех сессий
- Добавлены (и позднее удалены) поддержка iq:jabber:register (регистрация пользователей), iq:jabber:gateway (поиск контактов)
- Долгие бодания с профайлером в Ruby, пока не поняли, что течёт tdlib (разработчики закрыли баг с WONTFIX — это фича)
-
Изменения до версии 2.0:
- Добавлена поддержка OTR (если Zhabogram используется с обеих сторон — не спрашивайте.)
- Использование сериализации YAML вместо sqlite3 для сохранения сессий.
- Убрано автоматическое определение часового пояса в связи с тем, что некоторые клиенты не следуют протоколу и отправляют кашу
- Исправлены запросы на авторизацию (подписку) от публичных каналов, из которых было перенаправлено (forwarded) сообщение, но подписчиком которого вы не являетесь
-
Изменения в версии 2.0
- NB! Сломана обратная совместимость конфиг-файла и файла сессий (для поддержки индивидуальных настроек в будущем).
- Код переписан на 80% — теперь он в разы читаемее. Внутренняя логика приведена в порядок.
- Количество запросов к Telegram уменьшено в три раза
- Убраны jabber:iq:register, jabber:iq:gateway
- Переписаны /команды — теперь они разные для чатов и для самого транспорта (системные функции). Для получения списка команд пришлите команду /help.
Для установки потребуется собственный Jabber-сервер. Рекомендуется получить API ID и API HASH в Telegram для более стабильной работы. Подробную инструкцию можно найти в файле README.md.
>>> Подробности