Novedades en el desarrollo Diciembre 2019

Novedades en el desarrollo de Gajim

Novedades en el desarrollo Diciembre 2019

Novedades en el desarrollo de Gajim

Esta es la tercera publicación de una serie de novedades sobre el desarrollo de Gajim. En estas publicaciones yo (wurstsalat) intentaré resumir un mes de desarrollo de Gajim. Algunas veces estas publicaciones también cubrirán python-nbxmpp y XMPP en generla. El desarrollo de diciembre trajo mejoras a las transferencias de archivos HTTP, herramientas de la lista de contactos y más. Unete al grupo gajim@conference.gajim.org](xmpp:gajim@conference.gajim.org?join) para discutir con nosotros.

Cambios en Gajim

El cambio del antiguo sistema de diálogo de mensajes de Gajim (ver Noticias de desarrollo de noviembre) se ha completado este mes. Todavía estamos en proceso de eliminación de diálogos no necesarios, pero esto es ya un buen paso. Para dar un ejemplo de un diálogo innecesario: cuando un contacto confirma tu petición de suscripción, aparece un diálogo con un botón OK para informar del evento. En su lugar ahora Gajim emitirá una simple notificación (que es menos intrusivo).

Durante mucho tiempo hasta ahora, al pasar el ratón por encima de un chat grupal en la lista de contactos de Gajim se mostraba un globo con información básica sobre ese chat. Anteriormente, ese globo también solía mostrar el tema del chat grupal (y no acortaba el texto). Hemos decidido cambiar el tema por la descripción del grupo, si existe. El tema todavía se puede ver abriendo la página de información del grupo. Adicionalmente se limita la longitud de cada información, resultando en un globo compacto.

Para algunas acciones, Gajim necesita un proceso similar a un asistente para guiar a los usuarios a través de múltiples pasos de entrada. Gajim ahora cuenta con un asistente extensible para este propósito. Ya se han migrado dos flujos de trabajo al nuevo asistente: cambio de contraseña y eliminación de cuenta. Al eliminar una cuenta, por ejemplo, los usuarios pueden elegir si desean eliminarla localmente o por completo, es decir, tanto localmente como en el servidor. Este es un proceso dinámico en el que los pasos pueden salir mal (por ejemplo, el servidor no ofrece eliminación de cuenta, pérdida de conexión, …) o se puede requerir una entrada adicional del usuario. El uso del nuevo asistente le permite a Gajim mostrar opciones, progreso, errores, etc. dentro de una sola ventana sin usar cuadros de diálogo adicionales. La siguiente acción que se migrará será el asistente de creación de cuentas, una parte crucial de incorporación de usuarios.

Para transferencias de archivos via HTTP File Upload (XEP-0363), así como para otras subidas y bajadas por HTTP, Gajim ha estado usando hebras python durante mucho tiempo. Esto no ha demostrado que funcione en todos los casos, lo que a veces resulta en congelaciones de la GUI. Para que las transferencias HTTP funcionen de forma asíncrona, Gajim ahora utiliza la biblioteca ’libsoup’. Mientras trabajaba en esto, el código relativo a las transferencias de archivos también se ha simplificado. En el futuro, esto también permitiría a los usuarios configurar proxies para conexiones HTTP (p. ej. vista previa de imagen URL, instalador de complementos).

Qué más ha pasado

  • Se corrigieron errores en la entrada de mensajes donde los mensajes largos sin saltos de línea no eran completamente visibles (# 8980, [# 9574](https: // dev.gajim.org/gajim/gajim/issues/9574))
  • Arreglado error en la mensajería sin servidor (#9926)
  • Los elementos de menú ‘Iniciar Conversación’ y ‘Crear Grupo’ ahora están deshabilitados si el usuario no está conectado
  • El cierre de un chat con mensajes no leídos ahora mostrará un mensaje de diálogo dinámico, teniendo en cuenta la configuración del historial
  • Mejorada la selección de origen de audio/vídeo en preferencias

En un esfuerzo continuo por mejorar la calidad del código ajustando las reglas de pylint, se han solucionado muchas advertencias y errores de limpieza.

Actualizaciones de complementos

El complemento de previsualización de imagen URL ha sido adaptado a los cambios en la transferencia de archivos HTTP. Esto ha incluido también un retrabajo completo que ha arreglado #456 y #320. Anteriormente, el complemento podía mostrar geo: -URI (enlaces a ubicaciones) en un mapa usando Google Maps u OpenStreetMap a través de Map Quest. Hoy en día, ambos servicios tienen una tarifa limitada o requieren un registro de pago, lo que hace que el uso del complemento de estos servicios sea inútil. Al recibir un geo: -URI, el complemento de vista previa ahora mostrará un icono de mapa en el que se puede hacer clic para abir el navegador web. La mayoría de los navegadores admiten estos enlaces al abrir un servicio de mapas utilizando las coordenadas proporcionadas.

El complemento OMEMO de Gajim ha sido adaptado a los cambios en la transferencia de archivos HTTP, que ha sido también arreglado #467 and #419.

Además, dos complementos recibieron una revisión completa: Apodos cliqueables (# 454) y Tamaño del cuadro de mensaje.

Cambios en python-nbxmpp

Se añadido a python-nbxmpp soporte para HTTP File Upload (XEP-0363).