getmango / Mango

Mango is a self-hosted manga server and web reader
https://getmango.app
MIT License
1.68k stars 117 forks source link

[Feature Request] "Entry" translation with the corresponding labels (Series, Volume and Chapter) + Total number of Volumes and Chapters on the front page. #87

Open VegethB opened 4 years ago

VegethB commented 4 years ago

I would like a function that allows you to replace "entry" with the right labels. In this way, a system can also be created to accurately calculate the volumes and chapters within a series / manga.

Ex:

author-name
├── manga-1
│ ├── Volume 1
│       └── Ch1.cbz
└── manga-2
    ├── Ch1.cbz
    └── Ch2.cbz

MangoV1

This thing didn't bother me personally. But a lot of friends who use mango are pointing out that it is actually not convenient not to know how many volumes and chapters there are (if they are all there and if the series is in progress or finished) scrolling through the pages to the bottom, opening the last volume and reading last chapter number.


image

As you can see, an "author name" folder should not be seen as a series but an "entry" and you don't have to put the total number of volumes and chapters it contains.

MangoV2

The result would be something like this. IT IS NOT IMPORTANT THAT IT IS DONE SO. Chapter and Volumes can be shortened with V and C and language with [M].

Accel World

8/8 V. | 43/43 C. | [M]

In short, it is enough that somewhere there is something that tells you that there are x volumes on x volumes and chapters.


I want to clarify that I did not want to pass it off as an improvement to be made immediately. It was a way of notifying you that among the things to make it more satisfying and useful (not in terms of function) this is repeatedly told to me.

Now, how to apply all this ... It simply puts itself as an extra function to be performed manually. That is: Since we don't use SQL or DB in general, everything is written on the ".json" but if every scheduled scan, you have to do this calculation, everything slows down. Then you add to the "admin" panel in addition to "do a scan" also "Do a thorough scan" or "Update library status" which will trig the scan to read and write in the ".json" current state of the paths. Now I don't know how to do it so that afterwards I don't have to re-scan the series that has already entered the data (but at the same time if he changes something he understands and updates it).

Last but most important:

1) There must be the possibility to manually overwrite (as for the names and covers) both the quantity of volumes present and chapters for everything, and the label (Series / Manga, Volume and chapter) for everything. 2) As I said at the beginning, if I put "_YenPress" as Manga, it means that in the counting of the "Sword Art Online" series on the first page I will NOT also see the volumes and chapters contained by "_YenPress" (which is inside Sword Art Online ) because I said YenPress is a series. In short, the reason 1) is because if it happens that "Sword Art Online" tells me "1000000/1000000 Volumes" because inside I have the versions "_ITA | _Name Publishing House" I want to be able to MANUALLY tell him, "no! SAO has these volumes and these chapters ".

Then I will add another issue for the Metadata Scrapper story.

hkalexling commented 4 years ago

I am not sure if I understand your request correctly. Are you saying that, for a folder with the following structure

test
├── ch1.cbz
├── ch2.cbz
└── vol2
    ├── ch1.cbz
    └── ch2.cbz

we should display "test - 2 chapters and 1 volume" instead of "test - 3 entries"? I think it's a good idea to avoid using the term "entries", which can be ambiguous, but nested folders are not necessarily volumes. For example, you can have something like this:

author-name
├── manga-1
│   ├── 1.cbz
│   └── 2.cbz
└── manga-2
    ├── 1.cbz
    └── 2.cbz

where the two nested folders are not different volumes.

Another way to tell him not to count some folders in volumes and chapters or to let him understand that you have two versions and then choose which version to use.

I agree it could be a useful feature, but I couldn't think of a good strategy to detect it when multiple versions of the same chapter are present. It's not reliable to rely on the filenames, and comparing the cbz archives would be too slow. Do you have any suggestions?

VegethB commented 4 years ago

I agree it could be a useful feature, but I couldn't think of a good strategy to detect it when multiple versions of the same chapter are present. It's not reliable to rely on the filenames, and comparing the cbz archives would be too slow. Do you have any suggestions?

