Attempt to fix bug in the cooldown for greet and bye.
This commit is contained in:
@@ -2,18 +2,21 @@
|
||||
[ -f functions.sh ] && source functions.sh
|
||||
|
||||
farewellsFile="triggers/bye/farewells.txt"
|
||||
byeTrackingDir="/tmp/stormbot_bye"
|
||||
|
||||
# Time tracking to prevent spam from flaky connections
|
||||
# Track last bye time for each user (in seconds since epoch)
|
||||
declare -A lastByeTime
|
||||
# Create tracking directory if it doesn't exist
|
||||
mkdir -p "$byeTrackingDir"
|
||||
|
||||
# Only say bye if user hasn't been farewelled in the last hour (3600 seconds)
|
||||
currentTime=$(date +%s)
|
||||
userName="${1,,}"
|
||||
cooldownPeriod=3600
|
||||
userTrackingFile="$byeTrackingDir/$userName"
|
||||
|
||||
if [[ -n "${lastByeTime[$userName]}" ]]; then
|
||||
timeSinceLastBye=$((currentTime - lastByeTime[$userName]))
|
||||
if [[ -f "$userTrackingFile" ]]; then
|
||||
lastByeTime=$(cat "$userTrackingFile")
|
||||
timeSinceLastBye=$((currentTime - lastByeTime))
|
||||
if [[ $timeSinceLastBye -lt $cooldownPeriod ]]; then
|
||||
# User was farewelled recently, skip bye message
|
||||
exit 0
|
||||
@@ -21,7 +24,7 @@ if [[ -n "${lastByeTime[$userName]}" ]]; then
|
||||
fi
|
||||
|
||||
# Update last bye time for this user
|
||||
lastByeTime[$userName]=$currentTime
|
||||
echo "$currentTime" > "$userTrackingFile"
|
||||
|
||||
# All names to match are completely lowercase.
|
||||
case "$userName" in
|
||||
|
||||
@@ -2,18 +2,21 @@
|
||||
[ -f functions.sh ] && source functions.sh
|
||||
|
||||
greetingsFile="triggers/greet/greetings.txt"
|
||||
greetTrackingDir="/tmp/stormbot_greet"
|
||||
|
||||
# Time tracking to prevent spam from flaky connections
|
||||
# Track last greet time for each user (in seconds since epoch)
|
||||
declare -A lastGreetTime
|
||||
# Create tracking directory if it doesn't exist
|
||||
mkdir -p "$greetTrackingDir"
|
||||
|
||||
# Only greet if user hasn't been greeted in the last hour (3600 seconds)
|
||||
currentTime=$(date +%s)
|
||||
userName="${1,,}"
|
||||
cooldownPeriod=3600
|
||||
userTrackingFile="$greetTrackingDir/$userName"
|
||||
|
||||
if [[ -n "${lastGreetTime[$userName]}" ]]; then
|
||||
timeSinceLastGreet=$((currentTime - lastGreetTime[$userName]))
|
||||
if [[ -f "$userTrackingFile" ]]; then
|
||||
lastGreetTime=$(cat "$userTrackingFile")
|
||||
timeSinceLastGreet=$((currentTime - lastGreetTime))
|
||||
if [[ $timeSinceLastGreet -lt $cooldownPeriod ]]; then
|
||||
# User was greeted recently, skip greeting
|
||||
exit 0
|
||||
@@ -21,7 +24,7 @@ if [[ -n "${lastGreetTime[$userName]}" ]]; then
|
||||
fi
|
||||
|
||||
# Update last greet time for this user
|
||||
lastGreetTime[$userName]=$currentTime
|
||||
echo "$currentTime" > "$userTrackingFile"
|
||||
|
||||
# All names to match are completely lowercase.
|
||||
case "$userName" in
|
||||
|
||||
Reference in New Issue
Block a user