Novidades no Desenvolvimento 2019

Gajim development news

Novidades no Desenvolvimento 2019

Gajim development news

Esta é a terceira publicação da série de notícias sobre o desenvolvimento do Gajim. Nestas publicações eu (wurstsalat) vou tentar resumir um mês de desenvolvimento do Gajim. As vezes essas publicações também vão cobrir python-nbxmpp e XMPP em geral. O desenvolvimento de dezembro trouxe melhorias para a transferência de arquivos HTTP, ferramentas da lista de contatos e mais. Sinta-se livre para entrar em gajim@conference.gajim.org para conversar com a gente.

Mudanças no Gajim

A substituição do sistema antigo de diálogo do Gajim (veja Notícias de Desenvolvimento de Novembro) foi completada este mês. Nós ainda estamos progredindo na retirada de diálogos desnecessários, mas este já é um bom passo adiante. Para dar um exemplo de diálogo desnecessário: quando um contato confirma o seu pedido de inscrição, uma mensagem de diálogo com um único botão OK apareceria para informar sobre o evento. Ao invés disso, o Gajim agora vai simplesmente mostrar um notificação (o que é menos intrusivo).

Durante muito tempo até agora, ao passar o mouse em cima de um grupo de chat na lista de contatos do Gajim se mostrava um balão com informações básicas sobre esse chat. Anteriormente, esse balão também mostraria o tópico (e não encurtava o texto). Nós decidimos substituir o tópico pela descrição do grupo de chat, se tiver. O tópico ainda pode ser visto abrindo a página de informação do grupo de chat. Adicionalmente foi definido limite no tamanho do texto de todas as informações resultando em um balão compacto.

Para algumas ações, o Gajim precisa de um processo similar a um assistente para guiar os usuários através de múltiplos passos de entrada. O Gajim agora conta com um assistente extensivel para este propósito. Já migraram-se dois fluxos de trabalho para o novo assistente: mudança de senha e remoção de conta. Ao eliminar uma conta, por exemplo, os usuários podem escolher se eles quer remover localmente ou inteiramente, o que significa ambos localmente e do servidor. Este é um processo dinâmico no qual os passos podem dar errado (ex. o servidor não oferece remoção de conta, perda de conexão, …) ou pode-se pedir uma entrada adicional do usuário. O uso do novo assistente permite ao Gajim mostrar opções, progresso, erros, etc. dentro de uma só janela sem usar caixas de diálogo adicionais. A próxima ação que migraremos será o assistente de criação de contas, uma parte crucial da incorporação de usuário.

For file transfers via HTTP File Upload (XEP-0363), as well as other HTTP downloads and uploads, Gajim has been using python threads for a long time. This hasn’t proven to work in every case, sometimes resulting in GUI freezes. In order to make HTTP transfers work asynchronously, Gajim now makes use of the ’libsoup’ library. While working on this, the code around file transfers has been simplified as well. In the future this should also enable users to set up proxies for HTTP connections (e.g. URL image preview, plugin installer).

O que mais aconteceu

  • Corrigiu-se erros na entrada de mensagens em que mensagens longas sem quebras de linha não eram completamente visíveis (#8980, #9574)
  • Corrigido o erro na mensagem sem servidor (#9926)
  • Os itens de menu ‘Iniciar Chat’ e ‘Criar Grupo de Chat’ estão agora desabilitados quando o usuário não estiver conectado
  • Fechar um chat com mensagens não lidas agora mostra uma mensagem de diálogo dinâmica levando em conta a configuração de histórico
  • Melhorada a seleção de origem de áudio e vídeo nas preferências

Em um esforço contínuo de melhorar a qualidade do código ajustando as regras de pylint, solucionaram-se muitos avisos e erros de limpeza.

Atualizações de plugins

Gajim’s URL image preview plugin has been adapted to HTTP file transfer changes. This also included a complete rework of the plugin, which also fixed #456 and #320. In the past, the plugin was able to display geo:-URIs (links to locations) on a map using either Google Maps or OpenStreetMap via Map Quest. Today, both services are rate-limited or require a payed membership, rendering the plugin’s use of these services useless. When receiving a geo:-URI, the preview plugin will now display a clickable map icon which opens the web browser. Most browsers do support these links by opening a map service using the supplied coordinates.

O plugin OMEMO do Gajim também foi adaptado para as mudanças de transferência de arquivo HTTP, o que também corrigiu #467 e #419.

Além disso, dois plugins receberam uma revisão completa: Apelidos clicáveis (#454) e Tamanho da Caixa de Mensagem.

Mudanças em python-nbxmpp

Adicionou-se ao python-nbxmpp suporte para subir arquivos via HTTP (XEP-0363).