Do it manually (there will surely be someone who will have double versions for large libraries but let's consider it initially later). Simply add the function when you go to edit the series (therefore folder that will contain all the versions of the aforementioned manga) not to add the folder that contains the 2nd second language to the main "collection / series" but to change the path.

Accel World ├── Manga ENG │ ├── Volume 01 │ └── Chapter 02.cbz └── Manga JPN ├── Volume 01 └── Chapter 02.cbz

it is actually complicated. The sense is to think of after a self recognition system. A trivial example is if it finds the tag "- Accel World - ENG" "- ENG" then all the contents of the consequent sub-folders will be put in the ENG view for the Accel World series, If it reads "- ITA" then in the main series when you click on ITA it will only process Accel World - ITA folder or rather the "Any name - ITA" folder is a draft. Surely there will be a better method to automate the process. Mainly I would focus on recognizing only the main folder which will contain all the subfolders and cbz of that version.

Accel World ├── Manga ENG │ ├── Volume 01 │ └── Chapter 02.cbz └── Manga JPN ├── Volume 01 └── Chapter 02.cbz

However the most "comfortable" result is: I open the library (... / library); I click on Accel World; Accel World opens as always. Since by default you have put in the server settings to view the manga with the ENG tag, the page I view of Accel World will be the ONLY one with the various volumes and chapters inside the folder:

Accel World ├── Version ENG

Then I decide that I want to see the ITA version. Click on ITA (or what will be the box to change the display language of the manga in question). The page reloads with the ITA version (only with the ita version, it means that if for the ita version you only have 3 volumes out of 8 you will only see 3 volumes on the web page)

we should display "test - 2 chapters and 1 volume" instead of "test - 3 entries"? I think it's a good idea to avoid using the term "entries", which can be ambiguous, but nested folders are not necessarily volumes. For example, you can have something like this:

author-name ├── manga-1 │ ├── 1.cbz │ └── 2.cbz └── manga-2 ├── 1.cbz └── 2.cbz

author-name: by default "Entry". You can manually force the "translation". Example, I click on the wrench to be able to change the name and cover and in addition I can tell him that he is: an Entry, a Series, A volume or a chapter, this will apply to everyone in the library, this is that if I want to, by hand, from the wrench I change the state of everything. To simplify in the folder that contains all the volumes / chapters you put the function that all the content will be converted with the option you have chosen. Otherwise you would have to do for each volume and chapter inside the volume of the series. Maybe there are 14 chapters per volume out of 40 total volumes ... You want to do it for every single element (Ironic).

├── manga-1: it is a series because it understands that "1.cbz" are volumes since there are no other subfolders. It may happen that someone decides not to catalog manga with only 1 volume with the structure: Manga> Volume 1> Chapter 1.cbz but with: Manga> Chapter 01.cbz, in that case a function is added to the wrench where all the files should be considered Chapters. Obviously only for that folder. │ ├── 1.cbz │ └── 2.cbz

└── manga-2: it is a series because it understands it from the fact that there are other sub-folders inside. ├── Volume 01: it is a volume, he understands it because it contains files (cbz, zip etc.) and the first folder contains only folders like his. └── Chaper 02.cbz: it is a chapter because by default it considers all files (what are already described as "pages") as such. If you want with the wrench on the folder that contains all the cbz you can tell him to consider all the cbz inside this folder not as chapters but as volumes.

I hope I was clear. If you don't understand I will try to make some schemes on paint / photoshop and screens. Unfortunately I have no programming knowledge so I don't really know how to convert all this theory into code. However, I hope I have at least given you a vague idea of ​​how the final result should be.

Edit:

What I mainly want to pass is the possibility to change the "Entry, Series, Volume and Chapter" status for each element of the library (just like you can change the name and cover for everything) in addition, to avoid becoming stupid, if I have a similar case:

Author-name ├── manga-1 │ ├── Volume 01.cbz │ └── Volume 02.cbz └── manga-2 ├── Volume 01 └── Ch.01.cbz └── Ch.02.cbz

I can from the wrench of manga-1, tell him about all of its content as volumes / chapters (thus avoiding to manually make the change for each cbz). The logic behind it could be: I load the "info.json" only of the 44 series of your library. In that info you have the usual things +: if it is an Entry (author name) or a series (manga 1), the total number of chapters and volumes (where the number will be calculated from the amount of stuff in the folder with the tag (- ENG / - ITA / - JPN) which has been set as default in the global settings of the server (((if in the future a system for translating the UI of the server will be added, I would still keep the function of which language to use as default for manga Ex. The mango "UI" will be "ITA" but I want the library ENG, which if I open Accel World, the page will load the ENG version because I put it in the settings.))) Another thing, the total number of chapters and volumes you see it both from the page of all the series and when you open the series that I will count the volumes and chapters or only volumes. Eg While I take the series I see "Accel World", 8 volumes and 43 chapters (maybe as an additional function it is added if the series is in progress or not and if it is in progress then it will be: 7/8 volumes and 40/43 chapters total the). I open Accel World and somewhere it says the same thing: In progress / over - 7/8 volumes | 40/43 Chapters.

Going back to info.json ... In order not to weigh down the system, just process the "info.json" of the series (which will contain all this stuff and future additions). I open Accel World, then upload the Info.json of the folders inside or the chapters if there are no volumes.

Let's say that more than one "Enchantments" is a Quality of life Request / Update. Dramatically improves the feeling it gives. In my opinion once added these things is perfect. Only the data acquisition system would be missing (the one that puts cover automatically because it understands that it is the series / folder: One piece 1997 corresponds to the manga One Piece 1997 on the database that holds all the covers of the volumes. You can always create a database for self-made. You put a pc with MySql etc. You put a system on mango that on the wrench of the folders seen as series and volumes you can start the script that will make a querry on MySql saying: One Piece 1997 - Volume 3, The database he will reply that he has a piece of information called One Piece and that has Volume 3 inside, at which point from volume DB has associated the path where the cover of that volume is saved and automatically downloads it. In sum MySql stores the series and so where he saved the various covers of that specific data. The server first asks MySql if there is an entry that resembles the one requested (one piece 1997 or One piece 1997 - volume 3) magno tells you how the output it found for that to series those results (so it gives you more results because your folder could be: OnePiece instead of One Piece and maybe MySql says it has found both One piece and OnePunch man, then you can choose which of the two results is the right one to use. This is because the Digital colored or spin off versions). At that point Mango tells mysql to give him the cover links for that entry, on mango you can choose which cover to use and off you go.

In a nutshell: I add One Piece 1997. In autonomy he will do the querry on the DB that says: 100% found One Piece. it will automatically put the default One Piece covers saved on the server where there is also the DB or on another server dedicated to the storage of the covers. Then if I want from the wrench I tell him, to change the cover manually or among those available in the DB for that specific Entry.

The same concept could be applied to the names of volumes and chapters. Example: My hero Academia ----- Volume 01 - The hero Arc ------------- Chapter 01 - My first hero day!

I don't know if there are free public DB servers to use (I mean the same thing that today anyone can create a free website using services like Wordpress.com, then the same thing for db, in doing so you create a Global DB, maintained by company that offers the service but completely usable by the software. Maybe microsoft azzure but it is paid.

Now many things have been thrown away. Obviously the main thing is the title of this issue. Add the QoL with Entry translation and the multi language + small enhance like 7/8 volumes.

hkalexling commented 4 years ago

Thanks for your reply! For future reference, it's better to separate multiple requests/bug-reports into different issues so they are easier to manage and track.

Rewording "entry"

If you are willing to do it manually it could definitely work. Let me think about it and see how we should approach this.

Switching between languages

I am not sure if it's worth working on this feature. I feel that it's tricky to implement it right, and it probably won't be used by many users. The last thing I want is to make Mango bloated with tons of features and configurations that are not commonly used.

In the current state, you can already put the cbz files with different languages into different subfolders. When you open the "Accel World" page, you can just choose a subfolder with the language you want. If you want to easily access the subfolder with a specific language, we could add a feature that allows you to "pin" a folder/entry to the home page. I think this makes much more sense.

Metadata scrapper

I agree we would need this before v1.0. What you described is very similar to what Plex does, and indeed we take inspiration from them. You mentioned Comicvine in #72, and they indeed offer free and public APIs for metadata searching. Mango is still in a very early stage of development, and I don't think it's the time to implement this. We should at least have #48 and #52 before doing this, so I will look into this later.

VegethB commented 4 years ago

Thanks for your reply! For future reference, it's better to separate multiple requests/bug-reports into different issues so they are easier to manage and track.

In fact, I was intent on splitting the comment. I think I will do it as soon as possible.

Switching between languages I am not sure if it's worth working on this feature. I feel that it's tricky to implement it right, and it probably won't be used by many users. The last thing I want is to make Mango bloated with tons of features and configurations that are not commonly used.

In the current state, you can already put the cbz files with different languages into different subfolders. When you open the "Accel World" page, you can just choose a subfolder with the language you want. If you want to easily access the subfolder with a specific language, we could add a feature that allows you to "pin" a folder/entry to the home page. I think this makes much more sense.

This is what I am already doing with the "_ITA" subfolder of the issue screens. The problem of not implementing a language sorting function is that by adding the counting function (7/8 volumes | 40/43 Chapters) it happens that from 7/8 (which are correct) they become 14/16 and from 40/43 to 80 / 86. So the only solution would be to tell him: for each element inside the manga (from the wrench) choose not to include it in the total count. However, if you decide to adopt the structure you mentioned above:

author-name ├── manga-1 │ ├── 1.cbz │ └── 2.cbz └── manga-2 ├── 1.cbz └── 2.cbz

The counting function is totally broken. As long as you don't make it work through logic: Series> Volumes> Chapters. So if I had to decide to put the "series" flag / tag to the folder (inside the main series) "_ITA", the result is that: From the main page of the library while I scroll I see "7/8 | 40/43", I open the manga, and the folder "_ITA" being put in flag "series" (as for the main folder) I will see 3/8 | 12/43. Another thing that I forgot ... Almost all manga have half chapters (chapter 10.5) so all chapters should be ignored by the count.

Metadata scrapper I agree we would need this before v1.0. What you described is very similar to what Plex does, and indeed we take inspiration from them. You mentioned Comicvine in #72, and they indeed offer free and public APIs for metadata searching. Mango is still in a very early stage of development, and I don't think it's the time to implement this. We should at least have #48 and #52 before doing this, so I will look into this later.

It was not a request, it was one more thing that I wanted to add and that I will remodel when I split the original comment. I simply said, instead of thinking about stuff, or you go to use ComicVine (but it has limits and is more complete for comics than for manga) with API or you create a completely dedicated new database (more than similar to plex it is similar to the database where plex is supported) http://thetvdb.com/ this database works perfectly and I will describe in the comment of the Metadata Scrapper how you just put it online and the rest is done by the mango community or if you will put a system in bees, from the world community.

So in summary.

The comment / request is: Remove the word "entry" from everything and replace it with the appropriate ones. Add a volume count and total chapters into the series / manga. Where the best solution is to relegate the count following the scheme: Series Label> Volume Label> Chapter Label (not counting x.xxx chapters) where, however, I can manually choose who to assign the labels to (wherever, as for the covers and names) and the same thing for the count (so if I decide that the volume "_ITA" is not a volume to be considered in the count, I can do it using the wrench telling him or not to count it or changing the label from volume to series or entry). Relegating the function so theoretically (if I'm not mistaken) if I assigned the series label to the "_ITA" folder, when I open the folder I will see the ONLY count of the elements inside the "_ITA" folder.

The rest of the things were extra and not part of the request. Thanks anyway for your patience and time.

VegethB commented 4 years ago

Updated

hkalexling commented 4 years ago

Thanks for your update! It's much clearer now.

  1. Why do you think it is important to flag a manga as ongoing or finished? There's no way to get the information automatically until we have the metadata scrapper.

  2. As you can see, an "author name" folder should not be seen as a series but an "entry" and you don't have to put the total number of volumes and chapters it contains.

I am not sure I understand. Are you saying that we should display "2 entries" instead of "2 series" on the "_YenPress" card? The two sub-folders in "_YenPress" are both flagged as series, so why not keep it consistent and show "2 series"?

  1. Then I will add another issue for the Metadata Scrapper story.

I think it's better to edit #72 if you have new things to add. I am happy to re-open the issue for you.

Some other issues:

I think we should just count every chapter when calculating the chapter count. How can you determine if an archive file is a half chapter? It would be very unreliable to parse the filename. For example, an archive might have the number "91.5" in its filename, but the number is part of the title and not the chapter number.

Unfortunately, it's not that easy. To do that I will have to pay for the server and domain cost, and Mango is a niche software so I would be surprised if our users can contribute enough metadata to make this useful. It's much more feasible to scrap from third-party sites like ComicVine or MangaDex.

VegethB commented 4 years ago
  1. Why do you think it is important to flag a manga as ongoing or finished? There's no way to get the information automatically until we have the metadata scrapper.

Because they were screens made for something else 😅. However, it is a thing to do by hand for each series (just like when you change the covers, it is not automated so do it by hand) and it is an option only visible on the cards labeled as series.

I am not sure I understand. Are you saying that we should display "2 entries" instead of "2 series" on the "_YenPress" card? The two sub-folders in "_YenPress" are both flagged as series, so why not keep it consistent and show "2 series"?

No I explained myself wrong. According to my reasoning, if you put the "series" label on the "_YenPress" card, it means that the amount of volumes and chapters it contains will be displayed. Yes always according to my reasoning, if however the only things he sees are other series within him, then, he will skip them from reading his chapters and volumes ... The problem lies in the fact that you should make sure that the series with: "0/0 Vol." And "0/0 Ch." Is not really seen on the "_YenPress" card. It is rightly illogical that "_YenPress" is considered a series of 2 series. "_YenPress" is a publisher (or an author if it was the "author name" folder). Instead things with "entry" are skipped from the count and do not show the quantities. I hope I have clarified. At most, we see how the community will react to the first version. If they prefer that YenPress also show the series, then it will change.

  • You mentioned that things like "Chapter 91.5" shouldn't be counted toward the total chapter count:

I think we should just count every chapter when calculating the chapter count. How can you determine if an archive file is a half chapter? It would be very unreliable to parse the filename. For example, an archive might have the number "91.5" in its filename, but the number is part of the title and not the chapter number.

The problem is that officially, half-chapters aren't counted, and many series are full of half-chapters (one punch). Then I would add a new label (which, however, will have to be put manually) "Half-Chapter", when there is this label the system will ignore the count of these "ch.", Of course having to open 50 series and edit it by hand is definitely a break like changing the covers ... But if we can't do it by the name I wouldn't know how to make him understand that it's half (I know I'm going to go off topic ... but if we force, that to use this system, you have to follow a nomenclature standard the problem is solved immediately. Es: image image image unfortunately I cannot put English into the program. The meaning, however, is understood. As can be seen from the 3 screen. it is a standard as for the standard for plex / emby / kodi etc ... If you want an advanced analysis system. Activate option and rename series with the right name scheme. It means that the first 91.5 that reads is necessarily referred to the chapter number and not to the name of the chapter that comes next. To rename just use "bulk rename utility": https://www.bulkrenameutility.co.uk/ )

  • You mentioned about hosting a website like TVDB to allow the community to contribute metadata:

Unfortunately, it's not that easy. To do that I will have to pay for the server and domain cost, and Mango is a niche software so I would be surprised if our users can contribute enough metadata to make this useful. It's much more feasible to scrap from third-party sites like ComicVine or MangaDex.

In fact it was something thrown there and that I will explain as soon as I can find time again.