Files
OrbitTv/VERIFICATION-0.19.0.md
pauljdandClaude Opus 5.5 a4724841f7
pauljd/davidson-ci: Davidson CI / quality (push) Failing after 1m54s
pauljd/davidson-ci: Davidson CI / ai-review (push) Successful in 54s
Add full library import and request missing metadata (0.19.0)
The box test showed year, rating, date and original title empty because
requests never asked for them. Asks for them now, restarts the test
import so no rows lack them, and adds an import-everything option paced
for a library of about 132,000 titles. Fits the coverage table on screen.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-11-01 18:53:32 +00:00

2.6 KiB

Orbit TV 0.19.0 — full library import

Follows the results from 0.17 and 0.18 on the box. Includes everything since 0.16.

Evidence from Paul's account, 1 November 2026: 98,441 films, 34,103 series, 1,053,303 episodes. Metadata sample of 20 of each: genres 20/20 on films and series, external IDs 20/20 on films and series and 18/20 on episodes, studios 16/20 and 19/20, cast and crew 20/20 and 16/20, overview 20/20. Year, rating, date and original title were 0/20 on all types because those requests didn't ask for them; the tags, runtime and episode rows were off the screen. Import test: 1,000 titles in 11 seconds with no provider errors over 4,000 titles, about 266 bytes per title, and genres on 3,998 and external IDs on 3,997 of the 4,000. Year and rating were 0 there too. The box has 21 GB free; the full import should take about 35 MB.

Changes: both queries now request ProductionYear, OfficialRating, PremiereDate, OriginalTitle and Tags. The catalogue stores original title and tags too. Its database version rises to 2, which discards the earlier test import, because those rows have no year or rating; the import restarts from the beginning. Import everything runs all pages (about 663) with the same 1.5-second pause, about half an hour, keeping the screen on while it runs. It stops on a rate-limit, login or permission reply, or on leaving the screen, and carries on from the last whole page. Import next 1,000 stays. The summary refreshes every five pages, as it counts the whole table. The coverage table is two side-by-side tables, so all fields fit on screen.

Limits: Fields lists aren't all in Emby's published options, so whether the provider honours each new name is only proved by the next run. An unrecognised name may return nothing. Pause-to-pause pacing hasn't been tried over a whole library, and neither the box nor the provider has done this much in one go. After Dark and series searches still don't request year and rating; change them once this run confirms the names.

Validation: offline assembleDebug, testDebugUnitTest and lintDebug passed; 108 unit tests (107 existing, 1 new), zero failures or errors, no lint errors. A new fixture test imports a 132,544-title library to the end: 663 pages, 662 pauses, no repeated page. SQLite code and real provider behaviour need the Xiaomi test. No private account, catalogue, media or device data was read by tools, beyond the counts Paul sent and free storage on the box.

Rollback: reinstall outputs/revision-0.18.0 if needed. Its database version is older, so clear Orbit TV's app data first and sign in again, which also removes channels and saved setup. Otherwise revert this commit.