From 8e74060394bd150f76caa98f190b12308accc75f Mon Sep 17 00:00:00 2001 From: mARTin-B78 Date: Sat, 12 Sep 2026 10:25:12 +0200 Subject: [PATCH] docs: scope magazine contents-view redesign and legal source browsing No code change. Added to TODO.md: - Magazine contents view (#s-magazine): logged three candidate layouts as open options rather than picking one -- three-column page/text/ figures, synthesis-state-and-inline-play (the recommended quick win under any layout), and a flipbook with content columns underneath. Needs a decision before implementation. - Browsing free PDF magazine sources: the two sites given as examples (freemagazines.top, pdf-magazines.org) redistribute current commercial titles without licence, so no scraper was built against them. Scoped instead against OPDS catalogues, archive.org's public-domain periodicals, publisher-run free issues, and open-access journals. Co-Authored-By: Claude Sonnet 5 --- CHANGELOG.md | 16 ++++++++++++++++ TODO.md | 33 +++++++++++++++++++++++++++++++++ VERSION | 2 +- 3 files changed, 50 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index aa61624..3ee4a65 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,22 @@ Follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) · versioned wi --- +## [1.27.1] — 2026-09-12 + +### Added +- **Roadmap: magazine contents view redesign and legal magazine-source browsing**, both scoped in `TODO.md` — no + code change. + - Contents view (`#s-magazine`'s article list): logged three candidate layouts as open options rather than + picking one — a three-column page-thumbnail/text/figures view, a synthesis-state-and-inline-play list (the + recommended quick win regardless of layout), and a flipbook with extracted text underneath. Needs a decision + before implementation. + - Magazine-source browsing: the two sites suggested as examples turned out to be unlicensed redistributors of + current commercial titles, so no scraper was built against them. Scoped instead against sources that are + actually usable — OPDS catalogues (also covers a self-hosted Calibre-Web/Kavita/Komga library), archive.org's + public-domain periodicals, publisher-run free issues, and open-access journals. + +--- + ## [1.27.0] — 2026-09-12 ### Fixed diff --git a/TODO.md b/TODO.md index 56ad9fe..fa346a0 100644 --- a/TODO.md +++ b/TODO.md @@ -356,6 +356,18 @@ casting. The original PDF remains the visual source of truth while approved arti *(images shown, matched to reading position; caption text is not separately spoken)* - [~] Add confidence warnings, extraction diffs, and manual text correction before audio generation. *(confidence badges + block-level boundary editing done; no extraction diff view or free-text correction)* +- [ ] **Redesign the magazine contents view** (`#s-magazine`, the article list for one issue). Today it is a flat + list of title + page range + badge + Review button, which shows nothing of the issue itself: no page, no + opening text, no figure, no sign of which articles already have audio. Requested directions, none decided: + - **Three columns.** Page thumbnail · headline + opening text · the article's figures. Reads down the issue + page by page in column one, with the text and the pictures beside it. + - **Synthesis state per row.** A "synthesised / not synthesised" marker, the MP3's duration as mm:ss, and an + inline play button — so the list doubles as the playlist instead of having to enter an article to find out. + - **Flipbook.** The PDF as a page-turning spread (issuu.com as the reference), with the extracted content of + the visible pages in two columns underneath it. + Decide the shape first — the three ideas are not variants of one layout, and the middle one (synthesis state) + is worth having under any of them. Whatever is chosen has to keep working at phone width and stay navigable + by keyboard and screen reader; a flipbook in particular needs a non-gestural alternative. ### P2 — Advanced magazine intelligence @@ -372,6 +384,27 @@ casting. The original PDF remains the visual source of truth while approved arti *(per-page fallback done, now a real two-engine chain: vision OCR escalates when a page needs OCR or scores poorly, KDL Frontier Parser nano is the vision fallback, tesseract is the last resort; no formal benchmark)* +### P2 — Finding magazines to read + +- [ ] **Browse and search online PDF magazine sources from inside the app**, so an issue can be found and pulled in + without leaving for a browser and uploading by hand. Wanted: a catalogue of sources, a search across them, and + a one-click "ingest this issue". + **Blocked on a source decision, and that decision is the whole task.** The two sites named as examples + (`freemagazines.top`, `pdf-magazines.org`) redistribute current commercial titles — c't, BBC Wildlife, + AirForces Monthly — without the publishers' licence, so building a scraper against them is out: it is + copyright infringement regardless of who presses the button, and both would be trivially blocked or taken + down anyway. Sources that can be built against, in rough order of usefulness here: + - **OPDS catalogues** — the open standard for exactly this. Calibre-Web, Kavita and Komga all serve OPDS, so a + generic OPDS client also covers the user's own library on the NAS. Start here. + - **Internet Archive** (`archive.org` API) — a genuinely large public-domain and openly-licensed periodical + collection, with a documented search API and no scraping needed. + - **Publisher-run free issues and RSS/Atom feeds** — heise gives away sample c't issues, many trade titles + publish a free archive. Per-publisher work, but legitimate and high quality. + - **Open-access journals** (DOAJ, arXiv, PubMed Central) — if the appetite is reading rather than magazines + specifically, these are the largest legal corpus by far and all have real APIs. + Whatever is added, check licensing, rate limits and terms per source before wiring it (core rule 8), honour + `robots.txt`, and keep each source behind its own provider interface so one going away does not break the rest. + Three full regression runs of *Der Sturm* against the hand-corrected reference. Everything below is measured, not estimated. Artefacts live in `config/regression_snapshots/der_sturm/` (`*_manual.json` are the human diff --git a/VERSION b/VERSION index e43da41..c5b4f6e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.27.0 \ No newline at end of file +1.27.1 \ No newline at end of file