Zhabogram — trasporto (ponte, chiusa) dalla rete Jabber (XMPP) alla rete Telegram, scritto in Ruby. Erede di tg4xmpp.
Dipendenze
- Ruby >= 1.9
- xmpp4r == 0.5.6
- tdlib-ruby == 2.0 con tdlib compilato == 1.3
Funzionalità
- Autenticazione in un account Telegram esistente
- Sincronizzazione dell'elenco chat con il roster
- Sincronizzazione degli stati dei contatti con il roster
- Aggiunta e rimozione di contatti Telegram
- Supporto per VCard con avatar
- Invio, ricezione, modifica e cancellazione di messaggi
- Gestione di citazioni e messaggi inoltrati
- Invio e ricezione di file e messaggi speciali (supporto per foto, video, audio, documenti, messaggi vocali, adesivi, animazioni, geolocalizzazioni, messaggi di sistema)
- Supporto per chat segrete
- Creazione, gestione e moderazione di chat/supergruppi/canali
- Salvataggio delle sessioni e riconnessione automatica all'accesso nella rete XMPP
- Recupero della cronologia e ricerca nei messaggi
- Gestione dell'account Telegram
Modifiche significative fino alla versione 1.0, della quale non ci sono state notizie su LOR:
- Aggiunta la gestione di SIGINT con chiusura corretta di tutte le sessioni
- Aggiunti (e successivamente rimossi) supporto per iq:jabber:register (registrazione utenti), iq:jabber:gateway (ricerca contatti)
- Lunghe lotte con il profiler in Ruby, finché non abbiamo capito che si perdeva tdlib (gli sviluppatori hanno chiuso il bug con WONTFIX — è una funzionalità)
Modifiche fino alla versione 2.0:
- Aggiunto il supporto per OTR (se Zhabogram è usato da entrambe le parti — non chiedere.)
- Utilizzo della serializzazione YAML invece di sqlite3 per il salvataggio delle sessioni.
- Rimossa la determinazione automatica del fuso orario poiché alcuni client non seguono il protocollo e inviano dati confusi
- Corrette le richieste di autorizzazione (sottoscrizione) dai canali pubblici, da cui è stato inoltrato (forwarded) un messaggio, ma di cui non sei iscritto
Modifiche nella versione 2.0
- NB! Incompatibilità retroattiva del file di configurazione e del file delle sessioni (per supportare impostazioni individuali in futuro).
- Il codice è stato riscritto per l'80% — ora è molto più leggibile. La logica interna è stata sistemata.
- Il numero di richieste a Telegram è stato ridotto di tre volte
- Rimossi jabber:iq:register, jabber:iq:gateway
- Riscritte /comandi — ora sono diversi per le chat e per il trasporto stesso (funzioni di sistema). Per ricevere l'elenco dei comandi, invia il comando /help.
Per l'installazione è necessario un proprio server Jabber. Si consiglia di ottenere API ID e API HASH su Telegram per un funzionamento più stabile. Una guida dettagliata si può trovare nel file README.md.
Fonte: linux.org.ru
