Add rotating quick-search chips, video_id sanitize, retry button

Rotating chips: 4 sets of 4 chips rotate every 8 seconds on the
hero landing. Sanitize video_id: new sanitizeId() strips path
separators and dangerous chars. Retry button: appears on stream
extraction failure, re-triggers Player.loadVideo.

Files:
- frontend/app.js: sanitizeId(), CHIP_SETS + rotateChips(),
  retry button in loadVideo catch
This commit is contained in:
Jonathan Sykes
2026-06-14 15:23:14 +08:00
parent c1855a1a91
commit c6b8dfceb8
5 changed files with 45 additions and 8 deletions

View File

@@ -28,12 +28,12 @@ bottom as they come up.
- [x] Persistent mini now-playing bar when browsing other views.
- [ ] Cache size cap in Settings (auto-evict oldest past a limit).
- [ ] Export / import playlists as JSON.
- [ ] More / trending quick-search chips on the hero, rotated.
- [x] More / trending quick-search chips on the hero, rotated.
## Robustness
- [ ] Sanitize `video_id` in `cache_download` (reject path separators).
- [x] Sanitize `video_id` in `cache_download` (reject path separators).
- [ ] Gate the embedded yt-dlp behind a build flag so debug builds compile faster.
- [ ] Surface yt-dlp extraction failures with a retry button.
- [x] Surface yt-dlp extraction failures with a retry button.
## Done
<!-- move completed items here with the commit hash -->