24 Commits
Author SHA1 Message Date
yusufipek 6bcbd5400b Rewrite dashboard and overlay, single /events stream, static client served by the backend
Backend: one SSE stream for messages, selection, poll and connection status; reconnect with backoff; no on-disk Innertube session cache; mock only with MOCK_CHAT=1; binds to 127.0.0.1; serves client/out so production runs on one port. Full URLs for links YouTube truncates in chat.

Client: components split out, Lucide icons, stream title and status, on-air strip, search, pause, keyboard shortcuts, overlay settings dialog. Overlay themes, position, size, animation and auto-hide via URL, sized for 1080p and scaled with the source. New blueprint theme for the brand background.

Removed Tailwind, better-sqlite3, zod, the timezone helpers, Cline memory bank and AGENTS.md. Added ESLint, node:test tests and CI.
2026-09-02 22:05:58 +03:00
Yusuf İpek 19b412a82a feat: Add combined start script, correct backend path, and allow nullable poll event. 2025-12-28 18:46:52 +03:00
Yusuf İpek 0ae6014886 fix(backend): remove verbose message trimming logs
Removes the console.log spam that was triggered on every incoming chat message
when the store exceeded MAX_REGULAR_MESSAGES. The trimming logic still works
silently in the background.
2025-11-07 20:04:45 +03:00
Yusuf İpek 311b5f392b feat(youtubei): ensure unique message IDs in high-frequency chats
Add ID deduplication mechanism to handle cases where YouTube message IDs might not be unique in high-frequency chat scenarios. The system now tracks seen IDs and appends a counter suffix when duplicates are encountered, preventing message ID collisions.
2025-10-25 21:59:55 +03:00
Yusuf İpek 4a4b2407b6 feat: add YouTube live poll support
Add backend support for YouTube live polls including:
- Poll event handling and state tracking
- New `/poll/current` endpoint for current poll data
- Server-sent events stream at `/poll/stream` for real-time updates
- Poll emitter for broadcasting poll changes to clients
2025-10-12 23:04:57 +03:00
Yusuf İpek d3185b43c3 feat: add leaderboard rank extraction and display in chat and overlay components, including CSS styling for leaderboard badge 2025-10-12 21:48:05 +03:00
Yusuf İpek 1678117d16 feat: add support for super stickers in chat and overlay components, including image display, accessibility labels, and backend parsing enhancements 2025-10-12 21:37:53 +03:00
Yusuf İpek 3ed9a4ded4 feat: implement intelligent message trimming to preserve superchats and memberships while limiting regular messages 2025-10-11 23:45:30 +03:00
Yusuf İpek 7b43932fa6 feat: implement image proxy for YouTube CDN images with caching to prevent rate limits 2025-10-11 20:34:25 +03:00
Yusuf İpek 693ee684ab feat: integrate timezone support for message timestamps in chat and overlay components 2025-10-11 20:13:41 +03:00
Yusuf İpek fce6ca5708 feat: add support for custom emojis and membership badges in chat display 2025-10-09 01:05:13 +03:00
Yusuf İpek 5a33b01a11 chore: remove debug logging and refine UI polish for overlay components 2025-10-08 23:15:23 +03:00
Yusuf İpek f85b2a942f feat: add debug logging and fix gift membership badge extraction 2025-10-08 22:31:29 +03:00
Yusuf İpek c131913b8a feat: add YouTube channel ID to chat message data model 2025-10-06 00:02:02 +03:00
Yusuf İpek e8f42a5676 refactor: improve superchat UI and gift membership handling 2025-10-05 23:41:32 +03:00
Yusuf İpek f1dd130bc0 feat: extract and display membership gift counts in chat messages 2025-10-05 19:13:06 +03:00
Yusuf İpek aef59fb291 fix: improve currency regex and split membership gift types for better tracking 2025-10-05 04:42:47 +03:00
Yusuf İpek 773d35e85e refactor: simplify superchat amount extraction and display logic 2025-10-05 04:42:47 +03:00
Yusuf İpek 29492fb75e feat: enhance superchat parsing and redesign dashboard with tabbed layout 2025-10-05 04:42:47 +03:00
Yusuf İpek 5d96e2e3ff feat: enhance YouTube chat ingestion with support for gift memberships
Expand YouTube chat ingestion to handle membership gift events including purchases and redemptions. Update SuperChat extraction to support multiple paid message types and improve field name handling. Display membership level in overlay for gift events.
2025-10-05 04:42:47 +03:00
Yusuf İpek c973b8b176 feat: improve superchat and membership handling with fallback fields and UI panels 2025-10-05 04:42:47 +03:00
Yusuf İpek 18d2f78516 feat: add YouTube Live chat connection controls with UI 2025-10-05 04:42:47 +03:00
Yusuf İpek 47c9a67362 feat: enhance chat UI with badges, superchat and membership display 2025-10-05 04:42:47 +03:00
Yusuf İpek 99e1762068 refactor: migrate from pnpm workspaces to single-package structure with shared types 2025-10-05 04:42:47 +03:00