Zhabogram — un ponte (gateway) dalla rete Jabber (XMPP) alla rete Telegram, sviluppato in Ruby. Successore di tg4xmpp.
Dipendenze
- Ruby >= 1.9
- xmpp4r == 0.5.6
- tdlib-ruby == 2.0 con tdlib compilato == 1.3
Capacità
- 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 VCard con foto profilo
- 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
Cambiamenti significativi fino alla versione 1.0, di cui non ci sono state notizie su LOR:
- Aggiunta la gestione di SIGINT con chiusura corretta di tutte le sessioni
- Aggiunto (e successivamente rimosso) il supporto iq:jabber:register (registrazione utenti), iq:jabber:gateway (ricerca contatti)
- Lunghe tensioni con il profiler in Ruby, fino a quando non abbiamo capito che c'era una perdita in tdlib (gli sviluppatori hanno chiuso il bug con WONTFIX — questa è una funzionalità)
Modifiche fino alla versione 2.0:
- Aggiunto il supporto per OTR (se Zhabogram viene utilizzato da entrambe le parti — non chiedere.)
- Utilizzo della serializzazione YAML invece di sqlite3 per salvare le sessioni.
- Rimosso il rilevamento automatico del fuso orario a causa di alcuni client che non seguono il protocollo e inviano dati confusi.
- Correzione delle richieste di autorizzazione (abbonamento) dai canali pubblici da cui è stato inoltrato un messaggio, ma di cui non sei abbonato.
Modifiche nella versione 2.0
- NB! Incompatibilità retroattiva del file di configurazione e del file delle sessioni (per supportare impostazioni personalizzate 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 ottenere l'elenco dei comandi, invia il comando /help.
Per l'installazione è necessario un server Jabber proprio. Si consiglia di ottenere un API ID e un API HASH in Telegram per un funzionamento più stabile. Puoi trovare istruzioni dettagliate nel file README.md.
Fonte: linux.org.ru
