X-Git-Url: http://git.plutz.net/?p=httpchat;a=blobdiff_plain;f=index.cgi;h=2daabd824e750495e42b0bf42f318fbd5b576476;hp=e84122c467e0cf93e4c75a77db9f2d1f3ce7eeaa;hb=1cd692ed9af229a0118fb77b77bcbd889a0adcbf;hpb=6b73b82389a8963365d1b437d76ed2070617598d diff --git a/index.cgi b/index.cgi index e84122c..2daabd8 100755 --- a/index.cgi +++ b/index.cgi @@ -7,110 +7,10 @@ _DATA=. . "$_EXEC/cgilite/session.sh" . "$_EXEC/cgilite/storage.sh" - LOCATION="$(PATH "$PATH_INFO")" LOCATION="${LOCATION#/}" LOCATION="${LOCATION%%/*}" -yield_css(){ - printf 'Content-Type: text/css; charset=utf-8\r\n\r\n' - cat <"$chatfile" - fi - REDIRECT "$(URL "/$LOCATION")" - ;; - channel\ submit) - if [ -f "$chatfile" -a "$channelkey" = "$(POST channelkey)" ]; then - printf "%s %s: %s\n" "$(date +%F_%T)" "$(STRING "$nickname")" "$(POST message |STRING)" >>"$chatfile" - fi - REDIRECT "$(URL "/$LOCATION")" - ;; - channel\ nick) - SET_COOKIE +1209600 "nick=$(POST nickname |URL)" - REDIRECT "$(URL "/$LOCATION")" - ;; - channel\ *) - if [ ! -f "$chatfile" ]; then - yield_page create <<-EOF - [form #nonexist method=POST action="$(URL "/$LOCATION")" - There is no channel named $(HTML "$LOCATION") - [submit "action" "create" Create] - ] - EOF - else - { printf ' - [form #channel method=POST action="%s" - [submit "action" "submit" style="display: none;"] - [input type=hidden name=channelkey value="%s"] - %s [input name="message" autofocus=true][submit "action" "submit" Send!] - ] - ' "$(URL "/$LOCATION")" "$channelkey" "$(settings_menu)" - SHESCAPE='s;[]&<>#."[];\\&;g;' - - printf '[div #chat' - # tail -n30 -f "$chatfile" | { - # read x - # while read -r date nick message; do - # printf '[p .message [span .date %s] [span .nick [span .indicator %s]%s:] [span .message %s]]\n' \ - # "${date#*_}" "${nick%${nick#?}}" "$(UNSTRING "${nick#?}" |HTML)" "$(UNSTRING "$message" |HTML)" - # done - # } - tail -n50 -f "$chatfile" \ - | sed -nuE ' - /^[^ ]+ [^ ]+ [^ ]+$/{ - h; s;^([^ ]+) ([^ ]+) ([^ ]+)$;\1;; s;.*_;;; s;.+;[p .message [span .date &];p; - g; s;^([^ ]+) ([^ ]+) ([^ ]+)$;a\2;; bESC; :A s;.;;; s;(.)(.+);[span .nick [span .indicator \1]\2];p; - g; s;^([^ ]+) ([^ ]+) ([^ ]+)$;b\3;; bESC; :B s;.;;; s;.+;[span .message &]];p; - } - b; :ESC - '"$UNSTRING"' '"$SHESCAPE"' - /^a/bA; /^b/bB; - ' - } |yield_page channel - fi - ;; pubinfo\ *);; front\ *) yield_page front <<-EOF Front