Zhabogram — un transport (pod, gateway) din rețeaua Jabber (XMPP) în rețeaua Telegram, scris în Ruby. Succesorul tg4xmpp.
Dependințe
- Ruby >= 1.9
- xmpp4r == 0.5.6
- tdlib-ruby == 2.0 cu tdlib compilat == 1.3
Funcționalități
- Autentificare în contul existent Telegram
- Sincronizarea listei de conversații cu rosterul
- Sincronizarea statutelor contactelor cu rosterul
- Adăugarea și ștergerea contactelor Telegram
- Suport pentru VCard cu imagini de profil
- Trimiterea, primirea, editarea și ștergerea mesajelor
- Prelucrarea citatelor și mesajelor redirecționate
- Trimiterea și primirea fișierelor și mesajelor speciale (suport pentru fotografii, videoclipuri, audio, documente, mesaje vocale, stickere, animații, geolocalizări, mesaje sistemice)
- Suport pentru chat-uri secrete
- Crearea, gestionarea și moderarea chat-urilor/supergrupurilor/canalelor
- Salvarea sesiilor și conectare automată la intrarea în rețeaua XMPP
- Obținerea istoricului și căutarea mesajelor
- Gestionarea contului Telegram
Modificări semnificative până la versiunea 1.0, despre care nu au fost știri pe LOR:
- A fost adăugată prelucrarea SIGINT pentru închiderea corectă a tuturor sesiunilor
- A fost adăugată (și ulterior eliminată) suportul iq:jabber:register (înregistrarea utilizatorilor), iq:jabber:gateway (căutarea contactelor)
- Lupte îndelungate cu profiler-ul în Ruby, până nu am realizat că tdlib are probleme (dezvoltatorii au închis bug-ul cu WONTFIX — este o caracteristică)
Modificări până la versiunea 2.0:
- A fost adăugat suport OTR (dacă Zhabogram este utilizat din ambele părți — nu întrebați.)
- Utilizarea serializării YAML în loc de sqlite3 pentru salvarea sesiunilor.
- A fost eliminată determinarea automată a fusului orar deoarece unele clienți nu respectă protocolul și trimit mesaje confuze
- Au fost corectate cererile de autentificare (abonare) de la canale publice, din care a fost trimisă (redirecționată) un mesaj, dar de care nu ești abonat
Modificări în versiunea 2.0
- NB! Incompatibilitate ruptă a fișierului de configurare și a fișierului de sesiuni (pentru a sprijini setările individuale în viitor).
- Codul a fost rescris în proporție de 80% — acum este mult mai ușor de citit. Logica internă a fost adusă în ordine.
- Numărul de cereri către Telegram a fost redus de trei ori
- Au fost eliminate jabber:iq:register, jabber:iq:gateway
- Comenzile au fost rescrise — acum sunt diferite pentru chat-uri și pentru transportul în sine (funcții sistem). Pentru a obține lista comenzilor, trimiteți comanda /help.
Pentru instalare, va fi necesar un server Jabber propriu. Se recomandă obținerea unui API ID și API HASH în Telegram pentru o funcționare mai stabilă. Instrucțiuni detaliate pot fi găsite în fișierul README.md.
Sursa: linux.org.ru
