40 lines
876 B
Plaintext
40 lines
876 B
Plaintext
|
#!/bin/sh
|
||
|
|
||
|
# get configuration & data directories
|
||
|
DATA="$HOME/.cache/trss"
|
||
|
CONFIG="$HOME/.config/trss"
|
||
|
|
||
|
# make sure these directories are in place
|
||
|
mkdir -p "$DATA"
|
||
|
mkdir -p "$CONFIG"
|
||
|
|
||
|
import_information () {
|
||
|
FEEDS=""
|
||
|
for i in "$CONFIG"/*; do
|
||
|
. "$i"
|
||
|
[ -z "$FEEDS" ] && FEEDS="$NAME" || FEEDS="$FEEDS $NAME"
|
||
|
done
|
||
|
}
|
||
|
|
||
|
synchronize () {
|
||
|
for i in $FEEDS; do
|
||
|
url="$(get_feed_attr "$i" feed)"
|
||
|
printf "> synchronizing feed %s via url %s\n" "$i" "$url"
|
||
|
curl "$url" -so "$DATA/${i}.xml"
|
||
|
|
||
|
# generate sfeed formatted file
|
||
|
printf "> creating sfeed compound feed file for feed %s\n" "$i"
|
||
|
cat "$DATA/${i}.xml" | sfeed | cat - "$DATA/${i}.sfeed" | uniq >> "$DATA/${i}.tmp.sfeed"
|
||
|
mv "$DATA/${i}.tmp.sfeed" "${DATA}/${i}.sfeed"
|
||
|
done
|
||
|
}
|
||
|
|
||
|
get_feed_attr () {
|
||
|
eval "printf '%s' \${$1_$2}"
|
||
|
}
|
||
|
|
||
|
import_information
|
||
|
synchronize
|
||
|
printf "%s\n" "$FEEDS"
|
||
|
get_feed_attr seirdy humanname
|