URI: 
       add simulation simulator - 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
       ---
   DIR commit 4d6d4eaa7f3062b998498a2f9ee90e830805a42f
   DIR parent 38772dee8f3c08afff361dc904b4fda097b2e67e
  HTML Author: Anders Damsgaard <anders@adamsgaard.dk>
       Date:   Tue, 11 Jan 2022 20:52:06 +0100
       
       add simulation simulator
       
       Signed-off-by: Annna Robert-Houdin <annna@bitreich.org>
       
       Diffstat:
         M annna-message-common                |      12 ++++++++++++
         A imgsearch.sh                        |      61 +++++++++++++++++++++++++++++++
         A simulate.sh                         |      26 ++++++++++++++++++++++++++
       
       3 files changed, 99 insertions(+), 0 deletions(-)
       ---
   DIR diff --git a/annna-message-common b/annna-message-common
       @@ -856,6 +856,18 @@ case "${text}" in
                } &
                exit 0
                ;;
       +"${botname}, please simulate "*" simulator")
       +        q="${text#* please simulate }"
       +        q="${q% simulator*}"
       +        outpath="/br/gopher/p/"
       +        {
       +                if outfile="$(./simulate.sh "$q")"
       +                then
       +                        mv "${outfile}" "${outpath}/"
       +                        annna-say -s "${server}" -c "${channel}" "${user}, gopher://bitreich.org/I/p/${outfile}"
       +                fi
       +        } &
       +        ;;
        "${botname}, please help.")
                # Help Message.
                # TODO: Add multiple line support to annna-say -s "${server}" -c(1) with sleep.
   DIR diff --git a/imgsearch.sh b/imgsearch.sh
       @@ -0,0 +1,61 @@
       +#!/bin/sh
       +searxbase="https://search.stinpriza.org"
       +maxtries=10
       +
       +die() {
       +        printf '%s: error: %s\n' "${0%%*/}" "$1"
       +        exit "${2:-1}"
       +}
       +
       +get_image() {
       +        q="$(printf '%s' "$1" | sed 's/ /%20/g')"
       +        s="$(printf '%s' "$1" | sed 's/ /_/g')"
       +        searxuri="${searxbase}/search?q=${q}&categories=images"
       +        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
       +
       +                out="${s}.jpg"
       +                if curl -s "${uri}" -o "$out"
       +                then
       +                        printf '%s\n' "$out"
       +                        case "$(file -ib "$out")" in
       +                        image/jpeg)
       +                                return
       +                                ;;
       +                        image/*)
       +                                convert "$out" "${out}.tmp.jpg"
       +                                mv "${out}.tmp.jpg" "$out"
       +                                return
       +                                ;;
       +                        esac
       +                fi
       +
       +                if test "$i" -gt 0
       +                then
       +                        sleep 1
       +                fi
       +                i=$((i + 1))
       +        done
       +}
       +
       +if test $# -lt 1
       +then
       +        exit 0
       +fi
       +
       +i=0
       +for q in "$@"
       +do
       +        get_image "$q"
       +done
   DIR diff --git a/simulate.sh b/simulate.sh
       @@ -0,0 +1,26 @@
       +#!/bin/sh
       +
       +die() {
       +        printf '%s: error: %s\n' "${0%%*/}" "$1"
       +        exit "${2:-1}"
       +}
       +
       +for q in "$@"
       +do
       +        year="$(( RANDOM / 1000 + 1990 ))"
       +        if ! img="$(./imgsearch.sh "$q")"
       +        then
       +                die "could not find a image for '$q'"
       +        fi
       +        out="${img%.*}-simulator.jpg"
       +        convert -gravity NorthWest \
       +                -font "Helvetica-Narrow-Oblique" -pointsize 70  \
       +                -stroke '#000C' -strokewidth 2 -annotate +0+10 "$q" \
       +                -stroke none -fill white -annotate +0+10 "$q" \
       +                -stroke '#000C' -strokewidth 2 -annotate +0+80 "Simulator" \
       +                -stroke none -fill white -annotate +0+80 "Simulator" \
       +                -stroke '#000C' -strokewidth 2 -annotate +0+150 "$year" \
       +                -stroke none -fill white -annotate +0+150 "$year" \
       +                "$img" "$out"
       +        printf '%s\n' "$out"
       +done