Attempt to cut down on spam from greet and bye triggers. Add ping/pong to help deal with flakey connections.?

This commit is contained in:
Storm Dragon
2025-11-13 14:57:45 -05:00
parent c3328e092d
commit 86a640ebe8
4 changed files with 141 additions and 4 deletions

View File

@@ -3,8 +3,28 @@
greetingsFile="triggers/greet/greetings.txt"
# Time tracking to prevent spam from flaky connections
# Track last greet time for each user (in seconds since epoch)
declare -A lastGreetTime
# Only greet if user hasn't been greeted in the last hour (3600 seconds)
currentTime=$(date +%s)
userName="${1,,}"
cooldownPeriod=3600
if [[ -n "${lastGreetTime[$userName]}" ]]; then
timeSinceLastGreet=$((currentTime - lastGreetTime[$userName]))
if [[ $timeSinceLastGreet -lt $cooldownPeriod ]]; then
# User was greeted recently, skip greeting
exit 0
fi
fi
# Update last greet time for this user
lastGreetTime[$userName]=$currentTime
# All names to match are completely lowercase.
case "${1,,}" in
case "$userName" in
storm_dragon)
msg "$2" "my lord, $1: how may I serve you?"
;;