Zhabogram — um transportador (ponte, gateway) da rede Jabber (XMPP) para a rede Telegram, escrito em Ruby. Sucessor do tg4xmpp.
Dependências
- Ruby >= 1.9
- xmpp4r == 0.5.6
- tdlib-ruby == 2.0 com tdlib compilado == 1.3
Recursos
- Autenticação em uma conta existente do Telegram
- Sincronização da lista de chats com o catálogo
- Sincronização de status dos contatos com a lista de contatos
- Adição e remoção de contatos do Telegram
- Suporte a VCard com avatares
- Envio, recebimento, edição e exclusão de mensagens
- Manipulação de citações e mensagens encaminhadas
- Envio e recebimento de arquivos e mensagens especiais (suporte para fotos, vídeos, áudios, documentos, mensagens de voz, adesivos, animações, geolocalizações, mensagens do sistema)
- Suporte a chats secretos
- Criação, gerenciamento e moderação de chats/supergrupos/canais
- Preservação de sessões e conexão automática ao entrar na rede XMPP
- Obtenção de histórico e pesquisa de mensagens
- Gerenciamento da conta do Telegram
Mudanças significativas até a versão 1.0, sobre a qual não houve novidades no LOR:
- Adicionada a manipulação de SIGINT com o fechamento correto de todas as sessões
- Adicionada (e posteriormente removida) suporte para iq:jabber:register (registro de usuários), iq:jabber:gateway (busca de contatos)
- Lutas prolongadas com o profiler em Ruby, até percebermos que o tdlib estava com problemas (os desenvolvedores fecharam o bug como WONTFIX — é uma funcionalidade)
Mudanças até a versão 2.0:
- Adicionado suporte para OTR (se o Zhabogram for utilizado de ambos os lados — não pergunte.)
- Uso de serialização YAML em vez de sqlite3 para salvar sessões.
- Removida a detecção automática de fuso horário devido ao fato de que alguns clientes não seguem o protocolo e enviam informações incorretas
- Corrigidos os pedidos de autenticação (assinatura) de canais públicos, dos quais a mensagem foi redirecionada, mas você não é um assinante
Mudanças na versão 2.0
- NB! A compatibilidade reversa do arquivo de configuração e do arquivo de sessões foi quebrada (para suportar configurações individuais no futuro).
- Código reescrito em 80% — agora está muito mais legível. A lógica interna foi organizada.
- Número de solicitações ao Telegram reduzido em três vezes
- Removidos jabber:iq:register, jabber:iq:gateway
- Reescritas as /comandos — agora são diferentes para chats e para o próprio transporte (funções do sistema). Para obter a lista de comandos, envie o comando /help.
Para a instalação, será necessário um servidor Jabber próprio. Recomenda-se obter o API ID e o API HASH no Telegram para um funcionamento mais estável. Instruções detalhadas podem ser encontradas no arquivo README.md.
Fonte: linux.org.ru
