exclamatio - 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
---
exclamatio (1358B)
---
1 #!/bin/sh
2
3 exclamatiomodbase="$HOME/bin/modules/exclamatio"
4 exclamatiodb="${exclamatiomodbase}/exclamatio.txt"
5 # time range for date(1)
6 maxexclamatiotime="30 seconds"
7
8 function cleanupexclamatiodb {
9 expirytime="$(date +%s -d "${maxexclamatiotime} ago")"
10 cat ${exclamatiodb} \
11 | while read -r line;
12 do
13 settime="$(printf "%s\n" "${line}" | cut -f 3)"
14 if [ ${settime} -ge ${expirytime} ];
15 then
16 printf "%s\n" "${line}"
17 fi
18 done > $exclamatiodb.new
19 mv $exclamatiodb.new $exclamatiodb
20 }
21
22 function setexclamatioval {
23 if [ -n "$(grep "^${1}" "${exclamatiodb}")" ];
24 then
25 sed -i "s,${1}\t.*\t\(.*\),${1}\t${2}\t\1," "${exclamatiodb}"
26 else
27 printf "%s\t%d\t%d\n" "${1}" "${2}" "$(date +%s)" >> "${exclamatiodb}"
28 fi
29 }
30
31 function getexclamatioval {
32 exclamatiotag="${1}"
33 exclamatioval="$(grep -P "^${exclamatiotag}\t" "${exclamatiodb}" | cut -f 2)"
34 [ -z "${exclamatioval}" ] && printf "0\n"
35 printf "%s\n" "${exclamatioval}"
36 }
37
38 function modifyexclamatio {
39 exclamatiotag="$1"
40 exclamatioval=$(getexclamatioval "${exclamatiotag}")
41 newexclamatioval="$(printf "%d%s\n" "${exclamatioval}" "$2" | bc)"
42 setexclamatioval "${exclamatiotag}" $newexclamatioval
43 }
44
45 function incexclamatio {
46 modifyexclamatio "$1" " + $2"
47 }
48
49 cleanupexclamatiodb
50 exclamatiostr="$1"
51 incexclamatio "${exclamatiostr}" "1"
52 printf "%s\n" "$(getexclamatioval "${exclamatiostr}")"
53