И это всё МОЁ

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.









 , ,