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.
Източник: linux.org.ru
