URI: 
       Adding #rich-tesla-professor tag. - 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 5686e1821c5d41273285bea49afc9f8018fda908
   DIR parent da438992f6895dfec46e39bbb2fb409ed8c97c7f
  HTML Author: Annna Robert-Houdin <annna@bitreich.org>
       Date:   Mon, 20 Feb 2023 18:55:16 +0100
       
       Adding #rich-tesla-professor tag.
       
       Diffstat:
         M annna-message-common                |      43 ++++++++++++++++++++++++++++---
         M modules/hashtags/hashtags.txt       |       1 +
         A revpointer                          |      72 +++++++++++++++++++++++++++++++
       
       3 files changed, 113 insertions(+), 3 deletions(-)
       ---
   DIR diff --git a/annna-message-common b/annna-message-common
       @@ -1159,7 +1159,7 @@ esac
        
        printf '%s' "$text" | awk -v taglimit="$printnhashtags" '
        $0 !~ /#nospoil/ {
       -        while (match($0, /[#*]+[^#^* /"'\'',?!;$\001]+/)) {
       +        while (match($0, /[#*&]+[^#^*^& /"'\'',?!;$\001]+/)) {
                        tag = substr($0, RSTART, RLENGTH)
                        $0 = substr($0, RSTART + RLENGTH)
                        sub(/[.]*$/, "", tag)
       @@ -1169,14 +1169,22 @@ $0 !~ /#nospoil/ {
        }' | while read -r tag;
        do
                [ "${tag}" == "#expand" ] && continue
       +        
       +        set -x
        
                origtag="${tag}"
       +        pointer=0
       +        revpointer=0
                case "${tag}" in
                "*"*)
                        tag="#$(printf "%s\n" "${tag}" | sed "s,^[\*]*,,")"
       -                pointer=1;;
       +                pointer=1
       +                ;;
       +        "&"*)
       +                tag="#$(printf "%s\n" "${tag}" | sed "s,^[\&]*,,")"
       +                revpointer=1
       +                ;;
                *)
       -                pointer=0;;
                esac
        
                if tagline="$(grep "${tag} " "${hashtagfile}")";
       @@ -1212,6 +1220,35 @@ do
                                                outfile="$(basename "${outpath}")"
                                                annna-say -s "${server}" -c "${channel}" "${origtag}: gophers://bitreich.org/9/memecache/filter/${outfile}"
                                        fi
       +                        elif [ $revpointer -eq 1 ];
       +                        then
       +                                inpath="/br/gopher/memecache/${tagline##*/}"
       +                                [ ! -f "${inpath}" ] && exit 0
       +
       +                                outfile="${tag#\#}.jpg"
       +                                # pointy pointers
       +                                outpath="$(printf "%s\n" "${origtag}" \
       +                                | sed 's,\&,&\n,g' \
       +                                | grep "^&" \
       +                                | while read -r asterisk;
       +                                do
       +                                        outfile="&${outfile}"
       +                                        outpath="/br/gopher/memecache/filter/${outfile}"
       +                                        printf "%s\n" "${outpath}"
       +                                        if [ -e "${outpath}" ];
       +                                        then
       +                                                inpath="${outpath}";
       +                                                continue
       +                                        fi
       +                                        revpointer "${inpath}" "${outpath}" 2>&1 >/dev/null;
       +                                        inpath="${outpath}";
       +                                done | tail -n 1)"
       +
       +                                if [ -e "${outpath}" ];
       +                                then
       +                                        outfile="$(basename "${outpath}")"
       +                                        annna-say -s "${server}" -c "${channel}" "${origtag}: gophers://bitreich.org/9/memecache/filter/${outfile}"
       +                                fi
                                else
                                        annna-say -s "${server}" -c "${channel}" "${tagline% *}: ${tagline#* }"
                                fi
   DIR diff --git a/modules/hashtags/hashtags.txt b/modules/hashtags/hashtags.txt
       @@ -11561,6 +11561,7 @@
        #rice-krispies gophers://bitreich.org/9/memecache/rice-krispies.mp4
        #ricebowl gophers://bitreich.org/I/memecache/ricebowl.jpg
        #rich-lamborghini-doctor gophers://bitreich.org/I/memecache/rich-lamborghini-doctor.png
       +#rich-tesla-professor gophers://bitreich.org/I/memecache/rich-tesla-professor.jpg
        #richness gophers://bitreich.org/I/memecache/richness.png
        #ridebike gophers://bitreich.org/I/memecache/ridebike.jpg
        #right gophers://bitreich.org/9/memecache/right.mkv
   DIR diff --git a/revpointer b/revpointer
       @@ -0,0 +1,72 @@
       +#!/bin/sh
       +
       +die() {
       +        [ -n "$1" ] && printf '%s\n' "$1" >&2
       +        exit 1
       +}
       +
       +[ $# -ne 2 ] && die "usage: ${0##*/} <file> <outimagefile>"
       +
       +mimetype="$(file -ib "$1")"
       +rminfile=0
       +case "$mimetype" in
       +video/*)
       +        in="$(mktemp -u tmp.XXXXXXXX.jpg)"
       +        ffmpeg -i "$1" -frames:v 1 "$in"
       +        if [ $? -gt 0 ];
       +        then
       +                [ -e "${in}" ] && rm -f "${in}"
       +                die
       +        fi
       +        rminfile=1
       +        ;;
       +image/png*)
       +        # imagemagick text draw on png files is broken,
       +        # tested on gentoo imagemagick version 7.1.0-48
       +        in="$(mktemp tmp.XXXXXXXX.jpg)"
       +        convert "$1" "$in"
       +        if [ $? -gt 0 ];
       +        then
       +                rm "${in}"
       +                die
       +        fi
       +        rminfile=1
       +        ;;
       +image/*)
       +        in="$1"
       +        ;;
       +*)
       +        die "file type '${mimetype}' not supported"
       +        ;;
       +esac
       +
       +n="${1##*/}"
       +n="${n%.*}"
       +tmp="$(mktemp tmp.XXXXXXXXX.jpg)"
       +convert \
       +        \( \
       +                +append \
       +                "${in}" \
       +                /home/annna/bin/modules/filter-media/revpointer.jpg \
       +                -resize x500 \
       +        \) \
       +        -pointsize 50 -fill white \
       +        -stroke black -strokewidth 1 \
       +        -gravity southwest \
       +        -gravity northeast \
       +        -draw "text -422,+440 '&${n}'" \
       +        "$tmp"
       +#        -draw "text +10,+10 '${n}'" \
       +exitcode=$?
       +if [ $exitcode -eq 0 ];
       +then
       +        cp "${tmp}" "$2"
       +        chmod o+r "$2"
       +fi
       +
       +# cleanup
       +rm "${tmp}"
       +[ $rminfile -eq 1 ] && rm "${in}"
       +
       +exit $exitcode
       +