[PR #1809] perf: use server-side extraction for remote comic books #1701

Open
opened 2026-04-25 00:00:42 +02:00 by adam · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/advplyr/audiobookshelf-app/pull/1809
Author: @mattmanning
Created: 2/21/2026
Status: 🔄 Open

Base: masterHead: fix/comic-performance


📝 Commits (4)

  • cbe77d2 perf: use server-side extraction for remote comic books
  • 29997d2 fix: use full server URL for comic page images
  • 2cc2072 fix: use nativeHttp for server-side comic extraction on mobile
  • bb5d354 chore: remove debug toasts, keep console logs

📊 Changes

1 file changed (+161 additions, -6 deletions)

View changed files

📝 components/readers/ComicReader.vue (+161 -6)

📄 Description

Summary

Large comic files (300+ MB CBR/CBZ) were causing 30-60 second load times because the entire file was downloaded to the mobile client before extraction could begin.

Changes

  • Uses new server-side /api/items/:id/comic-pages and /api/items/:id/comic-page/:page endpoints
  • Pages are extracted and cached on the server, then sent individually to the client
  • Preloads 2 pages ahead, 1 behind for smooth page turning
  • Falls back to client-side extraction for local/downloaded files (file already on device)

Dependencies

Requires server PR: advplyr/audiobookshelf#5078

The server PR adds the comic-pages and comic-page endpoints that this mobile app PR depends on. Both PRs need to be merged for the full fix.

Testing

  1. Merge server PR first (or test against a server with that PR applied)
  2. Open a large CBR/CBZ comic from the server (not downloaded locally)
  3. Pages should load quickly instead of waiting for full file download
  4. Page navigation should be smooth with preloading

Related

Fixes: advplyr/audiobookshelf#3505


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/advplyr/audiobookshelf-app/pull/1809 **Author:** [@mattmanning](https://github.com/mattmanning) **Created:** 2/21/2026 **Status:** 🔄 Open **Base:** `master` ← **Head:** `fix/comic-performance` --- ### 📝 Commits (4) - [`cbe77d2`](https://github.com/advplyr/audiobookshelf-app/commit/cbe77d277dc2220098daddfb2f04c9b90eff8828) perf: use server-side extraction for remote comic books - [`29997d2`](https://github.com/advplyr/audiobookshelf-app/commit/29997d289dc3e7ee587478d1b129d2692e05bd97) fix: use full server URL for comic page images - [`2cc2072`](https://github.com/advplyr/audiobookshelf-app/commit/2cc2072b70874e291092cb1fd48b0e4249686dfe) fix: use nativeHttp for server-side comic extraction on mobile - [`bb5d354`](https://github.com/advplyr/audiobookshelf-app/commit/bb5d354d1b698bab8c157d46c9beee34c9458179) chore: remove debug toasts, keep console logs ### 📊 Changes **1 file changed** (+161 additions, -6 deletions) <details> <summary>View changed files</summary> 📝 `components/readers/ComicReader.vue` (+161 -6) </details> ### 📄 Description ## Summary Large comic files (300+ MB CBR/CBZ) were causing 30-60 second load times because the entire file was downloaded to the mobile client before extraction could begin. ## Changes - Uses new server-side `/api/items/:id/comic-pages` and `/api/items/:id/comic-page/:page` endpoints - Pages are extracted and cached on the server, then sent individually to the client - Preloads 2 pages ahead, 1 behind for smooth page turning - Falls back to client-side extraction for local/downloaded files (file already on device) ## Dependencies **Requires server PR:** advplyr/audiobookshelf#5078 The server PR adds the comic-pages and comic-page endpoints that this mobile app PR depends on. Both PRs need to be merged for the full fix. ## Testing 1. Merge server PR first (or test against a server with that PR applied) 2. Open a large CBR/CBZ comic from the server (not downloaded locally) 3. Pages should load quickly instead of waiting for full file download 4. Page navigation should be smooth with preloading ## Related Fixes: advplyr/audiobookshelf#3505 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
adam added the pull-request label 2026-04-25 00:00:42 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf-app#1701