From 51265f08cb9b19ebb01375d05057fdbc338b6355 Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Thu, 12 Dec 2024 17:07:16 +0800 Subject: add build for rss feeds --- www/scripts/update-feeds.sh | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100755 www/scripts/update-feeds.sh (limited to 'www/scripts') diff --git a/www/scripts/update-feeds.sh b/www/scripts/update-feeds.sh new file mode 100755 index 0000000..8dff837 --- /dev/null +++ b/www/scripts/update-feeds.sh @@ -0,0 +1,28 @@ +#! /bin/bash + +cd /srv/rss +mkdir -p feeds + +LIST=${LIST:?} +curlOpts='--insecure' + +cat "${LIST}" | while read url interval tags; do + feed=feeds/${url//\//%2F} + unset next_fetch; declare -i next_fetch=0 + + # Get time of next fetch + if [ -f $feed ]; then + interval=$(<<<"$interval" sed 's/m/minute/; s/h/hour/; s/d/day/;') + next_fetch=$(date -d "$(date -r $feed) + $interval" +'%s') + fi + + # Do not fetch feed if interval covers current time + [ $(date +'%s') -lt $next_fetch ] && continue + + # Set limit of HTTP connections + while [ $(jobs -p | wc -l) -ge 10 ]; do + sleep 0.5; + done + + curl -s $curlOpts $url -o $feed || echo Fail to fetch $url >&2 & +done -- cgit v1.2.3-70-g09d2