Newsboat

Aus wiki.archlinux.de

„Newsboat“ wurde von Dirk (Diskussion) als in Bearbeitung markiert. Um Bearbeitungskonflikte zu vermeiden, kontaktiere Dirk (Diskussion) bitte, bevor du den Artikel bearbeitest.


Dieser Artikel oder Artikelabschnitt ist noch nicht vollständig!


Newsboat 2.38 in der Standardkonfiguration zeigt den Nachrichten-Feed von archlinux.de an, einige Artikel wurden bereits gelesen, andere sind noch neu.

Newsboat ist ein sehr umfangreich konfigurierbarer und einfach durch Scripts und Macros erweiterbarer Feedclient für Atom- und RSS-Feeds für die Verwendung in der Konsole.

Installation

Das Programm ist als newsboat in extra verfügbar, und kann von dort mittels Pacman installiert werden.

pacman -S newsboat

Nach der Installation muss zuerst mindestens ein Feed eingerichtet werden, da Newsboat ansonsten nicht startet.

Konfiguration

Newsboat lädt die Feeds und Konfiguration wahlweise aus dem Verzeichnis ~/.newsboat/ oder dem Verzeichnis ~/.config/newsboat/. Die Feeds werden zeilenweise (optional mit entsprechender feedbezogener Konfiguration wie Tags und Titel, etc.) in der Datei urls abgelegt, die Konfiguration erfolgt in der Datei config.

In der Konfigurationsdatei lassen sich mittels include DATEINAME andere Konfigurationsdateien einbinden. Angaben in Backticks (`...`) werden vor Anwendung der Konfiguration als Shellbefehle ausgeführt und deren Ergebnis als Teil der Konfiguration interpretiert. Kommentare werden mittels # eingeleitet. Konfigurationsparameter mit Leerzeichen müssen in Doppelte Anführungszeichen gesetzt werden ("...").

Feedkonfiguration

Zu ladende Feeds werden Zeilenweise in der Datei urls im beschriebenen Konfigurationsverzeichnis abgelegt. Neben dem eigentlichen URL können noch verschiedene weitere Attribute angegeben werden. Dies richtet drei Feeds ein.

urls
https://www.archlinux.de/news/feed news linux arch          "~Nachrichten auf archlinux.de"
https://archlinux.org/feeds/news/  news linux arch          "~Englische Nachrichten über Arch"
https://lkml.org/rss.php           mailinglist linux kernel "~Mails in der LKML"

Die Darstellung wurde tabellarisch formatiert, um das Beispiel einfacher erklären zu können. In der ersten Spalte befindet sich jeweils der URL zum Feed. Die zweite Spalte enthält verschiedene Tags. Sollen Tags mit Leerzeichen benutzt werden, müssen diese in Doppelte Anführungszeichen gesetzt werden. Die dritte Spalte definiert den Titel für die Feeds. Technisch gesehen ist dies auch ein Tag, mit der vorangestellten Tilde bekommt es aber eine besondere Bedeutung.

In Newsboat kann man mittels T die Tagliste öffnen, und mittels der Pfeiltasten das gewünschte Tag auswählen, es werden dann nur Feeds angezeigt, dieses Tag haben.

Query-Feeds

Die Kombinierte Ansicht wie im Beispiel beschrieben. Newsboat zeigt zu den Artikeln in dieser Ansicht auch immer den Originalfeed an.

Wenn man sehr viele Feeds hat, kann es sein, dass man den Überblick verliert und eventuell Feeds zusammenführen und ansonsten aber aus der Feedsliste verbergen möchte. Hierzu kann man Query-Feeds benutzen. Diese erlauben den Zugriff auf alle Feed- und Artikel-Informationen (Tags, Titel, Datum, Status, etc.) und können anhand dieser Informationen Artikel aus mehreren Feeds in einem Feed zusammenführen.

urls
"query:Alle News zu Arch:(tags # \"arch\") and (tags # \"news\")" combined arch news
https://www.archlinux.de/news/feed ! news linux arch "~archlinux.de"
https://archlinux.org/feeds/news/  ! news linux arch "~archlinux.org"

Im Beispiel werden durch das Ausrufezeichen-Tag die Feeds in der Feedliste versteckt. Es wird zudem ein Query-Feed „Alle News zu Arch“ eingerichtet, dieser listet alle Artikel aus Feeds, in deren jeweiligen Taglisten sowohl arch als auch news zu finden sind. Der Query-Feed selbst hat die Tags „combined“, „arch“ und „news“ (Query-Feeds matchen sich nicht selbst, daher können die Tags „arch“ und „news“ problemlos so vergeben werden).

Eine weitere Option für einen Query-Feed ist ein Sammelfeed für alle noch nicht gelesenen Artikel.

"query:Ungelesen:unread = \"yes\"" combined unread

Dadurch werden alle Artikel aller Feeds, die noch das Unread-Flag haben, in einem Feed zusammengefasst, der Query-Feed selbst erhält die Tags „combined“ und „unread“, sowie den Titel „Ungelesen“.

Programmkonfiguration

Automatisches Feedupdate

Will man alle Feeds beim Programmstart automatisch aktualisieren, kann man dies entsprechend in der Konfigurationsdatei hinterlegen. Standardmäßig benutzt Newsboat nur einen Thread, bzw. eine Verbindung zum aktualisieren. Man kann dies ebenfalls beschleunigen. Im Beispiel werden 10 Verbindungen parallel aufgebaut, wodurch 10 verschiedene Feeds gleichzeitig aktualisiert werden können. Zudem wird konfiguriert, dass bei laufendem Programm die Feeds alle 5 Minuten aktualisiert werden.

~/.config/newsboat/config
auto-reload    yes
reload-threads 10
reload-time    5

Zusätzlich kann man mittels newsboat -x reload ein Update aller Feeds durchführen, ohne Newsboat dafür interaktiv starten zu müssen.

Themes

Scripts

Feedscripts

Macros

Tipps und Tricks

Update per systemd-Timer

Zum Beispiel mittels eines userbezogenen systemd-Timers kann man das reload auch verwenden, um automatisiert alle Feeds zu aktualisieren. In diesem Fall kann man sich dann auto-reload yes in der Konfiguration sparen, was den Start etwas beschleunigt, da man nicht erst auf die Feedupdates warten muss.

Zuerst erstellt man die Timer-Datei, hier wird festgelegt, wie oft (hier durch OnCalendar = hourly stündlich, sowie durch OnBootSec = 1min, einmalig eine Minute nach Systemstart) der Timer laufen soll.

~/.config/systemd/user/newsboat-reload.timer
[Unit]
Description=Run newsboat-reload once an hour

[Timer]
OnBootSec = 1min
OnCalendar = hourly

[Install]
WantedBy=timers.target

Dann erstellt man noch mit gleichem Dateinamen eine Service-Datei, durch die beim Aktivieren newsboat -x reload ausgeführt wird

~/.config/systemd/user/newsboat-reload.service
[Unit]
Description = Reload (Update) Newsboat feeds
After = network.target

[Service]
Type = oneshot
ExecStart = newsboat -x reload

[Install]
WantedBy = multi-user.target

Dann mittels systemctl --user --now enable newsboat-reload.timer den Timer im Userkontext aktivieren und ausführen. Es wird nun im angegebenen Intervall automatisch nach neuen Artikeln gesucht.

Desktopbenachrichtigung bei neuen Artikeln

YouTube-Abonnements als Feeds

Siehe auch

Weblinks