Commit Graph

3 Commits

Author SHA1 Message Date
cottongin
e2fbd52009 fix: format IRC ACTION messages as * nick action * and strip CTCP delimiters
CTCP ACTION messages (/me) were relayed with raw \x01 bytes, rendering
as boxed-X characters in OwnCast. Detect the ACTION pattern, extract the
body, and format it like traditional IRC clients. Also strip \x01 in
irc_format as a safety net for other CTCP leakage.

Made-with: Cursor
2026-03-12 16:37:46 -04:00
cottongin
196997f728 fix: HTML-escape IRC username in Owncast chat, fix WebSocket auth, fix echo suppression
- Escape angle brackets around IRC username so Owncast doesn't swallow
  them as HTML tags (&lt;nick&gt; instead of <nick>)
- Register a chat user via POST /api/chat/register to obtain an
  accessToken, then pass it as a query param when connecting to /ws
  (Owncast closes the WebSocket immediately without one)
- Cache the access token across reconnections; re-register only on
  rejection
- Add ws_display_name config option (default "IRC Bridge")
- Fix echo suppression: record_sent and is_echo now both compare
  raw body instead of mismatched formatted/raw values

Made-with: Cursor
2026-03-12 14:06:41 -04:00
cottongin
a2314ba50f feat: add WebSocket task for Owncast chat with reconnect
Made-with: Cursor
2026-03-10 21:57:35 -04:00