Zhabogram — transport (most, brama) z sieci Jabber (XMPP) do sieci Telegram, napisany w Ruby. Następca tg4xmpp.
Zależności
- Ruby >= 1.9
- xmpp4r == 0.5.6
- tdlib-ruby == 2.0 z kompilowanym tdlib == 1.3
Możliwości
- Autoryzacja na istniejącym koncie Telegram
- Synchronizacja listy czatów z rosterem
- Synchronizacja statusów kontaktów z rosterem
- Dodawanie i usuwanie kontaktów Telegram
- Wsparcie dla VCard z awatarami
- Wysyłanie, odbieranie, edytowanie i usuwanie wiadomości
- Przetwarzanie cytatów i przekazanych wiadomości
- Wysyłanie i odbieranie plików oraz specjalnych wiadomości (wsparcie dla zdjęć, wideo, audio, dokumentów, wiadomości głosowych, naklejek, animacji, geolokalizacji, wiadomości systemowych)
- Wsparcie dla tajnych czatów
- Tworzenie, zarządzanie i moderowanie czatów/supergrup/kanalów
- Zachowywanie sesji i automatyczne łączenie przy wchodzeniu do sieci XMPP
- Odbieranie historii i wyszukiwanie w wiadomościach
- Zarządzanie kontem Telegram
Istotne zmiany przed wersją 1.0, której wiadomości na LOR nie było:
- Dodano obsługę SIGINT z poprawnym zamykaniem wszystkich sesji
- Dodano (a potem usunięto) wsparcie iq:jabber:register (rejestracja użytkowników), iq:jabber:gateway (wyszukiwanie kontaktów)
- Długie zmagania z profilerem w Ruby, aż zrozumieliśmy, że cieknie tdlib (programiści zamknęli błąd z WONTFIX — to funkcja)
Zmiany przed wersją 2.0:
- Dodano wsparcie dla OTR (jeśli Zhabogram jest używany z obu stron — nie pytajcie.)
- Zastosowanie serializacji YAML zamiast sqlite3 do przechowywania sesji.
- Usunięto automatyczne określanie strefy czasowej w związku z tym, że niektórzy klienci nie przestrzegają protokołu i wysyłają bałagan
- Naprawiono żądania autoryzacji (subskrypcji) od publicznych kanałów, z których została przekierowana (forwarded) wiadomość, ale nie jesteś jej subskrybentem
Zmiany w wersji 2.0
- NB! Złamana wsteczna kompatybilność pliku konfiguracyjnego i pliku sesji (w celu wsparcia indywidualnych ustawień w przyszłości).
- Kod przepisano w 80% — teraz jest znacznie bardziej czytelny. Wewnętrzna logika została uporządkowana.
- Liczba żądań do Telegramu została zmniejszona trzykrotnie
- Usunięto jabber:iq:register, jabber:iq:gateway
- Przepisano /komendy — teraz są różne dla czatów i dla samego transportu (funkcje systemowe). Aby otrzymać listę komend, wyślij komendę /help.
Aby zainstalować, potrzebny będzie własny serwer Jabber. Zaleca się uzyskanie API ID i API HASH w Telegramie dla bardziej stabilnej pracy. Szczegółową instrukcję można znaleźć w pliku README.md.
Źródło: linux.org.ru
