Wolfskin TV ratings: use the same rating source as the Wolfskin phone app #23

Closed
opened 2026-10-29 19:43:23 +01:00 by justinzeus · 1 comment
Owner

Owner's words (2026-10-29)

"I also want to add a new goal. the wolfskin ratings currently suck. Now that I'm rolling my own fork, I can change this. I'd like to match the source of the PWA for the wholpin fork."

Outcome

Wolfskin TV shows ratings from the same source as the Wolfskin phone app (the PWA), in the places it shows ratings today. No new screens or features. If matching the source means a visibly different badge or layout, a same-screen before/after capture goes to the owner first and he picks (sketch-adherence rule).

Before state

Before state (what ratings look like today).

The Wolfskin phone app (PWA, served by Conductarr) gets all its ratings from Seerr, the request service the household already runs. For each title it shows Rotten Tomatoes critics and audience percentages, the IMDb score (movies only), and the TMDB user score only when nothing else is available. Each is a small brand badge plus the number, with RT using Rotten Tomatoes' own Fresh/Rotten and Upright/Spilled labels. A score that was not published or has no votes is hidden instead of shown as 0. Only the opened title and the front-page hero show ratings; poster lists and search show none.

Wolfskin TV (the Android TV app) shows ratings from two separate places that do not agree:

  • Titles you own in Jellyfin show whatever Jellyfin has stored: a yellow star with one number (normally the TMDB average) and, only if Jellyfin has one, a tomato with a percentage. Whether the tomato appears depends on Jellyfin's data; it is often missing. The tomato turns "rotten" below 60% by the TV's own rule, not Rotten Tomatoes' label.
  • Titles from Seerr's Discover screens show only Rotten Tomatoes: a critics percentage with a tomato and, for movies, a star number that is really the RT audience percentage divided by ten (65% shows as "6.5 star"). Series never get an audience number. There is no IMDb and no TMDB anywhere on these screens.

So the same film can show a TMDB-style "7.8 star" when owned and "6.5 star, 85% tomato" when requested, and neither matches the phone app. Smaller bugs found on the way: the Discover rating cache is keyed only by the TMDB number, so a movie and a series with the same number can show each other's rating, and a failed lookup is remembered as "no rating" until the app restarts.

The TV can already reach the phone app's source: every phone-app score comes from Seerr endpoints the TV is already signed in to, so no new login, no API keys and no Conductarr connection are needed. One fix is required first: the TV's bundled Seerr API description types the IMDb score as a whole number although Seerr sends decimals like 8.8, so it must be corrected before the IMDb call will work.

Planned approach. First change the Discover screens to the phone app's set of ratings and badges (and fix the cache and spec problems). Second, show the same ratings on Jellyfin-owned movie and series pages, falling back to Jellyfin's own numbers when Seerr is unavailable or has no match.

Constraints

  • Builds on Sonnet; the fork is +yolo for merges once green, reviewed and confident.
  • A TV release or an install on the TV needs the owner's word.
