Add exclamatio module and script. - annna - Annna the nice friendly bot. HTML git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/annna/ DIR Log DIR Files DIR Refs DIR Tags DIR README --- DIR commit c0655da913f533290a7600cc2c10507b9915e181 DIR parent b52d60cdecb35f5bd6834f0c5de11c556bbdbe2b HTML Author: Annna Robert-Houdin <annna@bitreich.org> Date: Sat, 7 Jan 2023 22:02:04 +0100 Add exclamatio module and script. Diffstat: A exclamatio | 54 +++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+), 0 deletions(-) --- DIR diff --git a/exclamatio b/exclamatio @@ -0,0 +1,54 @@ +#!/bin/sh + +exclamatiomodbase="$HOME/bin/modules/exclamatio" +exclamatiodb="${exclamatiomodbase}/exclamatio.txt" +# time range for date(1) +maxexclamatiotime="30 seconds" + +function cleanupexclamatiodb { + expirytime="$(date +%s -d "${maxexclamatiotime} ago")" + cat ${exclamatiodb} \ + | while read -r line; + do + settime="$(printf "%s\n" "${line}" | cut -f 3)" + if [ ${settime} -ge ${expirytime} ]; + then + printf "%s\n" "${line}" + fi + done > $exclamatiodb.new + mv $exclamatiodb.new $exclamatiodb +} + +function setexclamatioval { + if [ -n "$(grep "^${1}" "${exclamatiodb}")" ]; + then + sed -i "s,${1}\t.*\t\(.*\),${1}\t${2}\t\1," "${exclamatiodb}" + else + printf "%s\t%d\t%d\n" "${1}" "${2}" "$(date +%s)" >> "${exclamatiodb}" + fi +} + +function getexclamatioval { + exclamatiotag="${1}" + exclamatioval="$(grep -P "^${exclamatiotag}\t" "${exclamatiodb}" | cut -f 2)" + [ -z "${exclamatioval}" ] && printf "0\n" + printf "%s\n" "${exclamatioval}" +} + +function modifyexclamatio { + exclamatiotag="$1" + exclamatioval=$(getexclamatioval "${exclamatiotag}") + newexclamatioval="$(printf "%d%s\n" "${exclamatioval}" "$2" | bc)" + setexclamatioval "${exclamatiotag}" $newexclamatioval + printf "%s = %d\n" "$exclamatiotag" "$newexclamatioval" +} + +function incexclamatio { + modifyexclamatio "$1" " + $2" +} + +cleanupexclamatiodb +exclamatiostr="$1" +incexclamatio "${exclamatiostr}" "1" +printf "%s\n" "$(getexclamatioval "${exclamatiostr}")" +