Counts how many sampled films, series and episodes carry each metadata field, so the catalogue and preset design rests on measured data. Three bounded reads on demand; counts only, nothing saved, and channels and schedules are untouched. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2.1 KiB
Orbit TV 0.17.0 — metadata coverage check
Approved scope: the read-only coverage check in docs/roadmap.md. Includes the 0.16 tuning screen.
Flow: Menu → Connect Emby → Check metadata coverage → Check metadata coverage. One press sends three GET /Items requests (Movie, Series, Episode), each Limit=20, SortBy=Random, Fields=Genres,Overview,People,ProviderIds,Studios, images and user data disabled. At most 20 records per type are read, and foreign types, unsafe IDs and duplicates aren't counted. The screen shows per-type counts for genres, overview, year, content rating, external IDs, studios, cast and crew, air or release date, original title, tags, runtime, series name, season and episode number. A 15-second cooldown applies between runs, and a rate-limit, expired-login or permission reply stops the check.
Nothing is saved: results sit in screen state outside RememberedState, hold counts only, and are dropped when the session closes. Channels, schedules, saved setup and the playback allowlist are untouched. Saved data format is unchanged from 0.16.
Limits: Fields lists only options in Emby's documented getItems reference, so PremiereDate, OriginalTitle and tags are counted only if the provider returns them by default. A zero for those may mean not returned, not absent. Whether the provider honours SortBy=Random is unverified. Results are a sample, not a library total.
Validation: offline assembleDebug, testDebugUnitTest and lintDebug passed; 96 unit tests (87 existing, 9 new), zero failures or errors, no lint errors. New fixture tests cover request bounds and token placement, per-type counts, malformed fields, a server ignoring the limit, foreign and duplicate records, no library values in results, rate-limit and login stops, cancellation, and the session sample and playback allowlist staying unchanged. No private account, catalogue, media or device data was read by tools. Remote focus, screen fit and real provider results need the Xiaomi test.
Rollback: reinstall outputs/revision-0.16.0, or revert this commit.
Reference: https://dev.emby.media/reference/RestAPI/ItemsService/getItems.html