add meme pointer support - annna - Annna the nice friendly bot. | |
git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws6… | |
Log | |
Files | |
Refs | |
Tags | |
README | |
--- | |
commit f008d349f0a8b0350b482dc0f48e5a24c7f5c2ce | |
parent da84f9338c88f1cdc665237933a5b6025eb3adc0 | |
Author: Anders Damsgaard <[email protected]> | |
Date: Fri, 17 Feb 2023 10:38:22 +0100 | |
add meme pointer support | |
Signed-off-by: Annna Robert-Houdin <[email protected]> | |
Diffstat: | |
M annna-message-common | 23 +++++++++++++++++++++-- | |
A pointer | 38 +++++++++++++++++++++++++++++… | |
2 files changed, 59 insertions(+), 2 deletions(-) | |
--- | |
diff --git a/annna-message-common b/annna-message-common | |
@@ -1147,7 +1147,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) | |
@@ -1157,12 +1157,31 @@ $0 !~ /#nospoil/ { | |
}' | while read -r tag; | |
do | |
[ "${tag}" == "#expand" ] && continue | |
+ case "${tag}" in | |
+ "*"*) | |
+ tag="#${tag#\*}" | |
+ pointer=1;; | |
+ *) | |
+ pointer=0;; | |
+ esac | |
if tagline="$(grep "${tag} " "${hashtagfile}")"; | |
then | |
if [ $nospoil -eq 0 ]; | |
then | |
- annna-say -s "${server}" -c "${channel}" "${tagline% *… | |
+ if [ $pointer -eq 1 ]; | |
+ then | |
+ outfile="*${tag#\#}.jpg" | |
+ outpath="/br/gopher/memecache/filter/${outfile… | |
+ inpath="/br/gopher/memecache/${tagline##*/}" | |
+ [ ! -f "${inpath}" ] && exit 0 | |
+ if pointer "${inpath}" "${outpath}" 2>&1 >/dev… | |
+ then | |
+ annna-say -s "${server}" -c "${channel… | |
+ fi | |
+ else | |
+ annna-say -s "${server}" -c "${channel}" "${ta… | |
+ fi | |
fi | |
else | |
if [ $doexpand -eq 1 ]; | |
diff --git a/pointer b/pointer | |
@@ -0,0 +1,38 @@ | |
+#!/bin/sh | |
+ | |
+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 | |
+ | |
+n="${1##*/}" | |
+n="${n%.*}" | |
+convert \ | |
+ \( \ | |
+ +append \ | |
+ "${in}" \ | |
+ /home/annna/bin/modules/filter-media/pointer.jpg \ | |
+ -resize x500 \ | |
+ \) \ | |
+ -pointsize 50 -fill white \ | |
+ -stroke black -strokewidth 1 \ | |
+ -gravity southwest \ | |
+ -draw "text +10,+10 '${n}'" \ | |
+ -gravity northeast \ | |
+ -draw "text -422,+20 '*${n}'" \ | |
+ "$2" |