Django internet radio player
Die max()-Semantik aus v14 verglich nur die grobe scroll_fraction. Da scroll_fraction und position_anchor gemeinsam, aber entkoppelt gespeichert werden, konnte ein einzelner Save mit transient zu hoher fraction (z.B. instabiles Layout beim Laden) die Position dauerhaft einfrieren: jeder spätere echte Fortschritt hatte eine kleinere fraction und wurde inklusive Anker verworfen — der Leser landete immer wieder an derselben Stelle. Fix: Vergleich läuft jetzt über den Blockindex im Anker (die Größe, die auch die Sprungposition bestimmt), mit innerFraction als Tiebreaker. scroll_fraction dient nur noch als Fallback für PDFs ohne Anker. Server (_progress_is_further) und Client (_cmpProgress) nutzen identische Logik; loadBookList-Push und lokaler Cache ebenfalls. Bestehende eingefrorene Einträge entfrieren sich beim ersten Weiterlesen selbst. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .forgejo/workflows | ||
| accounts | ||
| books | ||
| diora | ||
| gpodder | ||
| podcasts | ||
| radio | ||
| static | ||
| templates | ||
| .env.example | ||
| .gitignore | ||
| docker-compose.yml | ||
| Dockerfile | ||
| Dockerfile.cron | ||
| manage.py | ||
| requirements.txt | ||