M4 — channel browse + context-menu drill-down

Sidecar ChannelVideos op via rustypipe channel_videos(). Returns the
channel metadata block (id, name, subscribers, banner) alongside the
items array — same VideoItem shape as search.

Addon refactor: _add_video_items is now the shared listing builder.
Both _search_directory and _channel_directory call it. Each video
result gets a 'Go to <channel>' context-menu entry that
Container.Update's to ?action=channel&id=<channel_id> — so from any
search result, the user can drill into that channel's recent uploads
without going back through search.

Smoke verified on the Pi via Files.GetDirectory: LTT channel
(UCXuqSBlHAE6Xw-yeJA0Tunw) returned 30 recent videos.

Addon version 0.0.7.
This commit is contained in:
Sulkta 2026-05-23 11:24:59 -07:00
parent 6a10c0045c
commit 268c804b91
5 changed files with 143 additions and 38 deletions

View file

@ -43,9 +43,11 @@
`IsPlayable=true`, thumbnails, video InfoLabels
- [x] verified via JSON-RPC: `Files.GetDirectory` returns 19+ formatted
results for "linus tech tips"
- [ ] channel browse → `{"op":"channel_videos","id":"…"}`
- [x] channel browse → `{"op":"channel_videos","id":"…"}` — verified 30
videos returned for LTT's UCXuqSBlHAE6Xw-yeJA0Tunw via JSON-RPC
- [x] context-menu entry on every result: "Go to <channel>" → channel listing
- [ ] playlist browse → `{"op":"playlist","id":"…"}`
- [ ] paginated results (currently capped at limit=30)
- [ ] paginated results (currently capped at limit=30/50)
- [ ] search history
## M5 — SponsorBlock skipping [DONE]