Show live download state on movie, season and episode rows #264

Closed
opened 2026-08-26 11:00:28 +01:00 by naps62-yolo · 0 comments
Owner

With the API reporting live download state, put it where the item already
lives: the movie row, the season row for its pack, the episode row. There is
no downloads page — a download is an attribute of the thing being downloaded.

One chip per row, fed by GET /api/downloads joined on target_kind /
target_id:

  • downloading — the percentage, so a stuck 3% is visible as a stuck 3%
  • stalled, errored — the two cases that today look exactly like downloading
    and silently never finish
  • seeding — §7.3's obligation still running after import, read-only

A season row aggregates its own pack grab. An episode inside a season being
grabbed as a pack shows nothing of its own; the pack is one download, not ten.

Polls with the page on the UI's existing 15s cadence (POLL_MS in main.ts),
not a second timer and not SSE.

At phone width only the active-grab progress survives — seeding and stalled
shed the way .ep-chips already sheds resolution and language.

Give the chip a width that does not depend on its content, the way the
subtitle chip takes its width from the wanted set (#258): a row whose
percentage ticks from 9% to 10% must not shove the chips beside it.

Non-goals: pause/resume/remove controls (Transmission's own UI owns those),
and any surface for torrents arr did not grab.

Depends on: #263

With the API reporting live download state, put it where the item already lives: the movie row, the season row for its pack, the episode row. There is no downloads page — a download is an attribute of the thing being downloaded. One chip per row, fed by `GET /api/downloads` joined on `target_kind` / `target_id`: - downloading — the percentage, so a stuck 3% is visible as a stuck 3% - stalled, errored — the two cases that today look exactly like downloading and silently never finish - seeding — §7.3's obligation still running after import, read-only A season row aggregates its own pack grab. An episode inside a season being grabbed as a pack shows nothing of its own; the pack is one download, not ten. Polls with the page on the UI's existing 15s cadence (`POLL_MS` in `main.ts`), not a second timer and not SSE. At phone width only the active-grab progress survives — seeding and stalled shed the way `.ep-chips` already sheds resolution and language. Give the chip a width that does not depend on its content, the way the subtitle chip takes its width from the wanted set (#258): a row whose percentage ticks from 9% to 10% must not shove the chips beside it. Non-goals: pause/resume/remove controls (Transmission's own UI owns those), and any surface for torrents arr did not grab. Depends on: #263
naps62-yolo added this to the Download visibility milestone 2026-08-26 11:00:28 +01:00
naps62-yolo added the area/webdifficulty/moderatephase/5-uitype/feature labels 2026-08-26 11:00:28 +01:00
naps62-yolo added a new dependency 2026-08-26 11:00:35 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: yolo/arr#264