Zhabogram — un puente (puente, compuerta) de la red Jabber (XMPP) a la red Telegram, escrito en Ruby. Sucesor de tg4xmpp.
Dependencias
- Ruby >= 1.9
- xmpp4r == 0.5.6
- tdlib-ruby == 2.0 con tdlib compilado == 1.3
Funcionalidades
- Autenticación en una cuenta existente de Telegram
- Sincronización de la lista de chats con el roster
- Sincronización del estado de los contactos con el roster
- Agregar y eliminar contactos de Telegram
- Soporte de VCard con avatares
- Envío, recepción, edición y eliminación de mensajes
- Manejo de citas y mensajes reenviados
- Envío y recepción de archivos y mensajes especiales (soporte para fotos, videos, audios, documentos, mensajes de voz, stickers, animaciones, ubicaciones, mensajes del sistema)
- Soporte para chats secretos
- Creación, gestión y moderación de chats/supergrupos/canales
- Guardado de sesiones y reconexión automática al ingresar a la red XMPP
- Obtención de historial y búsqueda en mensajes
- Gestión de la cuenta de Telegram
Cambios significativos hasta la versión 1.0, de la cual no hubo noticias en LOR:
- Se añadió el manejo de SIGINT para cerrar correctamente todas las sesiones
- Se añadió (y luego eliminado) el soporte para iq:jabber:register (registro de usuarios), iq:jabber:gateway (búsqueda de contactos)
- Largas luchas con el profiler en Ruby, hasta que nos dimos cuenta de que había una fuga en tdlib (los desarrolladores cerraron el bug con WONTFIX — es una característica)
Cambios hasta la versión 2.0:
- Se añadió el soporte para OTR (si Zhabogram se utiliza de ambos lados — no preguntes.)
- Uso de serialización YAML en lugar de sqlite3 para guardar sesiones.
- Se eliminó la detección automática de la zona horaria debido a que algunos clientes no siguen el protocolo y envían datos distorsionados.
- Se corrigieron las solicitudes de autorización (suscripción) de los canales públicos, de los cuales se había enviado (reenviado) un mensaje, pero de los cuales no eres suscriptor.
Cambios en la versión 2.0
- ¡NB! La compatibilidad hacia atrás de los archivos de configuración y de sesión se ha roto (para soportar configuraciones individuales en el futuro).
- El código ha sido reescrito en un 80% — ahora es mucho más legible. La lógica interna ha sido ordenada.
- Se ha reducido el número de solicitudes a Telegram a un tercio
- Se eliminaron jabber:iq:register, jabber:iq:gateway
- Se reescribieron /comandos — ahora son diferentes para chats y para el transporte en sí (funciones del sistema). Para recibir la lista de comandos, envía el comando /help.
Para la instalación se requerirá un propio servidor Jabber. Se recomienda obtener el API ID y el API HASH en Telegram para un funcionamiento más estable. Instrucciones detalladas se pueden encontrar en el archivo README.md.
Fuente: linux.org.ru
