sfeed_update/sfeedrc: add url as parameter to the filter() and order() function - sfeed - RSS and Atom parser
 (HTM) git clone git://git.codemadness.org/sfeed
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 96d7afc7d7511f05ba07c5acbb5bbfb2847bc126
 (DIR) parent 21790adad1672689225efe38b6a59494181d323b
 (HTM) 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:
         M README                              |       2 +-
         M sfeed_update                        |       8 ++++----
         M sfeedrc.5                           |      10 +++++++---
       
       3 files changed, 12 insertions(+), 8 deletions(-)
       ---
 (DIR) 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")
 (DIR) 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
 (DIR) 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