Add brcon-score system for upcoming brcon2023. - annna - Annna the nice friendl… | |
git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws6… | |
Log | |
Files | |
Refs | |
Tags | |
README | |
--- | |
commit a17d8c98291940275e88fa872143baaddcf951ba | |
parent 49235cbd876bff8cb6a793373af83519b65c931c | |
Author: Annna Robert-Houdin <[email protected]> | |
Date: Sat, 5 Aug 2023 09:03:49 +0200 | |
Add brcon-score system for upcoming brcon2023. | |
Diffstat: | |
M annna-message-common | 30 ++++++++++++++++++++++++++++++ | |
A brcon-score | 75 +++++++++++++++++++++++++++++… | |
2 files changed, 105 insertions(+), 0 deletions(-) | |
--- | |
diff --git a/annna-message-common b/annna-message-common | |
@@ -9,6 +9,7 @@ hashtagfile="${modbase}/hashtags/hashtags.txt" | |
idontcaredb="${modbase}/i-dont-care/i-dont-care.txt" | |
printnhashtags=2 | |
brmembers="__20h__ Evil_Bob chripo posativ quinq stateless solene josuah paraz… | |
+referees="__20h__" | |
server="$1" | |
ircuser="$(cat ${cfgbase}/${server}/ircuser)" | |
@@ -258,6 +259,9 @@ case "${text}" in | |
"${ircuser}, what the karma?") | |
annna-say -s "${server}" -c "${channel}" "${user}, gophers://bitreich.… | |
;; | |
+"${ircuser}, what the brcon score?") | |
+ annna-say -s "${server}" -c "${channel}" "${user}, gophers://bitreich.… | |
+ ;; | |
"${ircuser}, what the shame?") | |
annna-say -s "${server}" -c "${channel}" "${user}, gophers://bitreich.… | |
;; | |
@@ -1316,6 +1320,9 @@ case "${text}" in | |
*"arma is a bitch"*) | |
annna-say -s "${server}" -c "${channel}" "${user}, I object! Karma is … | |
;; | |
+"score "*) | |
+ # For referee scoring. | |
+ ;; | |
*++|*--|*-=?|*+=?|*+=-?|*-=-?) | |
karmatext="$(karma "${text}")" | |
if [ -n "$karmatext" ]; | |
@@ -1349,3 +1356,26 @@ case "${text}" in | |
;; | |
esac | |
+# Referee Level. | |
+isreferee=0 | |
+for referee in $referees; | |
+do | |
+ [ "$user" = "$referee" ] && isreferee=1 | |
+done | |
+[ $isreferee -lt 1 ] && exit | |
+ | |
+case "${text}" in | |
+"score "*) | |
+ text="$(printf "%s\n" "${text}" | cut -d' ' -f2-)" | |
+ case "${text}" in | |
+ *++|*--|*-=?|*+=?|*+=-?|*-=-?) | |
+ scoretext="$(brcon-score "${text}")" | |
+ if [ -n "$scoretext" ]; | |
+ then | |
+ annna-say -s "${server}" -c "${channel}" "score: ${sco… | |
+ fi | |
+ ;; | |
+ esac | |
+ ;; | |
+esac | |
+ | |
diff --git a/brcon-score b/brcon-score | |
@@ -0,0 +1,75 @@ | |
+#!/bin/sh | |
+ | |
+karmamodbase="$HOME/bin/modules/brcon-score" | |
+karmadb="${karmamodbase}/score-$(date +%Y).txt" | |
+ | |
+function setkarmaval { | |
+ if [ -n "$(grep -P "^${1}\t" "${karmadb}")" ]; | |
+ then | |
+ sed -i "s,^${1}\t.*,${1}\t${2}," "${karmadb}" | |
+ else | |
+ printf "%s\t%d\n" "${1}" "${2}" >> "${karmadb}" | |
+ fi | |
+} | |
+ | |
+function parsekarma { | |
+ karmatag="$(printf "%s\n" "${1}" | sed -e 's,^\([a-zA-Z_0-9]*\).*$,\1,… | |
+ [ -z "${karmatag}" ] && karmatag="karma" | |
+ printf "%s\n" "${karmatag}" | |
+} | |
+ | |
+function getkarmaval { | |
+ karmatag="${1}" | |
+ karmaval="$(grep -P "^${karmatag}\t" "${karmadb}" | cut -f 2)" | |
+ [ -z "${karmaval}" ] && printf "0\n" | |
+ printf "%s\n" "${karmaval}" | |
+} | |
+ | |
+function modifykarma { | |
+ karmatag="$1" | |
+ karmaval=$(getkarmaval "${karmatag}") | |
+ newkarmaval="$(printf "%d%s\n" "${karmaval}" "$2" | bc)" | |
+ setkarmaval "${karmatag}" $newkarmaval | |
+ printf "%s = %d\n" "$karmatag" "$newkarmaval" | |
+} | |
+ | |
+function inckarma { | |
+ modifykarma "$1" " + $2" | |
+} | |
+ | |
+function deckarma { | |
+ modifykarma "$1" " - $2" | |
+} | |
+ | |
+function parsechangevalue { | |
+ printf "%s\n" "${1}" | sed -e 's,.*[+|-]=\([0-9\-]*\),\1,' | |
+} | |
+ | |
+karmastr="$1" | |
+karmatag="$(parsekarma "${karmastr}")" | |
+case "${karmastr}" in | |
+*" "*) | |
+ ;; | |
+*","*) | |
+ ;; | |
+*+=*) | |
+ inckarma "${karmatag}" "$(parsechangevalue "${karmastr}")" | |
+ ;; | |
+*++) | |
+ inckarma "${karmatag}" "1" | |
+ ;; | |
+*-=*) | |
+ deckarma "${karmatag}" "$(parsechangevalue "${karmastr}")" | |
+ ;; | |
+*--) | |
+ deckarma "${karmatag}" "1" | |
+ ;; | |
+"${karmatag}") | |
+ karmaval="$(getkarmaval "${karmatag}")" | |
+ printf "%s = %d\n" "$karmatag" "$karmaval" | |
+ ;; | |
+*) | |
+ sort -r -k 2 "${karmadb}" | column -t | |
+ ;; | |
+esac | |
+ |