Add shame support to annna. - annna - Annna the nice friendly bot. | |
git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws6… | |
Log | |
Files | |
Refs | |
Tags | |
README | |
--- | |
commit 09c740a9cdf03b74580cb372da069f5b84fc8456 | |
parent 9730d242d08343ad65bdb9c5d20e7a26750579e3 | |
Author: Annna Robert-Houdin <[email protected]> | |
Date: Sun, 3 Apr 2022 17:54:14 +0200 | |
Add shame support to annna. | |
Diffstat: | |
M annna-message-common | 9 ++++++++- | |
A shame | 39 +++++++++++++++++++++++++++++… | |
2 files changed, 47 insertions(+), 1 deletion(-) | |
--- | |
diff --git a/annna-message-common b/annna-message-common | |
@@ -207,6 +207,9 @@ case "${text}" in | |
"${botname}, what the karma?") | |
annna-say -s "${server}" -c "${channel}" "${user}, gopher://bitreich.o… | |
;; | |
+"${botname}, what the shame?") | |
+ annna-say -s "${server}" -c "${channel}" "${user}, gopher://bitreich.o… | |
+ ;; | |
*"don't care"*) | |
dontcaresay="$(shuf -n 1 ${idontcaredb})" | |
annna-say -s "${server}" -c "${channel}" "${user}, ${dontcaresay}" | |
@@ -1045,8 +1048,12 @@ case "${text}" in | |
;; | |
esac | |
-# Always keep the karma last! | |
+# Always keep the karma / shame last! | |
case "${text}" in | |
+*"-shaming"*) | |
+ shametext="$(printf "%s\n" "${text}" | sed 's,.* \(.*-shaming\).*,\1,'… | |
+ shame "${shametext}" | |
+ ;; | |
*++|*--) | |
karma "${text}" | |
;; | |
diff --git a/shame b/shame | |
@@ -0,0 +1,39 @@ | |
+#!/bin/sh | |
+ | |
+shamemodbase="$HOME/bin/modules/shame" | |
+shamedb="${shamemodbase}/shame.txt" | |
+ | |
+function getshameval { | |
+ shameval="$(grep "^$1" "${shamedb}" | cut -f 2)" | |
+ [ -z "${shameval}" ] && printf "0\n" | |
+ printf "%s\n" "${shameval}" | |
+} | |
+ | |
+function setshameval { | |
+ if [ -n "$(grep "^${1}" "${shamedb}")" ]; | |
+ then | |
+ sed -i "s,${1}\t.*,${1}\t${2}," "${shamedb}" | |
+ else | |
+ printf "%s\t%d\n" "${1}" "${2}" >> "${shamedb}" | |
+ fi | |
+} | |
+ | |
+function modifyshame { | |
+ shametag="$1" | |
+ shameval=$(getshameval "${shametag}") | |
+ newshameval="$(printf "%d%s\n" "${shameval}" "$2" | bc)" | |
+ setshameval "${shametag}" $newshameval | |
+} | |
+ | |
+function incshame { | |
+ modifyshame "$1" " + 1" | |
+} | |
+ | |
+shamestr="$1" | |
+if [ -n "${shamestr}" ]; | |
+then | |
+ incshame "${shamestr}" | |
+else | |
+ sort -r -k 2 "${shamedb}" | column -t | |
+fi | |
+ |