use an empty case entry instead of checking [ -n "$x" ] before it - 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 9a192ffcabc9b67d60a1db9843ad8100397a6db4
 (DIR) parent cb97a0dd368eed35d9db94ffdc0c577788dfe168
 (HTM) Author: Josuah Demangeon <me@josuah.net>
       Date:   Sat,  2 Jul 2022 13:57:23 +0200
       
       use an empty case entry instead of checking [ -n "$x" ] before it
       
       This helps with flattening the script:
       
       before:
       
               if [ -n "$x" ]
               then
                       case $x in
                       "content") ... ;;
                       "content") ... ;;
                       esac
               fi
       
       after
       
               case $x in
               "") ;;
               "content") ... ;;
               "content") ... ;;
               esac
       
       The patch is more readable when ignoring spaces: git diff -w
       
       Signed-off-by: Annna Robert-Houdin <annna@bitreich.org>
       
       Diffstat:
         M annna-message-common                |     271 +++++++++++++++----------------
       
       1 file changed, 135 insertions(+), 136 deletions(-)
       ---
 (DIR) diff --git a/annna-message-common b/annna-message-common
       @@ -33,8 +33,6 @@ regeximatch() {
        
        [ "$user" = "${botname}" ] && exit 0
        
       -uri="$(printf "%s\n" "${text}" \
       -        | sed -n '/.*\(https\{0,1\}:\/\/[^ ]\{1,\}\).*/s//\1/p')"
        case "${text}" in
        *\#nospoil*)
                ;;
       @@ -42,160 +40,161 @@ case "${text}" in
                query=${text#**::} query=${query%%::*}
                annna-say -s "${server}" -c "${channel}" "$(dalle-gen-emoji "${query}")" &
                ;;
       -*)
       -        if [ -n "${uri}" ]
       -        then
       -                tmpf=$(mktemp)
       -                fetch-uri "${uri}" > "${tmpf}"
       -                urititle="$(grabtitle < "${tmpf}")"
       +*http*://*)
       +        uri="$(printf "%s\n" "${text}" \
       +                | sed -n '/.*\(https\{0,1\}:\/\/[^ ]\{1,\}\).*/s//\1/p')"
        
       -                # Set below and annna will concatenate at the end.
       -                # Subtitle URI.
       -                sturi=""
       -                # Replacement URI.
       -                nuri=""
       -                # Replacement URI display string.
       -                nuris=""
       -                # html2text content.
       -                curi=""
       -                # Set to 0, if some URI content should be shown.
       -                nocuri=1
       -                # Screenshot.
       -                suri=""
       +        tmpf=$(mktemp)
       +        fetch-uri "${uri}" > "${tmpf}"
       +        urititle="$(grabtitle < "${tmpf}")"
        
       -                # titleend=1 will not output any further.
       -                titleend=0
       -                outputstr=""
       +        # Set below and annna will concatenate at the end.
       +        # Subtitle URI.
       +        sturi=""
       +        # Replacement URI.
       +        nuri=""
       +        # Replacement URI display string.
       +        nuris=""
       +        # html2text content.
       +        curi=""
       +        # Set to 0, if some URI content should be shown.
       +        nocuri=1
       +        # Screenshot.
       +        suri=""
        
       -                if [ -n "$urititle" ];
       -                then
       -                        case "${urititle}" in
       -                        *Gunther*|*GUNTHER*|*Günther*)
       -                                annna-say -s "${server}" -c "${channel}" "Oh Günther! ❤  ❤  ❤  ${urititle}"
       -                                ;;
       -                        *\|\ Cloudflare*)
       -                                annna-say -s "${server}" -c "${channel}" "Mind your own business! We got clownflared: gopher://bitreich.org/0/ascii/clownflare.vt"
       -                                titleend=1
       -                                ;;
       -                        esac
       -                fi
       +        # titleend=1 will not output any further.
       +        titleend=0
       +        outputstr=""
        
       -                case "${uri}" in
       -                *github.com/*/blob/*)
       -                        urltitle=""
       -                        nuris="$(printf '%s' "${uri}" | sed 's/blob/raw/')"
       -                        nocuri=0
       -                        ;;
       +        case "${urititle}" in
       +        "")
       +                ;;
       +        *Gunther*|*GUNTHER*|*Günther*)
       +                annna-say -s "${server}" -c "${channel}" "Oh Günther! ❤  ❤  ❤  ${urititle}"
       +                ;;
       +        *\|\ Cloudflare*)
       +                annna-say -s "${server}" -c "${channel}" "Mind your own business! We got clownflared: gopher://bitreich.org/0/ascii/clownflare.vt"
       +                titleend=1
       +                ;;
       +        esac
        
       -                *imgur.com/*)
       -                        nuris="$(youtube-dl -g "${uri}")"
       -                        if [ $? -gt 0 ];
       -                        then
       -                                nuris=""
       -                        fi
       -                        ;;
       -                *xkcd.com/*)
       -                        nuris="$(xkcd-uri "${uri}")"
       -                        ;;
       -                *imdb.com/title/*)
       -                        movietitle="$(imdb2gopherbay "${uri}" | sed 's, ,+,g')"
       -                        if [ -n "${movietitle}" ];
       -                        then
       -                                nuris="gopher://bay.parazy.de:666/1/q.dcgi?${movietitle}"
       -                        fi
       -                        ;;
       -                *themoviedb.org/movie/*)
       -                        movietitle="$(themoviedb2gopherbay "${uri}" | sed 's, ,+,g')"
       -                        if [ -n "${movietitle}" ];
       -                        then
       -                                nuris="gopher://bay.parazy.de:666/1/q.dcgi?${movietitle}"
       -                        fi
       -                        ;;
       -                *lichess.org/????????|*lichess.org/????????/|*lichess.org/????????/black|*lichess.org/????????/white)
       -                        nuris="$(printf "%s\n" "${uri}" \
       -                                | sed 's,https://lichess.org\(/[^ ]*\)$,\1,; s,^/\([^/]*\)/black$,/black/\1,; s,/white,,; s,\(.*\),https://lichess1.org/game/export/gif\1.gif,;')"
       -                        ;;
       -                *www.npr.org/*)
       +        case "${uri}" in
       +        "")
       +                ;;
       +        *github.com/*/blob/*)
       +                urltitle=""
       +                nuris="$(printf '%s' "${uri}" | sed 's/blob/raw/')"
       +                nocuri=0
       +                ;;
       +
       +        *imgur.com/*)
       +                nuris="$(youtube-dl -g "${uri}")"
       +                if [ $? -gt 0 ];
       +                then
       +                        nuris=""
       +                fi
       +                ;;
       +        *xkcd.com/*)
       +                nuris="$(xkcd-uri "${uri}")"
       +                ;;
       +        *imdb.com/title/*)
       +                movietitle="$(imdb2gopherbay "${uri}" | sed 's, ,+,g')"
       +                if [ -n "${movietitle}" ];
       +                then
       +                        nuris="gopher://bay.parazy.de:666/1/q.dcgi?${movietitle}"
       +                fi
       +                ;;
       +        *themoviedb.org/movie/*)
       +                movietitle="$(themoviedb2gopherbay "${uri}" | sed 's, ,+,g')"
       +                if [ -n "${movietitle}" ];
       +                then
       +                        nuris="gopher://bay.parazy.de:666/1/q.dcgi?${movietitle}"
       +                fi
       +                ;;
       +        *lichess.org/????????|*lichess.org/????????/|*lichess.org/????????/black|*lichess.org/????????/white)
       +                nuris="$(printf "%s\n" "${uri}" \
       +                        | sed 's,https://lichess.org\(/[^ ]*\)$,\1,; s,^/\([^/]*\)/black$,/black/\1,; s,/white,,; s,\(.*\),https://lichess1.org/game/export/gif\1.gif,;')"
       +                ;;
       +        *www.npr.org/*)
       +                post="$(printf '%s\n' "${uri}" | cut -d / -f 7)"
       +                if [ -n "${post}" ];
       +                then
       +                        nuri="https://text.npr.org/s.php?sId=${post}"
       +                        nuris="text only: ${nuri}"
       +                fi
       +                ;;
       +        *www.reddit.com*)
       +                nuri="$(printf '%s\n' "${uri}" | sed "s;www.reddit.com;old.reddit.com;")"
       +                nuris="old.reddit: ${nuri}"
       +                fetch-uri "${nuri}" > "${tmpf}"
       +                if [ -n "${uri#*www.reddit.com/r/*}" ];
       +                then
       +                        subreddit="$(printf '%s\n' "${uri}" | cut -d / -f 5)"
                                post="$(printf '%s\n' "${uri}" | cut -d / -f 7)"
                                if [ -n "${post}" ];
                                then
       -                                nuri="https://text.npr.org/s.php?sId=${post}"
       -                                nuris="text only: ${nuri}"
       +                                guri="gopher://gopherddit.com/1/cgi-bin/reddit.cgi?view&${post}&${subreddit}&10"
       +                        else
       +                                guri="gopher://gopherddit.com/1/cgi-bin/reddit.cgi?menu&${subreddit}&10"
                                fi
       -                        ;;
       -                *www.reddit.com*)
       -                        nuri="$(printf '%s\n' "${uri}" | sed "s;www.reddit.com;old.reddit.com;")"
       -                        nuris="old.reddit: ${nuri}"
       -                        fetch-uri "${nuri}" > "${tmpf}"
       -                        if [ -n "${uri#*www.reddit.com/r/*}" ];
       -                        then
       -                                subreddit="$(printf '%s\n' "${uri}" | cut -d / -f 5)"
       -                                post="$(printf '%s\n' "${uri}" | cut -d / -f 7)"
       -                                if [ -n "${post}" ];
       -                                then
       -                                        guri="gopher://gopherddit.com/1/cgi-bin/reddit.cgi?view&${post}&${subreddit}&10"
       -                                else
       -                                        guri="gopher://gopherddit.com/1/cgi-bin/reddit.cgi?menu&${subreddit}&10"
       -                                fi
       -                                nuris="${nuri} ; gopherdit: ${guri}"
       -                        fi
       -                        nocuri=0
       -                        ;;
       -                *twitter.com*)
       -                        ninstance="$(nitter-instance | sed 's,\.,\\\.,g')"
       -                        nuri="$(printf "%s\n" "${uri}" | sed "s;\(mobile\.\)\{0,1\}twitter\.com;${ninstance};")"
       +                        nuris="${nuri} ; gopherdit: ${guri}"
       +                fi
       +                nocuri=0
       +                ;;
       +        *twitter.com*)
       +                ninstance="$(nitter-instance | sed 's,\.,\\\.,g')"
       +                nuri="$(printf "%s\n" "${uri}" | sed "s;\(mobile\.\)\{0,1\}twitter\.com;${ninstance};")"
       +                fetch-uri "${nuri}" > "${tmpf}"
       +                urititle="$(curl-grabtitle "${nuri}")"
       +                suri="$(screenshot-paste "${nuri}")"
       +                nuris="nitter: ${nuri}"
       +                nocuri=0
       +                ;;
       +        *en.wikipedia.org/wiki*)
       +                if ! regeximatch "$uri" '\.(jpg,bmp,gif,png,tiff,avi,mp4,webm,mkv,pdf,ps,eps)$';
       +                then
       +                        nuri="$(printf '%s\n' "${uri}" | sed -e "s;.*en.wikipedia.org/wiki;gopher://gopherpedia.com/0;" -e "s;#.*$;;")"
       +                        nuris="$(printf 'gopherpedia: %s\n' "${nuri}")"
                                fetch-uri "${nuri}" > "${tmpf}"
       -                        urititle="$(curl-grabtitle "${nuri}")"
       -                        suri="$(screenshot-paste "${nuri}")"
       -                        nuris="nitter: ${nuri}"
                                nocuri=0
       -                        ;;
       -                *en.wikipedia.org/wiki*)
       -                        if ! regeximatch "$uri" '\.(jpg,bmp,gif,png,tiff,avi,mp4,webm,mkv,pdf,ps,eps)$';
       -                        then
       -                                nuri="$(printf '%s\n' "${uri}" | sed -e "s;.*en.wikipedia.org/wiki;gopher://gopherpedia.com/0;" -e "s;#.*$;;")"
       -                                nuris="$(printf 'gopherpedia: %s\n' "${nuri}")"
       -                                fetch-uri "${nuri}" > "${tmpf}"
       -                                nocuri=0
       -                        fi
       -                        ;;
       -                *youtube.com/*|*youtu.be/*)
       -                        nuri="https://yewtu.be/${uri#https*://*/}"
       -                        fetch-uri "${nuri}" > "${tmpf}"
       -                        urititle="$(curl-grabtitle "${nuri}")"
       -                        sturi="$(subtitle-paste "${uri}")"
       -                        nuris="invidious: ${nuri}"
       +                fi
       +                ;;
       +        *youtube.com/*|*youtu.be/*)
       +                nuri="https://yewtu.be/${uri#https*://*/}"
       +                fetch-uri "${nuri}" > "${tmpf}"
       +                urititle="$(curl-grabtitle "${nuri}")"
       +                sturi="$(subtitle-paste "${uri}")"
       +                nuris="invidious: ${nuri}"
       +                nocuri=0
       +                ;;
       +        *)
       +                mimetype="$(file -b --mime-type "${tmpf}")"
       +                case "${mimetype}" in
       +                text/*)
                                nocuri=0
                                ;;
       -                *)
       -                        mimetype="$(file -b --mime-type "${tmpf}")"
       -                        case "${mimetype}" in
       -                        text/*)
       -                                nocuri=0
       -                                ;;
       -                        esac
       -                        ;;
                        esac
       +                ;;
       +        esac
        
       -                if [ $titleend -eq 0 ];
       +        if [ $titleend -eq 0 ];
       +        then
       +                if [ $nocuri -eq 0 ];
                        then
       -                        if [ $nocuri -eq 0 ];
       +                        if [ -z "${curi}" ];
                                then
       -                                if [ -z "${curi}" ];
       -                                then
       -                                        curi="$(html2text < "${tmpf}" | /br/bin/bitreich-paste)"
       -                                fi
       -                                outputstr="${outputstr} content: ${curi} ;"
       +                                curi="$(html2text < "${tmpf}" | /br/bin/bitreich-paste)"
                                fi
       -
       -                        [ -n "${nuris}" ] && outputstr="${outputstr} ${nuris} ;"
       -                        [ -n "${urititle}" ] && outputstr="${outputstr} title: ${urititle} ;"
       -                        [ -n "${suri}" ] && outputstr="${outputstr} screen: ${suri} ;"
       -                        [ -n "${sturi}" ] && outputstr="${outputstr} subtitles: ${sturi} ;"
       -                        annna-say -s "${server}" -c "${channel}" "${outputstr}"
       +                        outputstr="${outputstr} content: ${curi} ;"
                        fi
       -                rm -f "${tmpf}"
       +
       +                [ -n "${nuris}" ] && outputstr="${outputstr} ${nuris} ;"
       +                [ -n "${urititle}" ] && outputstr="${outputstr} title: ${urititle} ;"
       +                [ -n "${suri}" ] && outputstr="${outputstr} screen: ${suri} ;"
       +                [ -n "${sturi}" ] && outputstr="${outputstr} subtitles: ${sturi} ;"
       +                annna-say -s "${server}" -c "${channel}" "${outputstr}"
                fi
       +        rm -f "${tmpf}"
                ;;
        esac