Django internet radio player
When a book fails to open, a '!' button appears next to it in the list. Clicking it prompts for the original file; the file is re-encrypted with the current key and replaces the broken ciphertext on the server while keeping all metadata, progress, highlights and bookmarks intact. - Add POST /books/<pk>/replace-data/ endpoint (updates data only) - Add _evictCachedBook() to clear IndexedDB cache for a single book - Replace complex client-side re-encryption on password change with a simple confirm() warning that books will need to be re-uploaded Co-Authored-By: Claude Sonnet 4.6 <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 | ||