From be3fd21c1ab855efc5c7b9e6f71920c9f834f399 Mon Sep 17 00:00:00 2001 From: Michael De Roover Date: Sat, 26 Dec 2020 12:32:10 +0100 Subject: [PATCH] Admin commands, Markdown escaping, and minor improvements --- konata.sh | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/konata.sh b/konata.sh index 6438616..5e82911 100755 --- a/konata.sh +++ b/konata.sh @@ -8,8 +8,10 @@ chat=$(jq -r '.message.chat.id' <<< $input) user=$(jq -r '.message.from.username' <<< $input) sendmsg(){ + # Escape any special characters first, see https://0x0.st/NO7J. + fmt=$(sed 's/[][`~!@#$%^&*()-_=+{}\|;:",<.>/?'"'"']/\\&/g' <<< $1 | sed 's/\t//g') curl -X POST "https://api.telegram.org/bot$token/sendMessage" \ - -d "chat_id=$chat" -d "text=$1" + -d "chat_id=$chat" -d "parse_mode=markdownv2" -d "text=$fmt" } alive(){ @@ -21,10 +23,13 @@ hiya(){ } stat(){ + admin total=$(grep MemTotal /proc/meminfo | awk '{print $2}') avail=$(grep MemAvailable /proc/meminfo | awk '{print $2}') used=$(bc <<< "$total-$avail") - sendmsg "I am using $used KB of memory." + sendmsg "$(uptime | cut -c2-) + I am using ${used}K of memory and \ + $(df -h / | tail -n1 | awk '{print $3}') of storage." } cv(){ @@ -38,6 +43,18 @@ id(){ sendmsg "Chat ID: $chat" } +fail(){ + sendmsg "Sorry, you are not allowed to use this command!" + exit 1 +} + +admin(){ + case $user in + ghnou) continue ;; + *) fail ;; + esac +} + case "$cmd" in /alive*) alive ;; /stat*) stat ;;