add tshirt filter - annna - Annna the nice friendly bot.
 (HTM) git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/annna/
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Tags
 (DIR) README
       ---
 (DIR) commit 92d55bc9f27aaa4426da461601a42c7635ad8071
 (DIR) parent b222826ef4b61793d0324c90da2316948cbec91d
 (HTM) Author: Anders Damsgaard <anders@adamsgaard.dk>
       Date:   Tue, 17 Jan 2023 09:01:30 +0100
       
       add tshirt filter
       
       Signed-off-by: Annna Robert-Houdin <annna@bitreich.org>
       
       Diffstat:
         M annna-message-common                |       8 ++++++--
         A tshirt-design                       |      75 +++++++++++++++++++++++++++++++
       
       2 files changed, 81 insertions(+), 2 deletions(-)
       ---
 (DIR) diff --git a/annna-message-common b/annna-message-common
       @@ -930,6 +930,7 @@ case "${text}" in
        "${ircuser}, please technodrugs #"*|\
        "${ircuser}, please thin #"*|\
        "${ircuser}, please torture #"*|\
       +"${ircuser}, please tshirt #"*|\
        "${ircuser}, please trumpapprove #"*|\
        "${ircuser}, please wat #"*|\
        "${ircuser}, please widen #"*|\
       @@ -949,7 +950,7 @@ case "${text}" in
        
                        # outfile and outpath filtering for the cache.
                        case "${filter}" in
       -                antidepressant|ritual|putin)
       +                antidepressant|ritual|putin|tshirt)
                                outfile="${outfile%.*}.jpg"
                                outpath="${outpath%.*}.jpg"
                                ;;
       @@ -979,7 +980,7 @@ case "${text}" in
                        if [ -s "${outpath}" ];
                        then
                                annna-say -s "${server}" -c "${channel}" "${user}, gopher://bitreich.org/9/memecache/filter/${outfile}"
       -                        exit 0 
       +                        exit 0
                        fi
        
                        case "${filter}" in
       @@ -992,6 +993,9 @@ case "${text}" in
                        putin)
                                putin-os "${inpath}" "${outpath}" 2>&1 >/dev/null
                                ;;
       +                tshirt)
       +                        tshirt-design "${inpath}" "${outpath}" 2>&1 >/dev/null
       +                        ;;
                        *)
                                ffmpeg-effect "${filter}" "${inpath}" "${outpath}" 2>&1 >/dev/null
                                ;;
 (DIR) diff --git a/tshirt-design b/tshirt-design
       @@ -0,0 +1,75 @@
       +#!/bin/sh
       +
       +mediadir=/home/annna/bin/modules/filter-media
       +
       +die() {
       +        printf '%s\n' "$1" >&2
       +        exit 1
       +}
       +
       +if test $# -ne 2; then
       +        die "usage: ${0##*/} <file> <outimagefile>"
       +fi
       +
       +mimetype="$(file -ib "$1")"
       +case "$mimetype" in
       +        video/*)
       +                in="$(mktemp).jpg"
       +                ffmpeg -i "$1" -frames:v 1 "$in";;
       +        image/*)
       +                in="$1";;
       +        *)
       +                die "file type '${mimetype}' not supported";;
       +esac
       +
       +shirt="$(shuf -n 1 -e "${mediadir}"/tshirt*.jpg)"
       +
       +case "$shirt" in
       +        */tshirt1.jpg)
       +                size=400x600
       +                geometry=+0+50
       +                rotate=-3 ;;
       +        */tshirt2.jpg)
       +                size=350x400
       +                geometry=-10-75
       +                rotate=0 ;;
       +        */tshirt3.jpg)
       +                size=180x350
       +                geometry=+0+50
       +                rotate=-2 ;;
       +        */tshirt4.jpg)
       +                size=200x450
       +                geometry=-10+50
       +                rotate=0 ;;
       +        */tshirt5.jpg)
       +                size=200x450
       +                geometry=+5+100
       +                rotate=0 ;;
       +        */tshirt6.jpg)
       +                size=300x450
       +                geometry=+5-50
       +                rotate=0 ;;
       +        */tshirt7.jpg)
       +                size=400x550
       +                geometry=+5+0
       +                rotate=0 ;;
       +        */tshirt8.jpg)
       +                size=300x500
       +                geometry=-15+80
       +                rotate=-2 ;;
       +        *)
       +                die "unknown tshirt: $tshirt";;
       +esac
       +
       +convert "$shirt" \
       +        \( "${in}" \
       +                -matte \
       +                -virtual-pixel transparent \
       +                -background transparent \
       +                -resize "$size" \
       +                -transparent white \
       +                -rotate "$rotate" \
       +        \) \
       +        -geometry "$geometry" \
       +        -gravity center \
       +        -composite "$2"