case $(POST action) in
create)
- if [ ! -f "$chatfile" ]; then
+ if mkdir "${_DATA}/${LOCATION}"; then
{ randomid; printf ' '; STRING "$nickname"; echo; } >"$chatfile"
fi
REDIRECT "$(URL "/$LOCATION")"
;;
submit)
- if [ -f "$chatfile" -a "$channelkey" = "$(POST channelkey)" ]; then
+ read lasttime x <<-EOFread
+ $(tail -n 50 "$chatfile" |grep -F " $(STRING "$nickname"): " |tail -n1)
+ EOFread
+ if [ "$lasttime" ]; then
+ lasttime="$(date -d "${lasttime%_*} ${lasttime#*_}" +%s)"
+ else
+ lasttime=0
+ fi
+ if [ -f "$chatfile" -a "$channelkey" = "$(POST channelkey)" -a "$(POST timenonce)" -gt "$lasttime" ]; then
printf "%s %s: %s\n" "$(date +%F_%T)" "$(STRING "$nickname")" "$(POST message |STRING)" >>"$chatfile"
fi
REDIRECT "$(URL "/$LOCATION")"
{ printf '
[form #channel method="POST"
[submit "action" "submit" style="display: none;"]
- [input type=hidden name=channelkey value="%s"]
+ [input type=hidden name=channelkey value="%s"][input type=hidden name=timenonce value="%s"]
[a .settings href="?settings#nick" Settings][input autocomplete="off" name="message" autofocus=true][submit "action" "submit" Send!]
]
- ' "$channelkey"
+ ' "$channelkey" "$_DATE"
SHESCAPE='s;[]&<>#."[];\\&;g;'
while sleep 10; do printf '\n'; done &