Adding #rich-tesla-professor tag. - 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 5686e1821c5d41273285bea49afc9f8018fda908
(DIR) parent da438992f6895dfec46e39bbb2fb409ed8c97c7f
(HTM) 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
+