mirror of
https://github.com/narrrl/proton-stream.git
synced 2026-11-04 00:47:00 +01:00
feat(core,meta,app,android,ios): title logos and runtimes
ani.zip sent each series' TVDB clear logo and every episode's running time from the start, and neither was kept. Enrichment now stores the logo in title_metadata.logo_url (kept across a refresh of the same entry, like the fanart) and episode runtimes in episode_metadata.runtime, TVDB's first and AniDB's length after it. AniList's duration lands in TitleDetails::runtime; TMDB episode runtimes are kept too. Schema v13 adds the two columns and marks AniList titles un-enriched without deleting anything. TitleDetails::revision lets details written before runtime existed refetch by id while the old ones stay on screen, instead of blanking them in the migration as v10 did. Clear logos are padded to a square, so each client crops them to their visible pixels before drawing. The logo replaces the name on the library's banner and the title page (not on a light theme's title page, where lettering made for dark art can vanish). Episode rows show how long they run, in place of the file size on Android and iOS; a film's runtime joins its line of facts.
This commit is contained in:
1 parent
b5ba59b41d
commit
bb5a6638c4
29 files changed
+845
-69
No files matched your search
@@ -170,6 +170,26 @@ AniList, so a search that finds nothing is asked again without it.
|
||||
|
||||
Not done: TMDB fills no details.
|
||||
|
||||
**Logos and running times.** ani.zip sent both from the start and neither was
|
||||
kept. Enrichment now keeps the series' TVDB *Clearlogo* — a transparent PNG —
|
||||
in `title_metadata.logo_url`, kept across a refresh of the same entry like the
|
||||
fanart, and each episode's running time (TVDB's, else AniDB's `length`) in
|
||||
`episode_metadata.runtime`. AniList's `duration` lands in
|
||||
`TitleDetails::runtime`: minutes per episode for a series, the whole running
|
||||
time for a film. TMDB's episode runtimes are kept the same way.
|
||||
|
||||
A clear logo is padded to a square, so every client crops it to its visible
|
||||
pixels before drawing it (`trim_alpha` on the desktop, `opaqueBounds` on
|
||||
Android and iOS). It replaces the name over the library's banner and at the
|
||||
top of the title page — except on a light theme's title page, where lettering
|
||||
made for dark art could vanish. A film's running time joins its line of facts;
|
||||
an episode row shows its own (on Android and iOS in place of the file size).
|
||||
|
||||
**Schema v13** adds the two columns and marks every AniList title un-enriched,
|
||||
deleting nothing. `TitleDetails::revision` makes details written before
|
||||
`runtime` existed refetch by id on the next run; they stay on screen until the
|
||||
answer lands, rather than being blanked by the migration as schema v10 did.
|
||||
|
||||
## Phase 3 — reach
|
||||
|
||||
- **Local matching** against the offline database, so only ids leave the
|
||||
|
||||
@@ -72,6 +72,9 @@ Click a title to open its page. **Esc** goes back.
|
||||
- Each episode shows a tick when you have watched it. Right-click an episode and choose **Mark
|
||||
watched up to here** to tick it and every episode before it.
|
||||
- **In this franchise** lists the other parts of the series, when posters and descriptions are on.
|
||||
- With posters and descriptions on, a show's logo takes the place of its name at the top of the
|
||||
page and on the library's banner, and each episode says how long it runs. A film says how long
|
||||
it runs in the line under its name.
|
||||
|
||||
An episode counts as watched once you have seen 90% of it.
|
||||
|
||||
|
||||
Reference in new issue
Block a user