diora-web/tui/diora_tui
mrwnslz 51b7316398 TUI: Lesestand-Vertrag (zuletzt gelesen gewinnt), Login wie diora_client, Bücher beim Öffnen laden
progress.py setzt docs/progress-sync.md um (read_at in Serverzeit mit Uhrversatz, sent_at beim
Senden, force, Warteschlange je Buch, Neuanwendung nach dem Abgleich; dieselben Regeln wie
Ops.kt/ops.js). Der Reader speichert nur, was der Leser bewegt hat; wiederherstellen,
Umbruch und Sprünge schreiben nichts. Neuere Stellen anderer Geräte werden angeboten
("Auf X weitergelesen – springen?"), nie von allein angewendet; "w" springt zur weitesten
Stelle. Fortschritt als Textanteil in Zeichen statt 0.0.

Abgleich über GET /books/ (ohne Markierungs-Blobs), Bücher erst beim Öffnen geladen
(☁ in der Liste). `diora-tui login` meldet wie die Apps an, liest den vorhandenen Token,
leitet den Schlüssel aus dem Passwort ab und speichert beides geschützt (DPAPI).
DIORA_TUI_HOME legt alle Dateien in einen Ordner (platformdirs folgt unter Windows den
Umgebungsvariablen nicht). 35 Tests, tools/smoke_server.py gegen einen lokalen Server.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 13:08:59 +01: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: Lesestand-Vertrag (zuletzt gelesen gewinnt), Login wie diora_client, Bücher beim Öffnen laden 2026-10-26 13:08:59 +01:00
app.py TUI: Lesestand-Vertrag (zuletzt gelesen gewinnt), Login wie diora_client, Bücher beim Öffnen laden 2026-10-26 13:08:59 +01:00
app.tcss TUI: Lesestand-Vertrag (zuletzt gelesen gewinnt), Login wie diora_client, Bücher beim Öffnen laden 2026-10-26 13:08:59 +01:00
blocks.py TUI: EPUB wie der Browser lesen (HTML5, Rohdaten) und Zeichenpositionen je Block 2026-10-26 12:59:03 +01:00
book_view.py TUI: Lesestand-Vertrag (zuletzt gelesen gewinnt), Login wie diora_client, Bücher beim Öffnen laden 2026-10-26 13:08:59 +01:00
cache.py TUI: Lesestand-Vertrag (zuletzt gelesen gewinnt), Login wie diora_client, Bücher beim Öffnen laden 2026-10-26 13:08:59 +01:00
config.py TUI: Lesestand-Vertrag (zuletzt gelesen gewinnt), Login wie diora_client, Bücher beim Öffnen laden 2026-10-26 13:08:59 +01:00
crypto.py TUI: Verschlüsselungs-Key per Benutzername+Passwort ableiten statt Konsolen-Export 2026-08-15 16:55:03 +02:00
epub.py TUI: Lesestand-Vertrag (zuletzt gelesen gewinnt), Login wie diora_client, Bücher beim Öffnen laden 2026-10-26 13:08:59 +01:00
layout.py TUI: durchgehende Leseansicht mit web-kompatiblen Anchors, Fußnoten, bidirektionalem Progress-Sync 2026-08-15 17:59:46 +02:00
library_meta.py TUI: Lesestand-Vertrag (zuletzt gelesen gewinnt), Login wie diora_client, Bücher beim Öffnen laden 2026-10-26 13:08:59 +01:00
login.py TUI: Lesestand-Vertrag (zuletzt gelesen gewinnt), Login wie diora_client, Bücher beim Öffnen laden 2026-10-26 13:08:59 +01:00
paths.py TUI: Lesestand-Vertrag (zuletzt gelesen gewinnt), Login wie diora_client, Bücher beim Öffnen laden 2026-10-26 13:08:59 +01:00
progress.py TUI: Lesestand-Vertrag (zuletzt gelesen gewinnt), Login wie diora_client, Bücher beim Öffnen laden 2026-10-26 13:08:59 +01:00
reader_screen.py TUI: Lesestand-Vertrag (zuletzt gelesen gewinnt), Login wie diora_client, Bücher beim Öffnen laden 2026-10-26 13:08:59 +01:00
remote.py TUI: Lesestand-Vertrag (zuletzt gelesen gewinnt), Login wie diora_client, Bücher beim Öffnen laden 2026-10-26 13:08:59 +01:00
secretstore.py TUI: Lesestand-Vertrag (zuletzt gelesen gewinnt), Login wie diora_client, Bücher beim Öffnen laden 2026-10-26 13:08:59 +01:00
statusbar.py TUI: Statusleiste mit Akkustand und Uhrzeit 2026-08-15 20:36:54 +02:00