brcon-score - annna - Annna the nice friendly bot. | |
git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws6… | |
Log | |
Files | |
Refs | |
Tags | |
README | |
--- | |
brcon-score (1520B) | |
--- | |
1 #!/bin/sh | |
2 | |
3 karmamodbase="$HOME/bin/modules/brcon-score" | |
4 karmadb="${karmamodbase}/score-$(date +%Y).txt" | |
5 | |
6 function setkarmaval { | |
7 if [ -n "$(grep -P "^${1}\t" "${karmadb}")" ]; | |
8 then | |
9 sed -i "s,^${1}\t.*,${1}\t${2}," "${karmadb}" | |
10 else | |
11 printf "%s\t%d\n" "${1}" "${2}" >> "${karmadb}" | |
12 fi | |
13 } | |
14 | |
15 function parsekarma { | |
16 karmatag="$(printf "%s\n" "${1}" | sed -e 's,^\([a-zA-Z_0-9]*\).… | |
17 [ -z "${karmatag}" ] && karmatag="karma" | |
18 printf "%s\n" "${karmatag}" | |
19 } | |
20 | |
21 function getkarmaval { | |
22 karmatag="${1}" | |
23 karmaval="$(grep -P "^${karmatag}\t" "${karmadb}" | cut -f 2)" | |
24 [ -z "${karmaval}" ] && printf "0\n" | |
25 printf "%s\n" "${karmaval}" | |
26 } | |
27 | |
28 function modifykarma { | |
29 karmatag="$1" | |
30 karmaval=$(getkarmaval "${karmatag}") | |
31 newkarmaval="$(printf "%d%s\n" "${karmaval}" "$2" | bc)" | |
32 setkarmaval "${karmatag}" $newkarmaval | |
33 printf "%s = %d\n" "$karmatag" "$newkarmaval" | |
34 } | |
35 | |
36 function inckarma { | |
37 modifykarma "$1" " + $2" | |
38 } | |
39 | |
40 function deckarma { | |
41 modifykarma "$1" " - $2" | |
42 } | |
43 | |
44 function parsechangevalue { | |
45 printf "%s\n" "${1}" | sed -e 's,.*[+|-]=\([0-9\-]*\),\1,' | |
46 } | |
47 | |
48 karmastr="$1" | |
49 karmatag="$(parsekarma "${karmastr}")" | |
50 case "${karmastr}" in | |
51 *" "*) | |
52 ;; | |
53 *","*) | |
54 ;; | |
55 *+=*) | |
56 inckarma "${karmatag}" "$(parsechangevalue "${karmastr}")" | |
57 ;; | |
58 *++) | |
59 inckarma "${karmatag}" "1" | |
60 ;; | |
61 *-=*) | |
62 deckarma "${karmatag}" "$(parsechangevalue "${karmastr}")" | |
63 ;; | |
64 *--) | |
65 deckarma "${karmatag}" "1" | |
66 ;; | |
67 "${karmatag}") | |
68 karmaval="$(getkarmaval "${karmatag}")" | |
69 printf "%s = %d\n" "$karmatag" "$karmaval" | |
70 ;; | |
71 *) | |
72 sort -r -k 2 "${karmadb}" | column -t | |
73 ;; | |
74 esac | |
75 |