49 line
1.2 KiB
Bash
Executable File
49 line
1.2 KiB
Bash
Executable File
#!/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
|