Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AniList includes episode 0 #625

Open
Statharas opened this issue Jun 17, 2018 · 12 comments
Open

AniList includes episode 0 #625

Statharas opened this issue Jun 17, 2018 · 12 comments
Labels

Comments

@Statharas
Copy link

I'd like to impose a list problem with Taiga and Anilist. As shown by the following picture, Anilist considers episode 0 as episode 1, which causes Taiga to look up one episode ahead.
image
image
This, of course, means you are expecting an episode that hasn't aired yet. The problem appears on Anilist.co as well.
image

Joshstar might be able to help out here,
https://github.com/joshstar

@joshstar
Copy link

Yeah we don't count episode 0's as the 0th episode as that would obviously cause a lot of problems, and it is the first episode of the season. I'm not sure if there's really any way around this issue, to be honest.

@Statharas
Copy link
Author

A way to do this would probably require a change of architecture, as it would regard each episode as its own entity, allowing more flexibility, but the transition to such a system would no doubt bring its own issues.

As for the simple problem that is an extra episode at the start of the season or a recap, I'm sure this can be easily done in the current architecture by simply providing some additional information along with the status of an anime from the API, giving the freedom to anyone using it to handle it themselves. I think this is the best, as most likely, it won't break anything.

@erengy
Copy link
Owner

erengy commented Jun 18, 2018

First thing that comes to mind is that AniList API could provide an episode offset for these series. It'd work, but it feels like a hack, and it'd make things more complicated for moderators and developers.

I haven't heard about the reasoning behind this "Includes episode 0" thing, but I wonder if it's worth it. I've recently started using AniList instead of MAL, and this was confusing for me as a user too. Not to mention that there doesn't seem to be a consistent rule about it (i.e. some "Episode 0" have their own entries, while some of them do not).

@Statharas
Copy link
Author

Statharas commented Jun 18, 2018

Offset is a hack, if I get what you're talking about. My suggestion is merely throwing some extra data fields with anime data, like "HasEpisodeZero" or "HasEpisodeRecap". They can either be Booleans or event point out which episodes it is referring to. This lets developers handle it their own way

Edit: We actually have an airing anime with two extra episodes. Full Metal Panic actually has two Intermission episodes, which is throwing Taiga two episodes ahead.

We need something like an Array which contains info about the extra episodes, such as the previous episode, next episode and such. This will let devs handle how these episodes work, and will let them handle how this works on their side.

We also need them to show whether or not they air as a replacement or as an extra for the week, as rarely, some companies release a recap and the episode after on the same day.

@joshstar
Copy link

I think an episodeOffset value or maybe an array of extra episodes (not sure how that would really work in practice though) would probably be the best we could provide as it will be a lot more flexible in the long wrong compared to "HasEpisodeZero" or "HasEpisodeRecap". I'll try to get something added within the next week or 2 as it will need to be apart of the new data submission system I'm currently working on.

As for why we include episode 0's apart of the main series, its party to ease mod's workload and to keep the database/lists cleaner. We only do it if the episode is apart of the same airing schedule/block, so if an episode 0 was only released as a blu-ray then that would have its own entry as it would be an ova instead of a tv entry. There are some older entries in the database that don't follow these rules, and those will be fixed up over time.

@Statharas
Copy link
Author

The arrays would contain info as to which episode they're before and after. This way, extra episodes can get into the schedule as well.

@erengy erengy changed the title Episode 0 - Taiga and Anilist AniList includes episode 0 Jul 28, 2018
@erengy erengy added the anilist label Jul 28, 2018
@Ruhrpottpatriot
Copy link

Imo, Episode 0 should tracked via an HasEpisodeZero field, because there's really only one episode zero at all time. This then could also be used to retroactively merge the zero episodes to their main series. Keeping them apart just for airing reasons is a bit unintuitive, since many people don't know the exact airing date. If an anime has the HasEpisodeZero field then you could also change the frontend to switch based on that field, which in turn would then either display zero or one as the first episode and programs like MAL could also switch on that.

For recap episodes I'd propose adding additional metadata to the episode in the following form:

{
    // Rest of data
    "Is_Recap": boolean,
    "Recaps": Array of Episode numbers
}

If the Is_Recap field is set, the normal episode number is ignored and an automatically generated recap episode number is used. This episode number is generated by calculating the arithmetic mean of the recap episode array. This guarantees us a valid sorting order and recap number based on the actual recapped episodes.
With this you'd be agnostic to any recap episode numbering scheme (most use x.5 but that's not a given) and applications using the api can access the data and filter on it.

@Statharas
Copy link
Author

Frankly, each episode should be an object itself

@Ruhrpottpatriot
Copy link

That'd make little sense. Episodes are mostly identical, as in they usually only differ in number. Making every episode an object screams for massive data redundancy that at one point has to be transmitted over the wire.
For a given anime season you don't really have much deviation from the norm. Possible differences are in 99.99% of all cases are:

  • Season length
  • Has or has not Episode Zero
  • Has or has not Recap Episodes

OVAs are already seen as a different anime, even if they are only one episode in length. You could do the same for recaps, but that'd make little sense, as a recap is closely tied to the main series and doesn't bring anything new to the table. This even holds true for recap movies.

@joshstar Is there somewhere I can suggest this to anilist? I don'T want to bloat Taigas Bugtracker for this.

@Statharas
Copy link
Author

Statharas commented Aug 4, 2018

Funny enough, MAL already does this, not sure about their API.
I wrote that half asleep.

I don't see a reason not to track episode count by counting the episodes as objects. Sure, if AniList does not track individual episodes this will require either staff to assist or the community work to complete the database, but most data can be taken from MAL. This way, the entries will be able to self identify their episode count and even provide a Watch-plan for series with spin-offs and such. One such anime is Danganronpa 3, which has two arcs that aired at the same time, one covering the other in terms of plot.

Edit: Surprising amount of info available in MAL, https://myanimelist.net/anime/10087/Fate_Zero/episode

@Ruhrpottpatriot
Copy link

Hmmm. You are right. I forgot some animes name their episodes.

You're also right in your other points.

@Volatar
Copy link

Volatar commented Oct 15, 2018

@erengy I feel that implementing a user triggered "hack" episode offset in the anime info second tab would work for now, and then tie it in to something official later once AniList does something in the API.

Not everything has to be pretty, but not being able to double click and get the next episode of a show, as well as syncing wrong episode numbers really bugs me for sure. xD

Hide it behind a setting that defaults to off unless the user has AniList selected as their Active service and metadata provider.

image

I would love such a hack just for usability in the meantime.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants