#!/bin/sh

maxtries=10

searxinstances='https://raw.githubusercontent.com/searxng/searx-instances/master/searxinstances/instances.yml'

tries=0
while [ $tries -lt $maxtries ];
do
       searxbase=https://search.stinpriza.org
       #searxbase="$(curl -s ${searxinstances} \
       #       | grep "^http" \
       #       | grep -v "i2p" \
       #       | cut -d':' -f 1-2 \
       #       | shuf -n 1)"
       searxuri="${searxbase}/search?q=water+leaks&categories=images&language=de"

       status="$(curl -s -I "${searxuri}" | grep "^HTTP" | cut -d' ' -f 2)"
       [ "$status" = "200" ] && break
       sleep 1
done

[ "$status" != 200 ] && exit 1

cd /br/gopher/leaks
curdate="$(date +%Y_%m_%d_%H_%M_%S)"
curl -s "${searxuri}" \
       | xml2tsv 2>/dev/null \
       | grep img \
       | cut -f 2 \
       | grep ^src \
       | cut -d'=' -f 2- \
       | while read -r uri;
do
       case "${uri}" in
       /*)
               uri="${searxbase}${uri}"
               ;;
       esac

       outputname="$(mktemp -u leak_${curdate}_XXXXXXX.jpg)"
       while [ -f ${outputname} ];
       do
               outputname="$(mktemp -u leak_${curdate}_XXXXXXX.jpg)"
       done

       curl -s -o "${outputname}" "${uri}" 2>/dev/null
       sleep 1
done

# TODO: Remove duplicates?