Zhabogram 2.0 — транспорт з Jabber до Telegram

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

Додати коментар або відгук