gotson / komga

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

[Feature Request] Different structures per library (allowing individual exceptions) #185

Closed GlassedSilver closed 3 years ago

GlassedSilver commented 4 years ago

Is your feature request related to a problem? Please describe.

Your individual files and folders may represent different levels of a series' depth.

A file may be a cbz containing an entire one-shot comic. There, that's that. The whole book, franchise and series. One file. Handy!

A file may be a page from a folder which represents a single book within a series. So maybe the second volume of a comic that lasted 5 volumes.

You may also have cbz's that contain a whole chapter each that make up one manga. Manga are often published chapter-wise first in weekly magazines. Many do not make it to the West fan-provided scanlations aside.... And even if they do make a Western release it's delayed, you may not like storing volume-based or you may like the fact that storing chapter-based means your reader is aware of the chapter you're at and can sync the read status to pages like AniList, Kitsu, MAL, ...

Many reasons to support different structures!

Describe the solution you'd like

Define - per library - what the structure is like. Plex-style.

Allow to set exceptions per series, because you may want to have a "Manga" library, but whilst 80% of your manga may come chapter-based you possibly have some in volume-form.

Describe alternatives you've considered or other apps that can do what you want

The alternative isn't really given. A chapter isn't a book really... Right now in Komga they are presented as such. That's a bit wonky. It'd be favorable to present the chapters still like books are presented in series, but the terminology and the meta-data level need to be adjusted.

Meaning I primarily set the meta-data per what is right now the series (set inker etc there) and have metadata scraping happen there. The what is now presented as books would be called chapters and still show a preview of the first page.

The hint at Plex isn't such a bad comparison: https://github.com/gotson/komga/issues/114#issuecomment-640043914

Additional context

idk if a plug-in-style scanner system is needed, maybe it is, but defining this manually as user and saving it as a "structure style preset" (for lack of a better term) could be pretty nice. Plex kinda always forces you into its own ways. Sometimes that's not all that great. (e.g. specials are in "Season 0" and specials that have the same name (opening 01) but differ per season are crammed into one folder and Plex sees them as one thing... yuck...)

gotson commented 4 years ago

No plugins needed at this stage, maintaining 2 scanners in the master branch is not a big deal. We could have a library type, like Plex does, that would define which scanner to use. That's the easy part.

The harder part is what you mention regarding metadata handling and terminology.

While reading the issue I thought about something that would fit maybe better : multi-files book.

Since in your structure, books would be composed of chapters, each chapter being a file the book being the direct parent folder, and the series the parent folder again.

Modeling the book by allowing multiple files would probably do the trick.

There is already a Media entity linked to a cluster book, that relationship could probably tweaked to allow multiple Media for one book.

GlassedSilver commented 4 years ago

Sounds good to me!

And sorry that I didn't reply sooner, I must have missed the email notification for it and just now I wondered about the status so I checked manually.

Anyhow, one thing I would like to highlight is that the chapter handling needs to be somehow transparent, so it should be:

a) fixable. Say two chapters got put in the wrong order for example. So much like setting the book sort order.

b) the chapters need to be individually accessed. Maybe and this is just an idea on how to do it: In iTunes you can display albums in an icon grid where only the covers are shown. Upon clicking on one a little box slides out and you can select a track from that album. I think this could be some inspiration? Secondly the chapters should sync to Tachiyomi as well, because Tachiyomi will sync reading progress on a chapter-level to the online services like MAL, Kitsu and AniList. (one of my favorite Tachiyomi features by the way. Pure bliss! Maybe we could have this as well in the web-reader? Let me know if this is interesting, so I'd create an issue for trackability.)

These are my thoughts so far.

ToxicFrog commented 4 years ago

I was going to file a feature request for "allow browsing library by on-disk structure rather than metadata", but I think that's just a special case of this feature.

Most of my comics don't have embedded metadata, and Komga's approach to metadata inference of "assume every file is part of a series with the same name as the directory the file is in, then display all 'series' in a library in a single flat list" works really poorly for most of my library, which often has multiple layers of nesting (e.g. Genre->Publisher->Series->Volume) -- you end up with, e.g., a dozen entries in the library all titled "Volume 1". Being able to browse the files as they exist on disk would fix this handily.

GlassedSilver commented 4 years ago

I was going to file a feature request for "allow browsing library by on-disk structure rather than metadata", but I think that's just a special case of this feature.

Most of my comics don't have embedded metadata, and Komga's approach to metadata inference of "assume every file is part of a series with the same name as the directory the file is in, then display all 'series' in a library in a single flat list" works really poorly for most of my library, which often has multiple layers of nesting (e.g. Genre->Publisher->Series->Volume) -- you end up with, e.g., a dozen entries in the library all titled "Volume 1". Being able to browse the files as they exist on disk would fix this handily.

Although we face some issues in a similar way, I personally would rather Komga be more iTunes-like and possibly even do the folder structure for me.

I think your concern would warrant a separate issue, because it is certainly a different approach. I very much do like setting metadata independently from file and folder names. :)

stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

GlassedSilver commented 3 years ago

Please unstale.

