anansi-project / comicinfo

ComicInfo.xml's new home
https://anansi-project.github.io/docs/category/comicinfo
MIT License
141 stars 8 forks source link

New Element: PublicationStatus #5

Open therobbiedavis opened 2 years ago

therobbiedavis commented 2 years ago

Where does this comes from?

Discussions on Kavita's Discord

What is the rationale for adding support for this element?

Would help to quickly determine the status of a series for the application reading the tag adding without the need to add logic to calculate it's status.

Is the element already handled by any application or tool?

No, but Mylar already computes a Status. Not sure specifically how though.

Kavita handles this currently by calculating the Number (Currently Comic Issue #) against the Count of issues for the series. Unfortunately Count is often times not populated and must be populated after the fact.

majora2007 commented 2 years ago

I'm personally in fan of including something like this. By having it written as a dedicated tag with defined values, we can eliminate the consumers (Kavita/Komga) from using arbitrary logic on other fields and instead read directly from source without interpretation. This also opens up other statuses, like Hiatus, which are defined online.

Correction, Kavita just uses Count and if it's defined and greater than 0, we assume the series is completed. Not the most ideal.

ocgineer commented 2 years ago

Would it be a string or a list of specific values that can be used? Ongoing, Hiatus, Discontinued, and Completed are those that just come to mind.

Now with Manga, which I manage in Calibre at the moment, I have an additional field that would be something like PublicationStatusCountryOfOrigin, which I use to indicate if the status in the country of origin, Japan in the case of Manga. This is for me/others to see that a manga for example has already finished in Japan but the English publication is still catching up. I know this might be a very specific (personal) use case but I just thought I share my use case regarding publication status.

therobbiedavis commented 2 years ago

Would it be a string or a list of specific values that can be used? Ongoing, Hiatus, Cancelled, and Completed are those that just come to mind.

In my head it would ideally be specific values as you stated above.

Now with Manga, which I manage in Calibre at the moment, I have an additional field that would be something like PublicationStatusCountryOfOrigin, which I use to indicate if the status in the country of origin, Japan in the case of Manga. This is for me/others to see that a manga for example has already finished in Japan but the English publication is still catching up. I know this might be a very specific (personal) use case but I just thought I share my use case regarding publication status.

This brings up an interesting point. These two publications (Eng and Jap) I think should be recognized as two separate series differetiated by their starting publication year e.g. [Series Name] (2002) and [Same Series Name] (2003). This is how Comicvine handles it I believe, which would then make a PublicationStatusCountryOfOrigin tag unnecessary. I do know that CBL has a Country tag though, maybe that would be a nice addition. If you think so @ocgineer, feel free to suggest it in another issue.

ocgineer commented 2 years ago

I only work with English releases, but I personally like to know then if the Japanese publication is finished where the English publication is not. As I mentioned this is just something I personally use in Calibre at the moment so I thought I would just mention it in case it creates some interest ;)

majora2007 commented 2 years ago

I believe a fixed list, like how Age Rating works is the ideal. We can always come back and add new statuses depending on needs.

I don't think PublicationStatusCountryOfOrigin is necessary at all. A japanese release and a english release should honestly be separate series.

gotson commented 2 years ago

No, but Mylar already computes a Status. Not sure specifically how though.

Mylar checks if no issues have been released for the past X months (i think it's 2), then changes the status to Ended.


@majora2007 what are the current statuses available in Kavita ?

Komga has: Ongoing, Ended, Hiatus, Abandoned

I agree that we need an enum and not a free string for that field, and each consuming application can use a different wording if they need to (like Ended => Completed, or Abandoned => Discontinued).

lordwelch commented 2 years ago

I'm not sure this is a good element for ComicInfo.xml as this is status relating to the whole series not just a single comic for example if you are say collecting Detective Comics and they decide to take a hiatus for a month or two and then come back that's almost 2000 edits that if not completed correctly can cause a lot of confusion.

Obviously there is a certain amount of information that must be included and ComicInfo already contains the count element which would change with every new release but I think for the most part that the count element is seen as a best effort and not authoritative.

Though I think that a more limited element that just tracks [ongoing, completed, abandoned] or another set that shouldn't change more than once would be useful.

gotson commented 2 years ago

I'm not sure this is a good element for ComicInfo.xml as this is status relating to the whole series not just a single comic for example if you are say collecting Detective Comics and they decide to take a hiatus for a month or two and then come back that's almost 2000 edits that if not completed correctly can cause a lot of confusion.

Obviously there is a certain amount of information that must be included and ComicInfo already contains the count element which would change with every new release but I think for the most part that the count element is seen as a best effort and not authoritative.

Though I think that a more limited element that just tracks [ongoing, completed, abandoned] or another set that shouldn't change more than once would be useful.

As you pointed out, Count is already a projection of the series status at an instant in time where the book was published. It will change over time,

This can be circumvented by consuming applications by the use of implicit rules, for instance use the maximum Count element found in all the ComicInfo.xml in each book of the whole series.

We could have the same thing for the publication status, where the authoritative one should be the last one.

So if a series of 5 books is going in hiatus at book 3, but then starts again for book 4 and finishes of book 5, you could imagine the publication status for each book to be:

  1. ongoing
  2. ongoing
  3. hiatus (if you know at the time of publication that it is going in hiatus)
  4. ongoing
  5. ended
majora2007 commented 2 years ago

Kavita currently has Ongoing, Hiatus, Completed but has plans to expand to further in a future update.

I know I would also like Cancelled/Abandoned to be included. I also agree 100% that an enum is the best path to keep it simple and concise.

I agree with @lordwelch that this is not an ideal tag for ComicInfo since it's aimed at the Series, but as goston mentions, we can look at the last book to determine the status. This is the biggest issue for the users, whenever something ends, they end up having to retag (despite consumers, at least Kavita, only needing it on one book in the series) all their files.