Le projet NotQuiteRSS développe une branche de l'agrégateur RSS/Atom QuiteRSS, conçu pour moderniser l'application tout en conservant une interface familière. Ce projet s'adresse aux utilisateurs qui ont besoin d'un outil de bureau autonome pour lire des fils d'actualités et stocker des nouvelles localement. Le code est écrit en C++ en utilisant Qt Widgets et est distribué sous la licence GPLv3. Des outils d'IA sont utilisés dans le développement. Des builds sont proposés pour Linux (AppImage), Windows et macOS.
La principale différence architecturale par rapport à QuiteRSS est l'abandon complet du moteur de navigateur intégré QtWebKit sans remplacement par QtWebEngine.
Les articles sont affichés via QTextBrowser et QTextDocument. Au lieu de Qt Multimedia pour la lecture des notifications sonores, la bibliothèque miniaudio est utilisée, offrant un support intégré pour WAV, MP3 et FLAC, sans nécessiter d'installation de plugins GStreamer.
Avant affichage, le HTML est traité selon une liste d'éléments et d'attributs autorisés : les scripts, frames, formulaires et autres constructions non prises en charge sont supprimés. JavaScript n'est pas exécuté et les liens vers des sites s'ouvrent dans un navigateur externe. Pour HTTPS, TLS 1.2 ou supérieur est requis, ainsi qu'une vérification des certificats. Les tailles des réponses et des redirections sont limitées, et le redirection de HTTPS vers HTTP est interdit. Les images des articles sont chargées séparément des flux, sans transmettre leurs données d'identification et les Cookies. L'animation des images dans les parties cachées de la page est suspendue.
Ainsi, l'application n'est pas transformée en une liste de liens. Elle conserve la lecture des articles avec mise en forme et images, le mode journal, les onglets des flux et des catégories, la recherche à l'intérieur de l'article, le zoom, l'impression et l'exportation. Une des limitations est l'absence d'une mise en page HTML/CSS entièrement intégrée (pour visualiser la page d'origine, un navigateur externe peut être appelé).
Les fonctionnalités et améliorations de NotQuiteRSS incluent :
- Le fonctionnement avec la base de données SQLite en mémoire avec enregistrement sur disque à intervalles définis et lors d'une fermeture normale est pris en charge. Les enregistrements indésirables lors de la réduction dans la systray ont été corrigés et la gestion des erreurs d'écriture a été améliorée.
- Les sauvegardes peuvent être effectuées manuellement, selon un calendrier, lors des modifications d'abonnement et à la sortie de l'application. Il est possible de configurer le nombre de copies à conserver. Des copies réduites sont disponibles, contenant uniquement des articles favoris ou marqués, ainsi que des sauvegardes complètes avant la mise à jour de la structure de la base de données.
- Résolution de l'accumulation illimitée des journaux de publications supprimées lors de l'utilisation du nettoyage par date de publication.
Améliorations apportées à la suppression des anciens articles, à la détection des doublons et à la gestion des erreurs de la base de données. - Pour les flux sélectionnés, il est possible de modifier simultanément le calendrier des mises à jour, le chargement des images, l'orientation du texte et les paramètres des colonnes. Les filtres d'articles peuvent s'appliquer à tous les flux, y compris ceux ajoutés par la suite.
- La configuration de l'User-Agent et des règles spécifiques pour domaines, y compris les paramètres GET/POST. Pour les sites avec vérification par navigateur, un import sélectif des Cookies au format Netscape est prévu. Cloudflare et Anubis sont reconnus avec un retour d'informations compréhensible, mais le succès du passage de la vérification par l'importation de Cookies n'est pas garanti.
- Les thèmes de conception, les traductions et les services d'envoi de liens ont été transférés vers des ressources externes. Un thème OLED est disponible, avec des icônes améliorées pour HiDPI et la possibilité de restaurer le focus sur l'agrégateur après l'ouverture d'un article dans un navigateur externe.
Source : opennet.ru
