gotson / komga

Media server for comics/mangas/BDs/magazines/eBooks with API, OPDS and Kobo Sync support
https://komga.org
MIT License
4.15k stars 246 forks source link

EPUB comic/manga books now have a very poor UX #1324

Closed radonmiser closed 11 months ago

radonmiser commented 11 months ago

Steps to reproduce

open any EPUB books that's composed of images

  1. images now are not extended to the page margin
  2. rtl mangas unreadable
  3. double pages not working
  4. pages not pre-loading...etc

Expected behavior

there should be a heuristics to detect image based EPUB books and use the old reader for these books instead

or an option to disable epub reader on a book/series/library/server level

or efforts could be made to improve the EPUB reader so that image based books have a proper UX

Actual behavior

  1. images now are not extended to the page margin
  2. rtl mangas unreadable
  3. double pages not working
  4. pages not pre-loading...etc

Logs

No response

Komga version

1.8.3

Operating system

win11

Installation method

from download.komga.org

Other details

No response

Acknowledgements

radonmiser commented 11 months ago

Actually I can't even use the old reader url to manually open a epub book with the old reader half of my collection is almost unreadable now, how do I downgrade

gotson commented 11 months ago

I'm curious as to where those epub come from. Epub for comics is not very widespread.

You could consider converting your field to cbz as there's really no upside to using epub for image only content.

radonmiser commented 11 months ago

From bookwalker, it's not uncommon for manga to be in epub format.

Is it possible to add a library option to disable epub reader for that specific library?

gotson commented 11 months ago

Is it possible to add a library option to disable epub reader for that specific library?

It's not something I am considering.

gotson commented 11 months ago

Are you consuming those books as epub outside of Komga in any way? If not, maybe converting them to cbz is the best thing to do.

radonmiser commented 11 months ago

You could consider converting your field to cbz

That would mean losing progress on half of my library with no upsides since I didn't intent to use Komga for text contents.

If not, maybe converting them to cbz is the best thing to do.

They come in epub after the drm removal, for users who have no intention of consuming text contents in Komga they are demanded an extra step for something that worked perfectly.

gotson commented 11 months ago

If à publisher publishes epub, it's kinda implied that the content needs to be read by an epub reader.

Komga was handling a subset of epubs at the time, but that's not the way the publisher intended to.

Time marches on as we say, Komga now handles full epub.

Epub manga probably render the same (ie poorly as you put it) on other epub readers, since epub is mostly geared towards text content.

radonmiser commented 11 months ago

Epub manga probably render the same (ie poorly as you put it) on other epub readers, since epub is mostly geared towards text content.

That's not true, they always render perfectly if I import them into the stock ios reader. It has none of the problems I mentioned.

Is it possible to add a library option to disable epub reader for that specific library?

It's not something I am considering.

That's sad to hear

gotson commented 11 months ago

Could you maybe share one of those books that is rtl? I could use that to see how to enhance the epub reader (it's only the very first version)

noaione commented 11 months ago

Most manga that are taken from Kobo would be in EPUB and RTL layout. Here is some mini sample with images replaced (to avoid copyright)

mini_epub_manga_rtl.zip

The RTL layout is mainly defined in spine.

gotson commented 11 months ago

Most manga that are taken from Kobo would be in EPUB and RTL layout. Here is some mini sample with images replaced (to avoid copyright)

mini_epub_manga_rtl.zip

ideally i need an untouched book from a publisher.

The RTL layout is mainly defined in spine.

I know.

radonmiser commented 11 months ago

ideally i need an untouched book from a publisher.

https://pastebin.com/XECpC8Rd side note: if you run the books through Calibre the fixed layout info gets destroyed and the books no longer render properly.

gotson commented 11 months ago

pastebin.com/XECpC8Rd

Got it, thanks

side note: if you run the books through Calibre the fixed layout info gets destroyed and the books no longer render properly.

That's a Calibre problem. EPUB do have 2 possible layout, and if pre-paginated is not present, the default is reflowable. Calibre removing this attribute makes the book reflowable, which would break the display on any reader.

gotson commented 11 months ago

@radonmiser can you provide more details on this:

double pages not working

I will add support for RTL, i did a quick test and it seems to work fine.

radonmiser commented 11 months ago

@radonmiser can you provide more details on this:

I tested the 2 I sent you on 1.8.4 docker The one from kobo was detected as epub but the reader displays it one page at a time and loaded slowly image

the one from bw is was detected as cbz and was opened by the old reader

both were detected as fixed layout epub in the ios reader

gotson commented 11 months ago

I can't extract the kobo one:

image

The one from bookwalker has an invalid mimetype signature, meaning the epub is broken. The mimetype file should be the first file in the zip. You can use unzip -l on the file, and the mimetype is the last file in the zip.

gotson commented 11 months ago

I have made some progress on this:

images now are not extended to the page margin

I found where this is coming from and fixed it.

rtl mangas unreadable

I have some idea on how to fix this.

double pages not working

This should work, but your epub file need to be correct, not detected as zip.

pages not pre-loading

There is currently no preloading in the epub reader. I would like to implement this, but it may need quite some work.

github-actions[bot] commented 11 months ago

🎉 This issue has been resolved in 1.9.0 (Release Notes)