308eed150a
Podcasts: Shownotes überdecken die „Ähnlichen Folgen“ nicht mehr (podcast-ui.css aus diora-android 5227c26, sw CACHE v156)
...
Build and push Docker image / build (push) Successful in 16s
Test / test (push) Successful in 10m57s
Test / e2e (push) Failing after 1m28s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 16:57:29 +01:00
marwin
14a45f4cb4
Merge origin/master in master
...
Build and push Docker image / build (push) Successful in 17s
Test / test (push) Successful in 10m58s
Test / e2e (push) Failing after 1m33s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 11:48:23 +01:00
marwin
593b72f17f
Merge worktree-tui-reader: diora-tui (Terminal-EPUB-Reader) nach master
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 11:46:32 +01:00
1194472572
Podcasts: Werbung und Schluss in YouTube-Folgen überspringen (SponsorBlock)
...
Build and push Docker image / build (push) Successful in 15s
Test / test (push) Successful in 10m56s
Test / e2e (push) Failing after 1m33s
Die Folgen eines YouTube-Kanals werden gehört wie Podcasts; unterbrochen wird man
darin von der Werbung und vom Schluss. Beides markieren andere Hörer bei
SponsorBlock: podcasts/sponsor.py fragt je Folge einmal danach (nur sponsor und
outro, nur Teile, die übersprungen werden, kein „full“) und legt die Antwort an
der Folge ab (PodcastEpisode.sponsor); GET /podcasts/episodes/<id>/sponsor/
antwortet damit. Eine Antwort gilt eine Woche, ein Fehlschlag eine Stunde.
Der Player springt über solche Teile (podcasts-web.js für Browser und Desktop,
in der App später der eigene Player); der Schalter heißt skip_sponsor, steht bei
„Stille überspringen“ im Abspiel- und Tempomenü, ist an und wirkt nur bei
YouTube-Folgen (default on). e2e/sponsor.spec.js spielt es in Chromium durch;
sw v155
2026-10-25 16:18:24 +01:00
5b1325609f
Nachrichten/Blogs: Gelesen-Markieren geht nicht mehr verloren, wenn der Server nicht antwortet
...
Build and push Docker image / build (push) Successful in 16s
Test / test (push) Successful in 10m51s
Test / e2e (push) Failing after 1m29s
Der Aufruf an den Server war "abschicken und vergessen": scheiterte er (kein Netz, 5xx,
ein Proxy dazwischen), wurde er still verworfen und der Artikel war nach dem nächsten
Laden wieder ungelesen.
Jetzt wird auf dem Gerät markiert und der Aufruf gemerkt (localStorage
diora_feeds_read_pending) - wie die Hefte es mit diora_issue_pending schon tun. Er geht
nach, sobald das Gerät wieder online ist oder die Liste neu geladen wird. Eine
4xx-Antwort (der Artikel ist beim Server weg) wird nicht wiederholt, sonst würde die
Warteschlange nur wachsen.
sw v154.
2026-10-25 15:33:26 +01:00
1da19ba715
CI erneut anstoßen (Docker-Netze auf Strato waren aufgebraucht)
...
Build and push Docker image / build (push) Successful in 38s
Test / test (push) Successful in 11m23s
Test / e2e (push) Failing after 1m28s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 13:34:02 +01:00
a64c801275
Podcast-Radio: die neueste ungehörte Strom-Folge, ohne Spuren (eigene Radio-gehört-Liste, gemischt nach Podcasts, neue Folgen zuerst); Web-Player und Player-Sync; sw v153
...
Build and push Docker image / build (push) Failing after 0s
Test / test (push) Failing after 0s
Test / e2e (push) Failing after 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 13:17:09 +01:00
21f5e33e57
docs/podcasts.md: Podcast-Radio geplant (neueste ungehörte Strom-Folge, keine Spuren, eigene Radio-gehört-Liste)
...
Build and push Docker image / build (push) Failing after 0s
Test / test (push) Failing after 0s
Test / e2e (push) Failing after 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 13:03:15 +01:00
89827086ba
Gezeichnete Cover: neue Konzepte (funk, musik, kunst, essen, sport, geld, reise), zweite Motive für die meisten; quadratisch für Hörbücher und Podcasts ohne (ladbares) Bild; sw v152
...
Build and push Docker image / build (push) Failing after 0s
Test / test (push) Failing after 0s
Test / e2e (push) Failing after 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 12:39:57 +01:00
841ac5bed5
Bibliothek: Hinweis „Länge wird ermittelt“ gedämpft gesetzt; sw v151
...
Build and push Docker image / build (push) Successful in 15s
Test / test (push) Successful in 10m44s
Test / e2e (push) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 12:28:52 +01:00
6e8e5a0f7b
Bibliothek: nach Länge sortieren (kürzeste/längste zuerst); Seitenzahl beim Hochladen, für ältere Bücher einmal auf dem Gerät ermittelt; sw v150
...
Test / e2e (push) Waiting to run
Test / test (push) Waiting to run
Build and push Docker image / build (push) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 12:28:41 +01:00
58003057e3
KI: OpenRouter als zweiter Anbieter (wählbar, chat completions mit json_schema); ✦ Mit KI ordnen für Podcasts (Ordner, Stufen) und Nachrichten/Blogs (Ressort, Ordner, Art); sw v149
...
Test / e2e (push) Waiting to run
Build and push Docker image / build (push) Successful in 18s
Test / test (push) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 12:23:54 +01:00
0ba16a40ff
KI-Assistent (eigener Anthropic-Key, Ende-zu-Ende verschlüsselt, Aufrufe direkt vom Gerät) mit „Mit KI ordnen“ für Bücher; Bibliothek als XML exportieren; sw v148
...
Build and push Docker image / build (push) Successful in 15s
Test / test (push) Successful in 10m46s
Test / e2e (push) Failing after 1m27s
- /accounts/vault/<name>/: kleine verschlüsselte Geräte-Einstellungen (UserVault)
- static/js/ai.js: DioraAI (SDK 0.133.0 gebündelt in static/vendor), Vorschläge zum Abhaken
- static/js/app/55-library-tools.js: ✦ Ordnen (Ordner, Serien, Titel/Autor, Zeitschrift) und ⇩ XML-Export
- docs/ai.md, docs/library.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 18:34:49 +02:00
a73ade5422
docs/library.md: Eingang (Cloud-Quelle bringt neue Bücher von selbst)
...
Build and push Docker image / build (push) Successful in 15s
Test / test (push) Successful in 10m43s
Test / e2e (push) Failing after 1m27s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 18:13:04 +02:00
cec07dd208
Bücher: „Eingang“ – eine Cloud-Quelle bringt ihre neuen Bücher von selbst in die Bibliothek (Gerät holt, verschlüsselt, lädt hoch; Server merkt sich, was übernommen ist); sw v147
...
Test / e2e (push) Waiting to run
Build and push Docker image / build (push) Successful in 15s
Test / test (push) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 18:12:39 +02:00
262056b5ee
Radio: Titel-Abfrage (/radio/sse/) nie ins private Netz; ohne Konto nur Sender aus dem Verzeichnis (kuratiert, Featured, radio-browser per Sender-ID) – eigene Adressen brauchen ein Konto; sw v146
...
Build and push Docker image / build (push) Successful in 15s
Test / test (push) Successful in 10m37s
Test / e2e (push) Failing after 1m28s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 16:14:05 +02:00
868e979755
docs/radio.md: Radio, Ambient und Fokus – Server, Web, Android, Desktop, bekannte Schwachstellen
...
Test / e2e (push) Waiting to run
Build and push Docker image / build (push) Successful in 19s
Test / test (push) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 16:05:59 +02:00
e2bb1f9c5d
Doku: Abos & Quellen erledigt, Zeitschriften-Markierung, folders als Liste, Strom/Merkliste statt Neu/Warteschlange, theme.md ordnet feeds.js und podcast-ui.css richtig zu
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 16:04:12 +02:00
fd69ec3472
Doku nachgezogen: Navigation mit Projekte/Suche/Fokus und TOP_TABS (Panels) vs. nav.js (Navigation); app.js-Verweise auf static/js/app/
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 16:03:34 +02:00
c8fd139b44
Projekte: Radar – wöchentlich neue Papers (PubMed, arXiv, bioRxiv, medRxiv), von Claude im Batch sortiert, Entscheidungen verschlüsselt, → Quellen; Preset Neuropolitik aus F:\neuropolitik\tools; sw v145
...
Build and push Docker image / build (push) Successful in 1m11s
Test / test (push) Successful in 10m32s
Test / e2e (push) Failing after 1m31s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 20:43:43 +02:00
a329eab091
Projekt-Notizen: Markdown-Tabellen; sw v144
...
Build and push Docker image / build (push) Successful in 14s
Test / test (push) Successful in 10m17s
Test / e2e (push) Failing after 1m21s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 20:28:27 +02:00
66dc7a48fd
Projekt-Fenster: alle Leisten der App ausblenden (.nui-tab-bar); sw v143
...
Test / e2e (push) Waiting to run
Build and push Docker image / build (push) Successful in 15s
Test / test (push) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 20:23:16 +02:00
e7a18084a7
Projekte am Desktop im eigenen Fenster: ?project=<id> zeigt nur das Projekt, Quellen öffnen im Hauptfenster, das Fenster merkt sich keine Navigation; sw v142
...
Test / e2e (push) Waiting to run
Build and push Docker image / build (push) Successful in 13s
Test / test (push) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 20:19:26 +02:00
de50debad9
Podcasts im Browser: Mit Projekt verknüpfen (Folgen, Player mit Zeitmarke), Merken in der Folgenansicht (diora-android 4f514cd); sw v142
...
Test / test (push) Waiting to run
Test / e2e (push) Waiting to run
Build and push Docker image / build (push) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 20:19:22 +02:00
e5a170838b
Projekte mit Preset Forschung: Quellen (Paper per DOI, Bücher, Folgen mit Zeitmarke, Artikel), Zitierschlüssel, BibTeX/CSL-Export, Markdown-Notizen mit [@key]; Ende-zu-Ende-verschlüsselt. Navigation: Projekte als Tab am Handy, Suche als Lupe; sw v141
...
Test / e2e (push) Waiting to run
Build and push Docker image / build (push) Successful in 15s
Test / test (push) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 20:14:17 +02:00
6e5092ab3f
Podcasts im Browser: Stöbern, Lieblings-Abos, Suche → Folgenansicht (diora-android 1c1ec4e); podcasts-web.js speichert folders, refresh_interval, favorite; sw v140
...
Build and push Docker image / build (push) Successful in 14s
Test / test (push) Successful in 10m8s
Test / e2e (push) Failing after 1m19s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 19:17:33 +02:00
8df8ae2be3
Suche über ganz diora: eigener Abschnitt (Handy neben Home · Lesen · Hören, Seitenleiste unten über Abos), Bücher lokal, Rest über /search/; sw v139
...
Test / e2e (push) Waiting to run
Build and push Docker image / build (push) Successful in 14s
Test / test (push) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 19:09:07 +02:00
410d4806ca
Podcasts: Hörbuch-Kapitel kommen nie in die Wiedergabeliste oder Merkliste; Themen nur aus Folgentiteln (schneller, weniger Rauschen)
...
Build and push Docker image / build (push) Successful in 15s
Test / test (push) Has been cancelled
Test / e2e (push) Waiting to run
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 19:00:38 +02:00
3fa16b9653
Podcasts stöbern: Volltextsuche (FTS5), ähnliche Folgen, Personen, Themen, Vergessenes, Personen anderswo (Apple/fyyd), Empfehlungen (fyyd); Abo-Favoriten
...
Test / e2e (push) Waiting to run
Build and push Docker image / build (push) Successful in 16s
Test / test (push) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 18:50:35 +02:00
3c9185689a
Podcasts im Browser: Wiedergabeliste · Merkliste · Strom · Abos (diora-android ef914bd), sw v137
...
Build and push Docker image / build (push) Successful in 16s
Test / test (push) Successful in 9m44s
Test / e2e (push) Failing after 1m24s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 18:21:03 +02:00
3ef2bdcb61
Podcasts: Merkliste und Wiedergabeliste (hinter lists_v2), Abo-Stufen inkl. Stamm direkt in die Wiedergabeliste, Abrufintervall pro Abo, Strom-Daten (heard_365, stream/seen, filter=stream)
...
Build and push Docker image / build (push) Successful in 13s
Test / test (push) Successful in 9m46s
Test / e2e (push) Failing after 1m23s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 18:05:28 +02:00
1cb6584395
Buch-Metadaten: Änderung auf veraltetem Stand wird abgelehnt (409 mit dem aktuellen), das Web baut sie darauf neu auf
...
Test / e2e (push) Waiting to run
Build and push Docker image / build (push) Successful in 16s
Test / test (push) Has been cancelled
Eine App mit alter Bücherliste (Desktop während des langsamen Syncs) hat beim Öffnen fünf
MEW-Bände mit ihrem alten Stand überschrieben – Titel, Autor, Ordner weg. base_iv sagt dem
Server, von welchem Stand eine Änderung ausgeht.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 18:03:49 +02:00
58b337d224
docs/podcasts.md: im Strom nach gehörten Folgen sortieren, Gehörte vor Ungehörten
...
Build and push Docker image / build (push) Successful in 14s
Test / test (push) Successful in 9m20s
Test / e2e (push) Failing after 1m21s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 17:49:37 +02:00
2a3b4b760b
docs/podcasts.md: Plan für Strom, Merkliste, Wiedergabeliste und Abo-Stufen
...
Test / e2e (push) Waiting to run
Build and push Docker image / build (push) Successful in 15s
Test / test (push) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 17:46:00 +02:00
f539158a19
Podcasts: „auf einmal“ heißt innerhalb einer Stunde – stündliche Nachrichten bleiben häufig
...
Build and push Docker image / build (push) Successful in 16s
Test / test (push) Successful in 9m23s
Test / e2e (push) Failing after 1m21s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 17:30:38 +02:00
2cb5dc4c04
Podcasts: alle Folgen an einem Tag (Archiv, Kurs) zählen als selten, nicht als täglich
...
Test / e2e (push) Waiting to run
Build and push Docker image / build (push) Successful in 15s
Test / test (push) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 17:29:39 +02:00
ba3c6ff905
Podcasts: Folgen einer Kategorie (?folder=), wie oft ein Podcast erscheint (interval_days) für „Nach Zeitraum, seltene zuerst“
...
Test / e2e (push) Waiting to run
Build and push Docker image / build (push) Successful in 14s
Test / test (push) Has been cancelled
- GET /podcasts/episodes/?folder=<name> ('' = ohne Ordner)
- /podcasts/state/: interval_days je Feed (mittlerer Abstand der neuesten 10 Folgen,
eine Abfrage per Window, eine Stunde gemerkt)
- Podcast-Oberfläche aus diora-android bd98557 (Zeiträume, Ordner-Chips in „Folgen“)
- docs/library.md, sw v134
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 17:23:06 +02:00
86a6bb52d7
Buchdateien in eine eigene Tabelle (EBookFile): Änderungen an Titel, Ordner, gelesen schreiben nicht mehr megabyteweise die Datei mit
...
Build and push Docker image / build (push) Successful in 15s
Test / test (push) Successful in 9m25s
Test / e2e (push) Failing after 1m23s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 17:11:19 +02:00
e3d597a3c0
Nachrichten: Lesehilfen ohne Sprachmodell (feeds/textproc.py, docs/news-text.md)
...
Test / e2e (push) Waiting to run
Build and push Docker image / build (push) Successful in 16s
Test / test (push) Has been cancelled
- Floskeln je Quelle (Spendenboxen u. ä.) verschwinden aus dem Artikel
- Überblick einer Meldung aus mehreren Quellen: Zusammenfassung (LexRank + MMR),
was nur ein Bericht sagt, Wortwahl je Quelle, dieselbe Meldung in der anderen Sprache
(GET /feeds/stories/<id>/overview/)
- Themen-Chips über den Nachrichten (topics auf der ersten Seite, ?ids= filtert)
- before= mit unkodiertem '+' gibt keinen 500 mehr
- sw v133
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 17:07:51 +02:00
c8e05bdb0a
Bücherliste liest nie mehr an den Dateien vorbei: Datum, gelesen, Cover aus abdeckenden Indizes (37 s → schnell; die Desktop-App gab nach 10 s auf)
...
Build and push Docker image / build (push) Successful in 15s
Test / test (push) Successful in 9m15s
Test / e2e (push) Failing after 1m19s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 15:37:11 +02:00
b09a4625a4
SQLite im WAL-Modus, Transaktionen IMMEDIATE: Leser warten nicht mehr auf lange Schreibvorgänge (Feed-Abruf, große Uploads) – kein „database is locked“ mehr bei GET /books/
...
Build and push Docker image / build (push) Successful in 16s
Test / e2e (push) Failing after 1m23s
Test / test (push) Successful in 9m15s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 15:04:37 +02:00
46e47df6d0
PDFs: nur Seiten nahe der Ansicht zeichnen (ferne wieder freigeben), sofort öffnen; Öffnen lässt sich abbrechen (Knopf, Schließen, anderes Buch)
...
Test / e2e (push) Waiting to run
Build and push Docker image / build (push) Successful in 16s
Test / test (push) Has been cancelled
Ein MEW-Band mit 1000 Seiten bereitete vorher jede Seite vor und zeichnete alle, bevor er sich
zeigte – Minuten und Gigabytes. e2e/pdf.spec.js mit einem 400-Seiten-PDF (e2e/make_pdf.py, pypdf).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 14:57:03 +02:00
7f9d6fc22a
Bibliothek: Ausgaben – PDF und EPUB (oder zwei Übersetzungen) als ein Werk, in der Liste einmal mit ihren Formaten
...
Build and push Docker image / build (push) Successful in 15s
Test / test (push) Successful in 9m16s
Test / e2e (push) Failing after 2m42s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 14:27:14 +02:00
2327eb06d5
feeds: unfertige Änderungen aus f2583cb wieder heraus (versehentlich mit committet, liegen weiter im Arbeitsbaum)
...
Build and push Docker image / build (push) Successful in 17s
Test / test (push) Successful in 9m28s
Test / e2e (push) Successful in 2m6s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 14:06:38 +02:00
f2583cbefd
Generierte Cover: „blaue Bände“ für Werke von Marx und Engels, mit Buchrücken und Bandnummer
...
Test / test (push) Waiting to run
Test / e2e (push) Waiting to run
Build and push Docker image / build (push) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 14:06:19 +02:00
e43facb620
docs/theme.md: Desktop-App lässt bei „Automatisch“ das System entscheiden (0.1.31)
...
Build and push Docker image / build (push) Successful in 16s
Test / test (push) Successful in 9m8s
Test / e2e (push) Successful in 2m7s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 10:16:36 +02:00
a399374216
YouTube-Kanäle: zufällige 404 abfangen; „Automatisch“ in der Android-App
...
Build and push Docker image / build (push) Successful in 16s
Test / test (push) Successful in 9m7s
Test / e2e (push) Successful in 2m10s
- YouTube antwortet auf Kanal-Feeds derzeit bei etwa zwei von drei Abrufen
grundlos mit 404 (Kanäle zeigten „lädt nicht: HTTP 404“): ein YouTube-Feed
wird bis zu 12-mal im Abstand von 0,25 s gefragt. Tests dazu.
- Erscheinungsbild „Automatisch“: in der Android-App folgt die WebView nicht
dem System, sondern dem (dunklen) App-Theme – die Seite fragt dort
DioraNative.systemScheme() und hört __dioraSystemScheme bei einem Wechsel.
sw.js: diora-v129.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 08:16:09 +02:00
3c7be76a93
Zeitschriften: Artikel richtig erkennen (GegenStandpunkt, PDF-Hefte)
...
Build and push Docker image / build (push) Successful in 15s
Test / test (push) Successful in 9m0s
Test / e2e (push) Successful in 2m0s
- EPUB: ein Artikel ist eine Datei; die Einträge danach in dieselbe Datei
sind seine Abschnitte, gleich auf welcher Ebene (beim GegenStandpunkt
stehen Zwischenüberschriften teils ganz oben). Unterzeile = die Schlagzeile
unter dem Titel, nicht nummerierte Abschnitte.
- PDF: die meisten Hefte haben keine Lesezeichen – die Artikel kommen jetzt
aus dem gedruckten Inhaltsverzeichnis (Jacobin, NLR, LuXemburg,
manuskripte): Seitenzahl vorn oder hinten, Autor in eigener Spalte oder
darunter („Von …“), Titel in Versalien über mehrere Zeilen, Rubriken; die
gedruckten Seitenzahlen werden über die Titel auf die PDF-Seiten abgebildet.
- Index-Version 2: schon gebaute Indizes werden neu gebaut.
sw.js: diora-v128.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 11:48:44 +02:00
ea7d62789f
Zeitschriften: das Heft und seine Artikel
...
Build and push Docker image / build (push) Successful in 16s
Test / test (push) Successful in 9m1s
Test / e2e (push) Successful in 2m1s
Das Heft bleibt das Dokument, der Artikel die Einheit, in der man sich
bewegt (docs/library.md):
- Artikel-Index auf dem Gerät aus dem Inhaltsverzeichnis des EPUB bzw. den
Lesezeichen des PDF (Rubriken, Anreißer, Lesezeit), verschlüsselt im Meta.
- Stand pro Artikel (gelesen / übersprungen, wo man war), verschlüsselt im
Meta, offline gepuffert.
- Bibliothek: Segmentbalken pro Heft, „7 von 23 gelesen“; ein Tipp öffnet den
Heft-Inhalt mit Rubriken, Stand je Artikel, „Im Heft weiterlesen“, „Heft
abschließen“.
- Reader: Kopfzeile „Artikel 8 von 23“, am Ende jedes Artikels eine Zäsur
(gelesen, Weiter im Heft, Zum Inhalt, überspringen); bei PDF eine Leiste
beim Weiterblättern. Durchgelesene Artikel zählen als gelesen, Sprünge nicht.
sw.js: diora-v127.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 11:14:28 +02:00
fa9dc073cb
Hörbücher herunterladen (Android-App)
...
Build and push Docker image / build (push) Successful in 15s
Test / test (push) Successful in 9m8s
Test / e2e (push) Successful in 2m2s
In der Ansicht eines Hörbuchs „↓ Herunterladen“: alle Kapitel, die noch
fehlen, ab dem nächsten (mit Fortschritt „Lädt … 12/56“, danach „Auf dem
Gerät“); je Kapitel ein Download-Zeichen (laden, Fortschritt, erneut
versuchen, löschen) und im ⋮-Menü „Vom Gerät löschen“. Nur wo der Host
Downloads kann (DioraNative.podcastDownload); sw.js: diora-v126.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 10:16:39 +02:00