Zhabogram - транспорт (міст, шлюз) з мережі Jabber (XMPP) до мережі Telegram, написаний на Ruby. Наступник tg4xmpp.
-
Залежності
- Рубін >= 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