diff --git a/docs/catalog-rows.md b/docs/catalog-rows.md index 84be3bb..bd6d8f3 100644 --- a/docs/catalog-rows.md +++ b/docs/catalog-rows.md @@ -44,6 +44,10 @@ row (`renderCatalogRows`), sent as `hiddenCatalogRows` by `saveHome`. `PhonePage theScriptsCatalogCallsMatchTheApi` checks the script's calls and bodies against the routes; the script has not run in a browser. +Nothing has run on the Streamer yet: schema 12, the TMDB list calls and the addon manifest fetch +(tested only against MockWebServer), and the phone page's catalog parts wait on +`docs/manual-testing.md` "Catalog rows and TMDB rows on Home". + ## What a catalog row is A **catalog row** is one list of titles that a source publishes and that the household chose to diff --git a/docs/manual-testing.md b/docs/manual-testing.md index 839a373..53dd487 100644 --- a/docs/manual-testing.md +++ b/docs/manual-testing.md @@ -284,6 +284,58 @@ may predate the change being checked. A schema change gets its own entry here: i "Nothing to save.". - **Record in:** `docs/home-settings-api.md`. +## Catalog rows and TMDB rows on Home + +- **Changed:** schema 12 (`MIGRATION_11_12`: `catalog_rows`, `home_rows.catalogRowId`); Home shows + one row per ticked addon catalog and four TMDB rows (Popular movies, Popular series, Trending + movies, Trending series), on by default, fetched each time Home comes to the front and at most + hourly per row (`CatalogRowsRefresher`, `docs/catalog-rows.md`). On the phone page each addon + and the TMDB key under Sources has a **Catalogs** list of ticks with **Save catalogs**, and the + Home screen section has a Catalog rows list of on/off switches; catalog rows move in the Rows + list. TMDB's list calls (`TmdbClient.list`) and the manifest fetch behind the Catalogs list + (`RoomSourceCatalogStore`) have met only MockWebServer, and none of the page parts has been + opened in a real browser. Until the track lands, build the debug APK from branch + `track/catalog-rows` rather than main. +- **Check** (a paired phone on the tailnet, a TMDB key, and the Cinemeta addon at + `https://v3-cinemeta.strem.io/manifest.json`). Follow the log with + `scripts/device-log.sh follow`. + 1. With a schema 11 debug build (main before this track lands) on the Streamer, install the + branch's debug APK with `adb install -r`, never uninstalling first, and open Home. + 2. Under Sources, save the TMDB key if it is not saved yet, then open another app and return + Home. + 3. Add Cinemeta under Sources if it is not there, press **Catalogs** on it, tick its popular + movies and popular series catalogs, and press **Save catalogs**. Open another app and + return Home. + 4. On the TV, open a title from a Cinemeta row and one from a TMDB row. + 5. In the Home screen section, move a catalog row above Watchlist and save; then switch off + Trending series under Catalog rows and save; then press **Catalogs** on the TMDB key, untick + Popular series, and press **Save catalogs**. + 6. Open another app and return Home twice within a minute. +- **Passes when:** + 1. Home opens with no recovery screen, and the earlier rows and order are as they were. + 2. Four TMDB rows appear, labelled "Popular movies · " and so on, each with + about 20 titles with posters; the log has four `catalog_row_refreshed source=TMDB` with + `titles` above 0. + 3. The Catalogs list names Cinemeta's catalogs with their type; any that need a genre or + search say "(needs a search, so it cannot be a row)" and cannot be ticked. Saving says + "Saved the catalogs of ." and logs + `api_source_catalogs_saved type=STREMIO_ADDON`. Back on Home, two rows labelled + " · " show up to 40 titles each, and the log has two `catalog_row_refreshed + source=STREMIO_ADDON` with `titles` near 40 and a small `dropped`. + 4. Each opens the title's detail screen with its name, facts and Play, as from any other row. + 5. Home shows the moved row above Watchlist without a restart; after the switch the + Trending series row is gone from Home and the log has `api_catalog_rows_switched`; after + the untick Popular series is gone too, its switch under Catalog rows is off, and the log has + `api_source_catalogs_saved type=TMDB`. Reloading the page keeps all three changes. + 6. No new `catalog_row_refreshed` lines (the hourly gate). No log line in the whole run holds + a catalog name, a title, the TMDB key, the manifest URL or a host. +- **Also check, an hour or more later:** turn the Streamer's Wi-Fi off, open another app and + return Home. Every catalog row keeps its titles, and the log has `catalog_row_refresh_failed` + with `failure=ADDON_UNAVAILABLE` for the Cinemeta rows and `failure=TMDB_UNAVAILABLE` for the + TMDB rows. Turn Wi-Fi back on and Tailscale with it. +- **Record in:** step 1 in `docs/storage.md`, section "Schema and migrations" (the schema 12 + item); the rest in `docs/catalog-rows.md`, a new section "Measured on the Streamer". + ## Email sign-in link from a real mail server - **Changed:** schema 11 (`MIGRATION_10_11`: `user_emails`, `mail_account`, `signin_links`); an