Fixed reminder for real this time.
This commit is contained in:
@@ -2,9 +2,11 @@
|
|||||||
[ -f functions.sh ] && source functions.sh
|
[ -f functions.sh ] && source functions.sh
|
||||||
|
|
||||||
userNick="$1"
|
userNick="$1"
|
||||||
shift
|
chan="$2"
|
||||||
chan="$1"
|
# $3 contains the entire argument string (e.g., "30s hello world")
|
||||||
shift
|
# We need to split it into time and message
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
set -- $3 # Intentionally unquoted to split into separate words
|
||||||
time="$1"
|
time="$1"
|
||||||
shift
|
shift
|
||||||
|
|
||||||
@@ -46,18 +48,26 @@ if [[ -z "$*" ]]; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg "$chan" "ok, $userNick, reminder in $time."
|
# Convert message to array for easier parsing
|
||||||
reminderMessage="$*"
|
# shellcheck disable=SC2206
|
||||||
|
msgArray=($*)
|
||||||
|
targetNick="$userNick" # Default target is the person who set the reminder
|
||||||
|
|
||||||
# Handle 'tell' syntax for targeting other users
|
# Handle 'tell' syntax for targeting other users
|
||||||
if [[ "$reminderMessage" =~ ^[Tt]ell[[:space:]]+ ]]; then
|
if [[ "${msgArray[0],,}" == "tell" ]]; then
|
||||||
targetNick="$(echo "${reminderMessage#[T|t]ell }" | cut -d ' ' -f1)"
|
# Extract target nickname (second element, strip trailing punctuation)
|
||||||
# Validate nick doesn't contain invalid characters
|
extractedNick="${msgArray[1]}"
|
||||||
if [[ "$targetNick" =~ ^[a-zA-Z0-9_\[\]\{\}\\|\`\^\-]+$ ]]; then
|
extractedNick="${extractedNick%:}"
|
||||||
userNick="$targetNick"
|
extractedNick="${extractedNick%,}"
|
||||||
reminderMessage="${reminderMessage#[Tt]ell }"
|
|
||||||
reminderMessage="${reminderMessage#* }"
|
# Set target and rebuild message without "tell nickname"
|
||||||
fi
|
targetNick="$extractedNick"
|
||||||
|
# Rebuild message from element 2 onward
|
||||||
|
reminderMessage="${msgArray[*]:2}"
|
||||||
|
else
|
||||||
|
reminderMessage="$*"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
sleep "$timeInSeconds" && msg "$chan" "$userNick: $reminderMessage" &
|
msg "$chan" "ok, $userNick, reminder in $time."
|
||||||
|
|
||||||
|
sleep "$timeInSeconds" && msg "$chan" "$targetNick: $reminderMessage" &
|
||||||
|
|||||||
Reference in New Issue
Block a user