Выпуск консольного RSS-агрегатора Newsraft 0.20

Состоялся релиз консольной программы для чтения новостных лент Newsraft 0.20, поддерживающей форматы RSS и Atom. Newsraft предназначен для получения контента из различных блогов и платформ, и его просмотра через единый интерфейс, построенный на базе библиотеки ncurses. Проект вдохновлён идеями приложения Newsboat, однако является самостоятельной разработкой и представляется его легковесным аналогом. Целью проекта является предоставление наиболее востребованной функциональности полноценного фидридера при как можно меньшем количестве строк исходного кода (для сравнения, Newsboat содержит около 40 тысяч строк исходного кода, тогда как Newsraft – около 9 тысяч). Код проекта написан на языке программирования C (C99) и распространяется под лицензией ISC.

Основные возможности Newsraft:

  • Организация лент по группам (секциям);
  • Автоматические обновления для отдельных лент и целых секций;
  • Назначение нескольких действий на одну клавишу;
  • Просмотр содержания новостей в формате HTML;
  • Открытие ссылок любой программой одним нажатием (например mpv);
  • Просмотр новостей всех лент в explore-режиме;
  • Текстовый поиск по новостям;
  • Параллельное обновление лент (кол-во ядер процессора = кол-во одновременных обновлений);
  • Возможность настроить множество параметров через конфигурационный файл.

Нововведения в последней версии:

  • Возможность поиска по новостям;
  • Поддержка настройки нескольких действий для одной клавиши;
  • Учёт атрибута isPermaLink в RSS-лентах;
  • Исправление игнорирования часового пояса в датах RFC 3339;
  • Добавление спецификатора даты публикации в настройку menu-item-entry-format;
  • Добавление поддержки лент, распространяемых по протоколу gopher и gophers;
  • Использование CFLAGS из системы pkg-config (при наличии);
  • Реализована предварительного набора тестов;
  • Добавление подсказки для обновления пустых лент;
  • Добавление примечания об опциональности конфигурационного файла;
  • Распознание HTML-элементов param и link.

По сравнению с Newsboat, при реализации Newsraft некоторые проектные решения были сделаны с упором на простоту и легковесность:

  • Более простой синтаксис для назначения клавиш на исполнение команд:
    • Newsraft bind m exec mpv “%l”
    • Newsboat macro m set browser mpv; open-in-browser; set browser elinks
  • Отсутствие необходимости нажимать macro-prefix (“,” в Newsboat) для исполнения нескольких действий;
  • Гибкая настройка автоматических обновлений для отдельных лент и целых секций;
  • Более быстрые обновления лент в связи с использованием эффективных парсеров и простых структур данных;
  • Более простая кодовая база (Newsraft написан полностью на языке программирования C в соответствии с известным своей простотой стандартом С99, тогда как в кодовой базе Newsboat присутствует исходный код на языках C++, Rust и Coco/R);
  • Отсутствие функциональности для фильтрации, управления подкастами и интеграции со сторонними сервисами, таким как Feedly.

Newsraft не является прямой заменой Newsboat из-за отсутствия некоторых возможностей, но может служить заменой для тех, кому не принципиально наличие функциональности для фильтрации новостей или интеграции со сторонними сервисами. Подробное руководство пользователя, описывающее принцип работы Newsraft, доступные настройки и параметры по-умолчанию, предоставляется в виде страницы мануала (man page).






Release. Ссылка here.