diora-web/tui/diora_tui
marwin a4b10ae265 TUI: Bücher per diora-tui sync vom diora-Server holen und entschlüsseln
Neuer `sync`-Subcommand: authentifiziert über den Personal-Access-Token
gegen GET /api/sync/ + GET /books/<id>/data/, entschlüsselt Metadaten und
Buchbytes lokal mit AES-256-GCM (diora_tui/crypto.py, kompatibel zu
static/js/app.js' encryptBytes/decryptBytes) und legt EPUBs als normale
Dateien in der Library ab — PDFs werden übersprungen. Zugangsdaten
(Server-URL, Token, Base64-Key) landen auf Wunsch in
~/.config/diora-tui/config.json (0600), sonst interaktive Abfrage pro Lauf.

Lesefortschritt wird bewusst noch nicht synced: der Server verankert
Position als "blockIndex:innerFraction" in der Absatz-Nummerierung des
Web-Readers, die nicht 1:1 auf das Kapitel-basierte scroll_fraction dieser
TUI abbildet — ein naiver Abgleich würde falsche Positionen liefern.

Getestet: AES-GCM-Rundreise + Falsch-Schlüssel-Ablehnung, vollständiger
sync-Lauf gegen einen echten Dev-Server (Token/Key-Abfrage, Download,
Entschlüsselung, Dedup bei erneutem Lauf, Fehlerfälle bei falschem
Token/Key, --save inkl. 0600-Datei und Wiederverwendung ohne Prompt).
2026-08-15 16:41:50 +02:00
..
__init__.py TUI: lokaler EPUB-Reader als erste Stufe eines diora-TUI-Clients 2026-08-15 16:04:18 +02:00
__main__.py TUI: lokaler EPUB-Reader als erste Stufe eines diora-TUI-Clients 2026-08-15 16:04:18 +02:00
api.py TUI: Bücher per diora-tui sync vom diora-Server holen und entschlüsseln 2026-08-15 16:41:50 +02:00
app.py TUI: Bücher per diora-tui sync vom diora-Server holen und entschlüsseln 2026-08-15 16:41:50 +02:00
app.tcss TUI: lokaler EPUB-Reader als erste Stufe eines diora-TUI-Clients 2026-08-15 16:04:18 +02:00
config.py TUI: Bücher per diora-tui sync vom diora-Server holen und entschlüsseln 2026-08-15 16:41:50 +02:00
crypto.py TUI: Bücher per diora-tui sync vom diora-Server holen und entschlüsseln 2026-08-15 16:41:50 +02:00
epub.py TUI: lokaler EPUB-Reader als erste Stufe eines diora-TUI-Clients 2026-08-15 16:04:18 +02:00
progress.py TUI: lokaler EPUB-Reader als erste Stufe eines diora-TUI-Clients 2026-08-15 16:04:18 +02:00
remote.py TUI: Bücher per diora-tui sync vom diora-Server holen und entschlüsseln 2026-08-15 16:41:50 +02:00