URI: 
       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