URI: 
       image-search - annna - Annna the nice friendly bot.
  HTML git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/annna/
   DIR Log
   DIR Files
   DIR Refs
   DIR Tags
   DIR README
       ---
       image-search (903B)
       ---
            1 #!/bin/sh
            2 
            3 searxbase="https://baresearch.org"
            4 maxtries=10
            5 
            6 die() {
            7         printf '%s: error: %s\n' "${0%%*/}" "$1"
            8         exit "${2:-1}"
            9 }
           10 
           11 get_image() {
           12         q="$(printf '%s' "$1" | sed 's/ /%20/g')"
           13         s="$(printf '%s' "$1" | sed 's/ /_/g')"
           14         searxuri="${searxbase}/search?q=${q}&categories=images"
           15         curl -s "${searxuri}" \
           16                 | xml2tsv 2>/dev/null \
           17                 | grep img \
           18                 | cut -f 2 \
           19                 | grep ^src \
           20                 | cut -d'=' -f 2- \
           21                 | while read -r uri;
           22         do
           23                 case "${uri}" in
           24                 /*)
           25                         uri="${searxbase}${uri}"
           26                         ;;
           27                 esac
           28 
           29                 out="${s}.jpg"
           30                 if curl -s "${uri}" -o "$out"
           31                 then
           32                         printf '%s\n' "$out"
           33                         case "$(file -ib "$out")" in
           34                         image/jpeg)
           35                                 return
           36                                 ;;
           37                         image/*)
           38                                 magick convert "$out" "${out}.tmp.jpg"
           39                                 mv "${out}.tmp.jpg" "$out"
           40                                 return
           41                                 ;;
           42                         esac
           43                 fi
           44 
           45                 if test "$i" -gt 0
           46                 then
           47                         sleep 1
           48                 fi
           49                 i=$((i + 1))
           50         done
           51 }
           52 
           53 if test $# -lt 1
           54 then
           55         exit 0
           56 fi
           57 
           58 i=0
           59 for q in "$@"
           60 do
           61         get_image "$q"
           62 done