- 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
- ;;
-esac
+ printf '%s: %s\r\n' Refresh 1
+ { printf '
+ [form #channel method="POST"
+ [submit "action" "submit" style="display: none;"]
+ [hidden "session_key" "%s"][hidden "channelkey" "%s"][hidden "timenonce" "%s"]
+ [a .settings href="?settings#nick" Settings][input autocomplete="off" name="message" autofocus=true][submit "action" "submit" Send!]
+ ]
+ ' "$SESSION_KEY" "$channelkey" "$_DATE"
+ SHESCAPE='s;[]&<>#."[];\\&;g;'
+
+ while sleep 10; do printf '\n'; done &
+ printf '[div #chat'
+ tail --pid $$ -n50 -f "$chatfile" \
+ | sed -nuE '
+ /^[0-9-]{10}_[0-9:]{8}+ [^ ]+ [^ ]+$/{
+ 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;
+ }
+ /^NICKNAMES: .*/{
+ s;^NICKNAMES: ;;; h; s;^.*$;[div .nicklist [h2 Nicknames];p; g;
+ :NICKLIST
+ h; s;^/([^/]+)/.*$;c\1;; bESC :C
+ s;^.([^?])(.*)$;[a .nick href="/~\1\2" \1\2];p;
+ s;^.(\?)(.*)$;[span .nick [span .indcator \1]\2];p;
+ g; s;/[^/]+/;;; /.+/bNICKLIST s;^.*$;];p;
+ b;
+ }
+ b; :ESC
+ '"$UNSTRING"' '"$SHESCAPE"'
+ /^a/bA; /^b/bB; /^c/bC;
+ '
+ } |yield_page channel
+
+ nicklist leave
+fi