El proyecto NotQuiteRSS desarrolla una ramificación del agregador RSS/Atom QuiteRSS, creado para modernizar la aplicación manteniendo la interfaz familiar. El proyecto está dirigido a usuarios que necesitan una herramienta de escritorio autónoma para leer feeds de noticias y almacenar noticias localmente. El código está escrito en C++ utilizando Qt Widgets y se distribuye bajo la licencia GPLv3. Durante el desarrollo se utilizan herramientas de IA. Se generan compilaciones para Linux (AppImage), Windows y macOS.
La principal diferencia arquitectónica con QuiteRSS es la completa eliminación del motor de navegador integrado QtWebKit sin reemplazarlo por QtWebEngine.
Los artículos se muestran utilizando QTextBrowser y QTextDocument. En lugar de Qt Multimedia, para la reproducción de notificaciones sonoras se utiliza la biblioteca miniaudio, que tiene soporte incorporado para WAV, MP3 y FLAC, sin necesidad de instalar plugins de GStreamer.
Antes de mostrar, el HTML pasa por un procesamiento basado en una lista de elementos y atributos permitidos: se eliminan scripts, marcos, formularios y otras construcciones no soportadas. JavaScript no se ejecuta, y los enlaces a sitios se abren en un navegador externo. Para HTTPS se requiere TLS 1.2 o superior y verificación de certificados. Se limitan los tamaños de las respuestas y las redirecciones, y se prohíbe la redirección de HTTPS a HTTP. Las imágenes de los artículos se cargan por separado de los feeds, sin transmitir sus credenciales y Cookies. La animación de las imágenes en partes ocultas de la página se detiene.
Sin embargo, la aplicación no se convierte en una lista de enlaces. Se mantienen la lectura de artículos con formato e imágenes, el modo periódico, las pestañas de feeds y categorías, la búsqueda dentro del artículo, el zoom, la impresión y la exportación. Una limitación es la falta de un diseño HTML/CSS totalmente integrado (se puede invocar un navegador externo para ver la página original).
Entre las capacidades y mejoras de NotQuiteRSS:
- Se admite el trabajo con una base de datos SQLite en memoria con guardado en disco a través de un intervalo establecido y al cierre normal. Se han corregido los guardados no deseados cuando se minimiza en la bandeja y se ha mejorado el manejo de errores de escritura.
- Se pueden crear copias de seguridad manualmente, programadas, al modificar suscripciones y al salir de la aplicación. Se configura la cantidad de copias a conservar. Se prevén copias reducidas, que incluyen solo artículos destacados o marcados, así como copias de seguridad completas antes de actualizar la estructura de la base de datos.
- Se corrigió la acumulación ilimitada de registros de servicio de publicaciones eliminadas al utilizar la limpieza según la fecha de publicación.
Se mejoró la eliminación de artículos antiguos, la detección de duplicados y el manejo de errores de la base de datos. - Para los feeds seleccionados, se puede cambiar simultáneamente el horario de actualizaciones, la carga de imágenes, la dirección del texto y los parámetros de las columnas. Los filtros de artículos pueden aplicarse a todos los feeds, incluidos los añadidos posteriormente.
- Es posible configurar User-Agent y reglas individuales para dominios, incluyendo parámetros GET/POST. Para sitios con verificación en el navegador, se prevé la importación selectiva de Cookies en formato Netscape. Cloudflare y Anubis son reconocidos con un diagnóstico claro, pero no se garantiza el paso exitoso de la verificación a través de la importación de Cookies.
- Los temas de diseño, las traducciones y los servicios de envío de enlaces se han trasladado a recursos externos. Hay un tema OLED, iconos mejorados para HiDPI y la posibilidad de devolver el foco al agregador después de abrir un artículo en un navegador externo.
Fuente: opennet.ru
