Novidades no Desenvolvimento 2019

 ·  by cal0pteryx  ·  Desenvolvimento

Novidades no desenvolvimento do Gajim

This is the third post of a news series about Gajim’s development. In these posts I (cal0pteryx) will try to summarize a month of development around Gajim. Sometimes these posts will also cover python-nbxmpp and XMPP in general. December’s development brought improvements to HTTP file transfers, contact list tooltips, and more. Feel free to join gajim@conference.gajim.org to discuss with us.

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

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).

Get the latest release

Install

Contact

Join our XMPP chat to ask questions, share ideas or to report issues.

Join our Chat Open a Ticket