|
|
sfeed_update/sfeedrc: add url as parameter to the filter() and order() function - sfeed - RSS and Atom parser |
|
|
 |
git clone git://git.codemadness.org/sfeed (git://git.codemadness.org) |
|
|
 |
Log |
|
|
 |
Files |
|
|
 |
Refs |
|
|
 |
README |
|
|
 |
LICENSE |
|
|
|
--- |
|
|
 |
commit 96d7afc7d7511f05ba07c5acbb5bbfb2847bc126 |
|
|
 |
parent 21790adad1672689225efe38b6a59494181d323b |
|
|
 |
Author: Hiltjo Posthuma <hiltjo@codemadness.org> (mailto://) |
application/vnd.lotus-organizer |
|
|
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(-) |
|
|
|
--- |
|
|
 |
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 |
|