github-actions[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

GlassedSilver commented 3 years ago

unstale please

BryanWall commented 3 years ago

Is this enhancement would allow displaying libraries in a folder view based on the on-disk folder structure, add me to the list supporting it. This is the main thing preventing me from using Komga. My content is already in a folder structure that makes everything easy to find and I would prefer the ability to view it (and access it through OPDS) using the folder structure.

Maybe support plug-ins for scanning type on each library like Plex does so that others could create additional scanning types.

cyberweasel commented 3 years ago

+1 on folder structure browsing

GlassedSilver commented 3 years ago

Folder structure browsing would be a separate issue.

My issue isn't meant as a way for you to have something like this:

Books
->Books A-M
-->A random series
--->Book 1
--->Book 2
->Books N-Z
-->Sample Series
--->Book 1

Or like making genres your first folder in the root.

I mean, by all means, the refactoring of the structure handling could most definitely keep these needs in mind as well and adapt to this, however my use case just happens to be that chapter-based files (every chapter is a file, as is typical with manga, especially if you read them as they still release in weekly magazines, WEEEEELL before they get bundled into "tankōbon" — which is volumes with many chapters of a given series) rather than book-based files (all pages in a book are one compressed file).

For anyone who reads a lot of manga or primarily, so this would be a real game-changer, because UI-wise right now the presentation for manga is really weird if you've got a volume-based library.

Metadata assignment for this kind of structure is also a bit off, which is logical, because it's pretty iffy to treat dozens or sometimes hundreds of chapters as individual books. :D

gsargent70 commented 3 years ago

+1 on folder structure display as well.

gotson commented 3 years ago

This issue is not for folder base browsing.

@GlassedSilver I re-read that whole issue and can't really understand what the actual problem is. Is that purely for manga that is chapter based, alongside volume based?

Could you maybe provide a bit more detail on the symptom (what you see, and what is wrong or off)?

Without a clear understanding if the actual problem, this issue is too vague to do anything about it.

GlassedSilver commented 3 years ago

Ooops. I wrote that last comment on the go so I slipped the sense of my words around.

What I meant to say is that the presentation is really weird if you've NOT got a volume-based library.

It's very much about what Komga thinks in the structure is a series and a book.

E.g., a picture says a thousand words:

image

Himouto! Umaru-chan is a lovely franchise by the way, but I digress.

It's both the franchise, as well as the title for the main story line. There's two spin-offs (you'll see those in another screenshot)

Personally, I love storing my manga in this logic:

Manga > Franchise > Title of the series (e.g. is it the main plot, is it a spin-off, etc...) > chapter 1.cbz, chapter 2.cbz, ...

Others may come in:

Manga > Franchise > Title of the series (e.g. is it the main plot, is it a spin-off, etc...) > Volume 1.cbz, Volume 2.cbz, ...

The latter one is used if you've got copies of tankobon (volumes of manga), the former is what you'll typically have if you obtain your manga releases weekly or similarly regularly as they are released chapter by chapter, which is very typical for manga, basically the norm before a so called tankobon ever gets released)

The thing to note here is that the chapters could optionally be grouped in volumes, so it could also be this logic:

Manga > Franchise > Title of the series (e.g. is it the main plot, is it a spin-off, etc...) > Volumes > chapter 1.cbz, chapter 2.cbz, ...

Whereas each item in bold would be the individual file you read, obviously a volume would often be many pages (many dozens to a few hundred maybe) whilst the chapters are often short, hardly require being represented with their own cover art, they would best be viewed in a list view.

If you want to see a typical presentation of how chapters are presented for the avid manga reader who reads chapter-by-chapter as they are being released in weekly magazines: https://mangadex.org/title/04f7cd48-d429-4741-b821-5689d316ac1c — MangaDex is basically the Mecca of scanlation reading. (basically you can read manga there that have not yet or maybe will never be licensed and officially translated for the West, often times because the manga barely got by in Japan itself or because publishers don't expect the franchise to do well with a Western audience.)

gotson commented 3 years ago

I get the context, but i still don't see any problem statement here. What is the problem with what you describe?

GlassedSilver commented 3 years ago

This is how I group together my series within the franchise:

image

This is not ideal, because that way I cannot put the entire franchise within a collection, but only individual members of the franchise into more collections.

Also the nomenclature is way off here:

It would make sense to not call the "books" books, but rather chapters. Then there's also the issue that the "series" in this case is ONE manga within a franchise/series. The franchise is loosely held together by the collection. The franchise itself cannot be put into a collection. (e.g. all of Himouto! Umaru-chan franchise along with its two spin-offs and automatically if there ever was a new manga in the franchise it too cannot automatically appear as part of the franchise in a collection I may call "Favorite Franchises" or "Slice of Life Masterpieces", etc... you get the drift.)

The presentation really is key here, but also the way Komga interprets these files and folders.

by every chapter being a book you get a lot of metadata control over the individual chapter (hundreds of them), but VERY little for the actual manga they all make up, because the manga, the actual book so to say, is in Komga's eyes a series and hence only gets very limited metadata support.

That's before we even consider that I cannot catch-all metadata fill the franchise, because it in Komga's eyes the way I have to workaround here is just a collection.

gotson commented 3 years ago

I still don't understand what the problem is…

It would make sense to not call the "books" books, but rather chapters.

Sometimes it's also a magazine, a floppy, a hardback, a compendium… Book is a generic term.

Then there's also the issue that the "series" in this case is ONE manga within a franchise/series

That goes back to what's a series, but usually spin-offs are not the same series as the main line. The name of the series is different, so it's not the same series. Books are also following each other within a series. If you have the case where 2 series are intertwined, use the Read List to manage that, and add books from both series in the right reading order.

The franchise itself cannot be put into a collection. (e.g. all of Himouto! Umaru-chan franchise along with its two spin-offs and automatically

It can, if you use the right metadata format.

by every chapter being a book you get a lot of metadata control over the individual chapter (hundreds of them), but VERY little for the actual manga they all make up, because the manga, the actual book so to say, is in Komga's eyes a series and hence only gets very limited metadata support.

If you are talking about the virtual volume you don't have, no, Komga doesn't do that. You can either get the volumes instead, of make them yourself from the chapters. You can also duplicate metadata on each chapter of the volume they are part of, that works too.

That's before we even consider that I cannot catch-all metadata fill the franchise, because it in Komga's eyes the way I have to workaround here is just a collection.

Once again, a franchise is not a series. In Komga you have to use collections for that purpose.

GlassedSilver commented 3 years ago

Basically manga need one more level of structural hierarchy the moment chapters are the files you read and not volumes.

Ideally those would be displayed as a detailed list or something, refer to MangaDex for example.

Interestingly enough I noticed that MangaDex doesn't have the franchise connected anymore. You would never now if there's more to a franchise if you didn't look for it, unlike websites like AniList and Kitsu for example, where you can explore the remaining entries to a franchise alongside a particular one.

AND: even more lovely: they show you the relation to the entry you're viewing, e.g.: Is it a prequel or sequel in the story? Is it a spin-off?

Take a look:

image

This is the Kitsu.io page for Himouto! Umaru-chan and it also lists the TV adaptions, because the site is for anime (video) as well as manga (Japanese "comics") as well as light novels (basically what it sounds like, written text, "classic books" to read with a few more illustrations, often part of a manga franchise as well).

This makes (re)discovering your own or a friend's library a lot easier and approachable, but also helps if you simply forgot what came when and how they are related to each other. Obviously the user would need to set the relations themselves, but I think that's fair. You do it once and the app will remember it forever for you. :)

gotson commented 3 years ago

Ok, so to summarize, the whole issue is about having chapters as an entity in Komga ?

gotson commented 3 years ago

I am still trying to understand what it would bring, apart from people wanting to see "chapter" instead of "book" in the wording.

GlassedSilver commented 3 years ago

Maybe it boils down to that, yes. It's defintely a different beast to have something in a few to a dozen or typically by the hundreds and the way you want to present and apply metadata to each.

gotson commented 3 years ago

so maybe rephrasing the problem: you want to set metadata at the volume level, but you can't because you don't have the volumes, you only have the chapters.

Is that a fair statement of the problem ?

gotson commented 3 years ago

side question: what kind of metadata would you set at volume level exactly ?

we are talking about manga, so usually:

You could want the summary to be set, but in that case having a summary per chapter is probably more accurate, than having the one from the volume.

GlassedSilver commented 3 years ago

Very often the chapters is all I have yes, but optionally I may have the chapters in folders that represent a volume. That volume may have "book level" metadata like the penciller changed (I wouldn't track this on a per-chapter level) or the volumes have different cover art each, but many manga I only have a big glob of chapters without any volume-based hierarchy in folders. So the series would go straight to a chapter list there, whilst a volume-based sorted manga series would show some pretty cover art for a handful of books (tankobon) first and then go to the chapter list view or alternatively if the chapters of a volume are all in one big .cbz for example straight to reading view.

GlassedSilver commented 3 years ago

tankobon can be anthologies though, there you have single short stories (often one chapter) by one mangaka.

Tankobon can also change pencillers or have their own description/excerpt. Just two things that come to mind.

Tankobon also most assuredly have their own JAN/EAN/ISBN/UPC, ...

GlassedSilver commented 3 years ago

A summary per chapter? If you don't write that yourself hundreds of times per manga possibly you'll usually just get worthwhile summaries on a per-volume basis. Although options are nice and hey, for favorite chapters you may feel included to write a little recap of it yourself for future reference.

GlassedSilver commented 3 years ago

Could very well be that some of my ideas would also be applicable and handy for media that isn't manga.

The whole issue ticket is mostly about flexibility in structure.

gotson commented 3 years ago

Flexibility without purpose doesn't bring value. There is no strong use case here, and the whole flexibility thing is too vague to be implemented anyway.

I'm closing this, I have no plan to support volumes as their own thing. US comics have floppies and TBP, and everyone seem happy about how Komga handles it.

GlassedSilver commented 3 years ago

The purpose would be to assign meta data to the series rather than the book of which I'll have hundreds per series quite often.