diff --git a/README.md b/README.md index 832c43f..1bd1e60 100644 --- a/README.md +++ b/README.md @@ -87,6 +87,8 @@ Choose **AniList** or use `--anilist`. Search/detail metadata comes directly fro Rows, metadata and selection prompts label availability UNVERIFIED. Terebi resolves the current selection fresh; unavailable episodes, malformed/protected pages and network failures appear as distinct player errors, while launch/catalog errors remain visible in Tubular. A successful handoff does not mark an episode watched. AniList episode metadata rows lead with the available series-average runtime (`25 min avg`), format and series year, followed by `sub ยท UNVERIFIED` and collection/watch markers. Missing or zero average runtimes are omitted. These are explicitly series-level facts, not measured episode durations or individual air dates; legacy Miruro retains its returned episode-specific dates and durations. +Episode metadata aligns with the title text, reserving the same checked/watched marker width on both lines in either anime catalog and episode collections. + Identities are `anilist::`, with both numbers bounded by Int32. The stable handoff is `https://zokoanime.video/stream/ani/ID/EPISODE/sub` (`ani`, not the broken `anilist` route). Sources, tokens and subtitle URLs are never stored in collections or playback snapshots. Queues use the same stable URL and per-item private progress files; version-2 reports identify `provider = "anilist"`, decimal-string `media_id`, and numeric `episode`. diff --git a/src/miruro_ui.rs b/src/miruro_ui.rs index 9ee1b72..7d1d951 100644 --- a/src/miruro_ui.rs +++ b/src/miruro_ui.rs @@ -1840,6 +1840,7 @@ impl Browser { ]) .style(style), Line::from(vec![ + ratatui::text::Span::raw(if self.screen().playable() { " " } else { "" }), ratatui::text::Span::raw(row.details.as_str()), ratatui::text::Span::raw(separator), ratatui::text::Span::raw(markers),