NotQuiteRSS — развитие QuiteRSS с поддержкой Qt 6 и без встроенного браузера

Проект NotQuiteRSS развивает ответвление от RSS/Atom-агрегатора QuiteRSS, созданное для модернизации приложения с сохранением привычного интерфейса. Проект ориентирован на пользователей, которым нужен самостоятельный настольный инструмент для чтения новостных лент и хранения новостей локально. Код написан на C++ с использованием Qt Widgets и распространяется под лицензией GPLv3. При разработке применяются AI-инструменты. Сборки формируются для Linux (AppImage), Windows и macOS.

Основное архитектурное отличие от QuiteRSS — полный отказ от встроенного браузерного движка QtWebKit без замены его на QtWebEngine.
Статьи отображаются средствами QTextBrowser и QTextDocument. Вместо Qt Multimedia для воспроизведения звуковых уведомлений задействована библиотека miniaudio со встроенной поддержкой WAV, MP3 и FLAC, не требующей установки плагинов GStreamer.

Перед показом HTML проходит обработку по списку разрешённых элементов и атрибутов: удаляются скрипты, фреймы, формы и другие неподдерживаемые конструкции. JavaScript не исполняется, а ссылки на сайты открываются во внешнем браузере. Для HTTPS требуется TLS 1.2 или новее и проверка сертификатов. Ограничиваются размеры ответов и перенаправления, запрещено перенаправление с HTTPS на HTTP. Изображения статей загружаются отдельно от лент, без передачи их учётных данных и Cookies. Анимация изображений в скрытых частях страницы приостанавливается.

При этом приложение не превращено в список ссылок. В нём сохранены чтение статей с форматированием и изображениями, газетный режим, вкладки лент и категорий, поиск внутри статьи, масштабирование, печать и экспорт. Ограничением является отсутствие полноценной встроенной вёрстки HTML/CSS (для просмотра исходной страницы может вызываться внешний браузер).

Среди возможностей и доработок NotQuiteRSS:

  • Поддерживается работа с базой SQLite в оперативной памяти с сохранением на диск через заданный интервал и при штатном завершении. Исправлены нежелательные сохранения при сворачивании в трей и обработка ошибок записи.
  • Резервные копии можно создавать вручную, по расписанию, при изменении подписок и выходе из приложения. Настраивается количество сохраняемых комплектов. Предусмотрены сокращённые копии, содержащие только избранные или помеченные статьи, а также полные страховочные копии перед обновлением структуры базы.
  • Исправлено неограниченное накопление служебных записей об удалённых публикациях при использовании очистки по сроку публикации.
    Доработаны удаление старых статей, обнаружение дубликатов и обработка ошибок базы.

  • Для выбранных лент можно одновременно менять расписание обновлений, загрузку изображений, направление текста и параметры колонок. Фильтры статей могут распространяться на все ленты, включая добавленные впоследствии.
  • Доступны настройка User-Agent и отдельные правила для доменов, включая параметры GET/POST. Для сайтов с браузерной проверкой предусмотрен выборочный импорт Cookies в формате Netscape. Cloudflare и Anubis распознаются с выводом понятной диагностики, но успешное прохождение проверки через импорт Cookies не гарантируется.
  • Темы оформления, переводы и сервисы отправки ссылок вынесены во внешние ресурсы. Есть OLED-тема, улучшенные пиктограммы для HiDPI и возможность возвращать фокус агрегатору после открытия статьи во внешнем браузере.

Источник: http://www.opennet.ru/opennews/art.shtml?num=66502