advplyr / audiobookshelf

Self-hosted audiobook and podcast server
https://audiobookshelf.org
GNU General Public License v3.0
6.54k stars 466 forks source link

[Enhancement]: Ebook-specific library options #2314

Open ScyllPoesis opened 11 months ago

ScyllPoesis commented 11 months ago

Describe the feature/enhancement

This is a very minor enhancement, but I figured I may as well lodge it all the same.

I got started using ABS as most, looking for a simple way to share and organize my audiobook collection. Over the past couple months however, as my friends and I have begun using it more heavily and regularly, our use has shifted pretty significantly to the ease of use in eBook sharing and tracking.

One of the little things one of my users keeps bringing up is how the eBook library says things like "Continue Listening" or has a "Narrators" tab. In the library options there is an "Audiobooks Only" setting, that handles importing filters and the like; I figure a similar setting (or mode, etc.) can be added for "eBooks Only". Then, if this setting is true, you can give a more customized view of the library when it's selected (changing "Listening" to "Reading", no need for narrators, etc.)

Again, a little flavor issue, so feel free to ignore or throw on the pile for way later, but just some feedback to pass along. Otherwise we're very happy with the support you've already given eBooks! Cheers and thanks for your hard work!

advplyr commented 11 months ago

I think it makes sense to add an ebook only library setting.

The "Continue Reading" and "Read Again" shelves were added but removed in v2.3.x due to performance issues on the home page when changing databases. The original issue for that was here https://github.com/advplyr/audiobookshelf/issues/1782

It will be easier to add those back in if we have an ebook only library setting then we don't have to do additional queries.

danielb2 commented 2 months ago

ebooks are single files and do not need to be organized the same way in folders. For example, a common way to organize files is having files in subfolders in authors for epub, but not a subfolder per book. Current behavior means books are grouped together which is undesired.

Consider the difference here:

.
├── audiobooks
│  └── author
│     ├── title01
│     │  ├── chapter01.mp3
│     │  └── chapter02.mp3
│     └── title02
│        ├── chapter01.mp3
│        └── chapter02.mp3
└── ebooks
   └── author
      ├── title01.epub
      └── title02.epub

Example result current behavior:

Screenshot 2024-08-10 at 09 31 56

Clearly these should be separate books, and I think for ebooks a simple recursive search will do.

Alternatively instead of a ebooks only setting, just handle epub differently

Future Implementation (Screenshot)

Screenshot 2024-08-10 at 09 33 35

add ebooks only option here to force simple recursive scan for ebooks. I'm not sure if cbr or other formats are handled differently, but needing a folder per book for epub doesn't make so much sense

advplyr commented 2 months ago

There are a bunch of other factors to consider that make it difficult to simply handle epub files differently. I would like to support more folder structure options in the future.

danielb2 commented 2 months ago

There are a bunch of other factors to consider that make it difficult to simply handle epub files differently. I would like to support more folder structure options in the future.

What are some of the concerns?

advplyr commented 2 months ago

Storing metadata/covers with books. Ebook file in a subfolder that also has subfolders with other ebook or audio files. Subfolders that have audio file(s) and multiple ebook files.

danielb2 commented 2 months ago

Storing metadata/covers with books. Ebook file in a subfolder that also has subfolders with other ebook or audio files. Subfolders that have audio file(s) and multiple ebook files.

I'll just throw some ideas out there...

Seems it's using the embedded image file now. You mean as a secondary source ? Naming convention can be same filename but different extension (which is a common convention). i.e title1.epub and title1.jpg, title2.epub, title2.jpg. but I believe most ePub has it embedded anyway.

The app could also support embedding so the user can set their own cover.

advplyr commented 2 months ago

Abs supports fetching covers from external sources and you can choose if you want to store that cover with the item in the same folder. Also store metadata.json file with the item.

If all epub are treated as a separate book than that would be removing the feature of allowing audiobook and ebook to be the same item in Abs. It would also remove the feature of having supplementary ebook files alongside of audiobooks/ebooks.

danielb2 commented 2 months ago

Abs supports fetching covers from external sources and you can choose if you want to store that cover with the item in the same folder. Also store metadata.json file with the item.

If all epub are treated as a separate book than that would be removing the feature of allowing audiobook and ebook to be the same item in Abs. It would also remove the feature of having supplementary ebook files alongside of audiobooks/ebooks.

would that be acceptable behavior for when a Ebook only switch is toggled for a library?

petruut commented 2 months ago

seems like a good idea to make Ebooks a first-class feature