summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHiltjo Posthuma <hiltjo@codemadness.org>2021-01-25 19:27:04 +0100
committerHiltjo Posthuma <hiltjo@codemadness.org>2021-01-27 15:24:02 +0100
commit1a17ad48876172fadb6782f1edee2058819770dc (patch)
treede12972b279a76072d51839dd814df3e870ecdfe
parent650adaf537c2baea0d8ad1d11d16286c798cd640 (diff)
sfeed_update: add an overridable parse() function, using sfeed(1) by default
This can be useful to make more cleanly make connector scripts. This does not necesarily even have to be in the sfeed(5) format.
-rwxr-xr-xsfeed_update8
-rw-r--r--sfeedrc.515
2 files changed, 21 insertions, 2 deletions
diff --git a/sfeed_update b/sfeed_update
index 3cf575c..ff9a44a 100755
--- a/sfeed_update
+++ b/sfeed_update
@@ -55,6 +55,12 @@ convertencoding() {
fi
}
+# parse and convert input, by default XML to the sfeed(5) TSV format.
+# parse(name, feedurl, basesiteurl)
+parse() {
+ sfeed "$3"
+}
+
# filter fields.
# filter(name)
filter() {
@@ -115,7 +121,7 @@ feed() {
fi
rm -f "${tmpfeedfile}.fetch"
- if ! sfeed "${basesiteurl}" < "${tmpfeedfile}.utf8" > "${tmpfeedfile}.tsv"; then
+ if ! parse "${name}" "${feedurl}" "${basesiteurl}" < "${tmpfeedfile}.utf8" > "${tmpfeedfile}.tsv"; then
log "${name}" "FAIL (CONVERT)"
return
fi
diff --git a/sfeedrc.5 b/sfeedrc.5
index 12c8f87..93863ff 100644
--- a/sfeedrc.5
+++ b/sfeedrc.5
@@ -1,4 +1,4 @@
-.Dd January 11, 2021
+.Dd January 24, 2021
.Dt SFEEDRC 5
.Os
.Sh NAME
@@ -86,6 +86,19 @@ To text-encoding.
By default the tool
.Xr iconv 1
is used.
+.It Fn parse "name" "feedurl" "basesiteurl"
+Parse and convert RSS/Atom XML to the
+.Xr sfeed 5
+TSV format.
+.Bl -tag -width Ds
+.It Fa name
+Name of the feed.
+.It Fa feedurl
+Url of the feed.
+.It Fa basesiteurl
+Baseurl of the feed links.
+This argument allows to fix relative item links.
+.El
.It Fn filter "name"
Filter
.Xr sfeed 5