#!/bin/bash set -x set -e #TODO: make this more robust export RANDRSS_ROOT=$(pwd) random_default=$( shuf -n 1 -i720-753) DEFAULT_PER_ITEM="1-$random_default" echo "Current default sleep seconds range: $DEFAULT_PER_ITEM" if [ $# -lt 1 ] ; then echo "Usage: $0 inputfile fetchersfile [syncnow]" exit fi inputfile="$1" fetchersfile="$2" if [ ! -f "$inputfile" ] ; then echo "inputfile does not exist or is not readable" 1>&2 exit 1 fi if [ ! -f "$fetchersfile" ] ; then echo "fetchersfile does not exist or is not readable" 1>&2 exit 1 fi syncnow=0 if [ "$3" = "syncnow" ] ; then syncnow=1 fi while true ; do shuf "$inputfile" | while read line ; do url=$( echo "$line" | cut -d":" -f1,2 ) output=$( echo "$line" | cut -d":" -f3) range=$( echo "$line" | cut -d":" -f4) sleepfor=0 if [ -n "$range" ] ; then sleepfor=$( shuf -i "$range" -n 1) else sleepfor=$( shuf -i "$DEFAULT_PER_ITEM" -n 1) fi fetcher=$( shuf -n 1 "$fetchersfile" ) [ $syncnow -eq 1 ] || ( echo "Sleeping for $sleepfor seconds for $url, chosen fetcher $fetcher" && sleep "$sleepfor" ) echo "Fetching $url with $fetcher" torsocks ./$fetcher "$url" "$output" || echo "Failed to fetch $url" done [ $syncnow -eq 1 ] && exit done