Django internet radio player
- Backend: EBookHighlights and EBookBookmarks models with encrypted blob storage; GET/POST views with size guards (700 KB / 100 KB); migration applied - Reader header: search, settings, bookmark add/list buttons - Font & layout settings panel (font size, line height, max width, themes for EPUB; zoom, invert, paginated for PDF); persisted in localStorage - Bookmarks: encrypted per-book blob, toast on add, sidebar with jump/delete - Full-text search: EPUB TreeWalker mark injection, PDF span search; Ctrl+F / F3; arrow key cycling; highlights re-applied on search clear - PDF paginated mode: single-page view, tap-zone / swipe / arrow key navigation, smart zoom (text bounding box → scale+translate canvas), auto-enable on mobile - Progress tracking fixes: save before hiding overlay (was always writing 100%), wait for EPUB images to load before restoring scroll, PDF paginated uses page fraction, sendBeacon cache for unload/visibilitychange reliability - PDF text layer disabled pending overlay rendering fix Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .forgejo/workflows | ||
| accounts | ||
| books | ||
| diora | ||
| radio | ||
| static | ||
| templates | ||
| .env.example | ||
| .gitignore | ||
| Dockerfile | ||
| manage.py | ||
| requirements.txt | ||