Skip to content

OPDS comics: Honor manga reading direction from ComicInfo.xml - #3427

Merged
kovidgoyal merged 1 commit into
kovidgoyal:masterfrom
softwaregames1:opds-manga-reading-direction
Oct 30, 2026
Merged

kovidgoyal merged 1 commit into
kovidgoyal:masterfrom
softwaregames1:opds-manga-reading-direction

Conversation

@softwaregames1

Copy link
Copy Markdown
Contributor

Set readingProgression to rtl in Readium Divina manifests when a CBZ contains a root-level ComicInfo.xml with Manga set to YesAndRightToLeft.

This lets compatible OPDS readers navigate manga in the intended direction. Page images retain their existing natural order.

ComicInfo is read only when requesting the manifest, preserving lazy catalog generation. Reads are bounded to 1 MiB of decompressed metadata and use calibre's safe XML parser. Missing, malformed, oversized or unreadable metadata preserves existing behavior.

Metadata filenames are matched case insensitively. Manga values Yes, No and Unknown do not imply right-to-left reading.

Includes documentation and tests covering manifest output, page ordering and retrieval, filename handling, malformed XML, size limits, encrypted metadata and external-entity protection.

Validation:

  • All 14 comic and OPDS tests pass under CI's test handler without creating a QApplication.
  • Type checking, Ruff lint, formatting and diff checks pass.
  • External reader testing has not been performed.

@kovidgoyal
kovidgoyal merged commit 77ba3fb into kovidgoyal:master Oct 30, 2026
7 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants