M4 partial — Search shipped, browse UI live on the Pi

Sidecar gains the 'search' op via rustypipe's
query().search::<VideoItem,_>() — returns id, title, channel, duration,
thumbnails, view_count. Default limit 25.

Addon root directory is no longer a placeholder notification:
- 'Search' entry → ?action=search → keyboard input → result list →
  tap a result to play (each result is a play-action plugin URL).
- 'Play by URL' entry → ?action=play_by_url → keyboard input → PlayMedia.
- ?action=search also accepts inline 'q=…' so JSON-RPC clients can
  drive search without going through the on-TV keyboard (useful for
  share-to-TV from phone + tests).
- Result labels formatted as 'Title  ·  Channel  ·  Duration  ·  Views',
  with thumbnail + Kodi InfoLabels for richer skin views.

Verified via Files.GetDirectory JSON-RPC: 19 well-formatted LTT results
returned for query 'linus tech tips'.

Pending M4: channel browse, playlist browse, pagination, search history.
Addon version 0.0.6.
This commit is contained in:
Sulkta 2026-05-23 11:20:41 -07:00
parent d0316ba311
commit 6a10c0045c
5 changed files with 211 additions and 13 deletions

View file

@ -34,12 +34,19 @@
- [ ] install + smoke on LibreELEC RPi at `kodi-host`
- [ ] (later) hardcoded list of 3 test videos for in-Kodi navigation
## M4 — search + channel browse
## M4 — search + channel browse [PARTIAL]
- [ ] search box → sidecar `{"op":"search","q":"…"}` → results
- [ ] channel browse → `{"op":"channel","id":"…"}`
- [x] sidecar `search` op via rustypipe `query().search::<VideoItem,_>()`
- [x] root directory listing in Kodi addon (Search + Play by URL entries)
- [x] `?action=search` accepts inline `q=` (for JSON-RPC) or prompts keyboard
- [x] result labels show title · channel · duration · view-count, with
`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":"…"}`
- [ ] playlist browse → `{"op":"playlist","id":"…"}`
- [ ] result thumbnails + duration + uploader
- [ ] paginated results (currently capped at limit=30)
- [ ] search history
## M5 — SponsorBlock skipping [DONE]