## Owner's words (2026-10-29) "I also want to add a new goal. the wolfskin ratings currently suck. Now that I'm rolling my own fork, I can change this. I'd like to match the source of the PWA for the wholpin fork." ## Outcome Wolfskin TV shows ratings from the same source as the Wolfskin phone app (the PWA), in the places it shows ratings today. No new screens or features. If matching the source means a visibly different badge or layout, a same-screen before/after capture goes to the owner first and he picks (sketch-adherence rule). ## Before state **Before state (what ratings look like today).** The Wolfskin phone app (PWA, served by Conductarr) gets all its ratings from Seerr, the request service the household already runs. For each title it shows Rotten Tomatoes critics and audience percentages, the IMDb score (movies only), and the TMDB user score only when nothing else is available. Each is a small brand badge plus the number, with RT using Rotten Tomatoes' own Fresh/Rotten and Upright/Spilled labels. A score that was not published or has no votes is hidden instead of shown as 0. Only the opened title and the front-page hero show ratings; poster lists and search show none. Wolfskin TV (the Android TV app) shows ratings from two separate places that do not agree: - Titles you own in Jellyfin show whatever Jellyfin has stored: a yellow star with one number (normally the TMDB average) and, only if Jellyfin has one, a tomato with a percentage. Whether the tomato appears depends on Jellyfin's data; it is often missing. The tomato turns "rotten" below 60% by the TV's own rule, not Rotten Tomatoes' label. - Titles from Seerr's Discover screens show only Rotten Tomatoes: a critics percentage with a tomato and, for movies, a star number that is really the RT audience percentage divided by ten (65% shows as "6.5 star"). Series never get an audience number. There is no IMDb and no TMDB anywhere on these screens. So the same film can show a TMDB-style "7.8 star" when owned and "6.5 star, 85% tomato" when requested, and neither matches the phone app. Smaller bugs found on the way: the Discover rating cache is keyed only by the TMDB number, so a movie and a series with the same number can show each other's rating, and a failed lookup is remembered as "no rating" until the app restarts. The TV can already reach the phone app's source: every phone-app score comes from Seerr endpoints the TV is already signed in to, so no new login, no API keys and no Conductarr connection are needed. One fix is required first: the TV's bundled Seerr API description types the IMDb score as a whole number although Seerr sends decimals like 8.8, so it must be corrected before the IMDb call will work. **Planned approach.** First change the Discover screens to the phone app's set of ratings and badges (and fix the cache and spec problems). Second, show the same ratings on Jellyfin-owned movie and series pages, falling back to Jellyfin's own numbers when Seerr is unavailable or has no match. ## Constraints - Builds on Sonnet; the fork is +yolo for merges once green, reviewed and confident. - A TV release or an install on the TV needs the owner's word.
justinzeus added this to the Firstmate intake milestone 2026-10-29 19:43:23 +01:00
Author
Owner

Same-screen before and after for the TV ratings change (same title, same data, rendered at 1920x1080 from the real header composables; not a photo of the TV).

Owned movie page (Jellyfin title)

Before (today: Jellyfin's star number and a tomato only if Jellyfin has one):

before owned

After (the phone app's set from Seerr: Rotten Tomatoes critics, Rotten Tomatoes audience, IMDb for movies; Jellyfin's values stay as the fallback):

after owned

Discover movie page (requested title)

Before ("6.5 star . 85% tomato": the star is really the audience percentage divided by ten):

before discover

After (same badges as the owned page):

after discover

The layout is the same single line under the title; the star and single tomato become tomato + popcorn + IMDb badges with the same numbers the phone app shows. Pull request: #24

Same-screen before and after for the TV ratings change (same title, same data, rendered at 1920x1080 from the real header composables; not a photo of the TV). **Owned movie page (Jellyfin title)** Before (today: Jellyfin's star number and a tomato only if Jellyfin has one): ![before owned](https://git.justinvisser.org/attachments/432c16df-c61b-474f-861c-e1d7e60cea24) After (the phone app's set from Seerr: Rotten Tomatoes critics, Rotten Tomatoes audience, IMDb for movies; Jellyfin's values stay as the fallback): ![after owned](https://git.justinvisser.org/attachments/7b1982e9-49ca-4fc7-94a2-160f48cf7f42) **Discover movie page (requested title)** Before ("6.5 star . 85% tomato": the star is really the audience percentage divided by ten): ![before discover](https://git.justinvisser.org/attachments/a7907911-81f2-486f-90a3-237f1d634084) After (same badges as the owned page): ![after discover](https://git.justinvisser.org/attachments/2bc2f5bd-c30f-4fa6-8188-5f267401dae6) The layout is the same single line under the title; the star and single tomato become tomato + popcorn + IMDb badges with the same numbers the phone app shows. Pull request: https://git.justinvisser.org/justinzeus/wolfskin/pulls/24
Sign in to join this conversation.
No labels
exploring
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: justinzeus/wolfskin#23
No description provided.