sfeed_mastodon/docs/sfeedrc.example
2023-11-19 23:12:09 -06:00

61 lines
1.8 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# This is an sfeedrc(5) configuration file for sfeed_update(1).
# The key difference is that it truncates your feed files at every update,
# keeping only new posts. This saves you the work of filtering out old posts.
# You probably want to EDIT this.
sfeedpath="$HOME/.config/sfeed_mastodon/"
# You probably want to EDIT this.
# This contains a list of all your feeds, in the format:
# feed NAME URL DOMAIN ENCODING
feeds() {
feed "Planet GNU" "https://planet.gnu.org/rss20.xml" "https://planet.gnu.org" "UTF-8"
feed "Tiriftjo" "https://tirifto.xwx.moe/en/news.atom" "https://tirifto.xwx.moe" "UTF-8"
}
# This overrides sfeed_updates default merge() function.
# This makes it so that only new and unseen posts are put in the feed file.
# This is done by storing the date of the latest post in an extended attribute,
# for comparison during the next update..
merge() {
local oldfile="$2"
local newfile="$3"
local previous_max_date="$(attr -q -g sfeed_latest "$oldfile" 2> /dev/null)"
if test -z "$previous_max_date"; then
previous_max_date=0
fi
# Update the date of the last-processed post.
local latest_date="$(latest_date "$newfile")"
attr -qs sfeed_latest -V "$latest_date" "$oldfile" 2> /dev/null
# Output only new and unprocessed posts.
after_date "$newfile" "$previous_max_date"
}
# Given an sfeed file, this returns the date of the latest post (in seconds
# since the UNIX epoch).
latest_date() {
local file="$1"
awk -F '\t' \
'$1 > latest { latest = $1 } END { print latest }' \
"$file"
}
# This outputs only lines of an sfeed file with a date after the given min_date
# (in seconds since UNIX epoch).
after_date() {
local file="$1"
local min_date="$2"
awk -F '\t' -v min_date="$min_date" \
'$1 > min_date { print $0 }' \
"$file"
}