sfeed

Simple RSS and Atom feed parser
git clone https://git.sinitax.com/codemadness/sfeed
Log | Files | Refs | README | LICENSE | Upstream | sfeed.txt

commit 96d7afc7d7511f05ba07c5acbb5bbfb2847bc126
parent 21790adad1672689225efe38b6a59494181d323b
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date:   Fri,  9 Jun 2023 14:40:40 +0200

sfeed_update/sfeedrc: add url as parameter to the filter() and order() function

This might make it easier to set filters or ordering by pattern matching on a
group of feeds by the feed URL. For example youtube or reddit feeds.

Another way which was already possible is prefixing names with for example:
"reddit somename" or "yt somename".

Diffstat:
MREADME | 2+-
Msfeed_update | 8++++----
Msfeedrc.5 | 10+++++++---
3 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/README b/README @@ -336,7 +336,7 @@ filtering items per feed. It can be used to shorten URLs, filter away advertisements, strip tracking parameters and more. # filter fields. - # filter(name) + # filter(name, url) filter() { case "$1" in "tweakers") diff --git a/sfeed_update b/sfeed_update @@ -71,7 +71,7 @@ parse() { } # filter fields. -# filter(name) +# filter(name, url) filter() { cat } @@ -83,7 +83,7 @@ merge() { } # order by timestamp (descending). -# order(name) +# order(name, url) order() { sort -t ' ' -k1rn,1 } @@ -124,7 +124,7 @@ _feed() { fi rm -f "${tmpfeedfile}.utf8" - if ! filter "${name}" < "${tmpfeedfile}.tsv" > "${tmpfeedfile}.filter"; then + if ! filter "${name}" "${feedurl}" < "${tmpfeedfile}.tsv" > "${tmpfeedfile}.filter"; then log_error "${name}" "FAIL (FILTER)" return 1 fi @@ -142,7 +142,7 @@ _feed() { fi rm -f "${tmpfeedfile}.filter" - if ! order "${name}" < "${tmpfeedfile}.merge" > "${tmpfeedfile}.order"; then + if ! order "${name}" "${feedurl}" < "${tmpfeedfile}.merge" > "${tmpfeedfile}.order"; then log_error "${name}" "FAIL (ORDER)" return 1 fi diff --git a/sfeedrc.5 b/sfeedrc.5 @@ -1,4 +1,4 @@ -.Dd January 18, 2023 +.Dd June 9, 2023 .Dt SFEEDRC 5 .Os .Sh NAME @@ -101,13 +101,15 @@ URL of the feed. Base URL of the feed links. This argument allows to fix relative item links. .El -.It Fn filter "name" +.It Fn filter "name" "url" Filter .Xr sfeed 5 data from stdin and write it to stdout, its arguments are: .Bl -tag -width Ds .It Fa name Feed name. +.It Fa url +URL of the feed. .El .It Fn merge "name" "oldfile" "newfile" Merge @@ -121,13 +123,15 @@ Old file. .It Fa newfile New file. .El -.It Fn order "name" +.It Fn order "name" "url" Sort .Xr sfeed 5 data from stdin and write it to stdout, its arguments are: .Bl -tag -width Ds .It Fa name Feed name. +.It Fa url +URL of the feed. .El .El .Sh EXAMPLES