IgnisDa / ryot

Roll your own tracker!
https://ryot.io
GNU General Public License v3.0
1.99k stars 55 forks source link

[Feature Request] All manga progress to be ticked off chapter by chapter #240

Closed Sazu-bit closed 1 year ago

Sazu-bit commented 1 year ago

Currently it's in 'percentage mode'. Most of my tracking is on ongoing content. So progress will always be at 99%, which defeats the point of having a progress bar.

The preference would be to get the chapter. AniList should have this metadata.

Alternatively, switch to manual input field and I'll type the number in myself.

Additionally... it would be really nice if I could just click on a button that would iterate the chapter count so I don't have to bother with having to go looking for different menu items.

IgnisDa commented 1 year ago

I'm not sure I get what the problem is. Can you attach screenshots?

Sazu-bit commented 1 year ago

Ryot-Progress Ryot-ProgressSetting

As you can see in the first it displays as %.

Problem: I cannot know for certain with an ongoing project at which chapter it will be completed by. My only option to use the % measure is to use it as 'currently available'. This means I have to manually calculate the progress between current chapter and known current maximum chapter. Leading to, once I catch up, it'll just be switching between 100% and 99% every new chapter.

This also applies to ongoing anime and tv shows.

Proposed Solution: Have the tracker pull the current maximum number of known chapters/releases. Have the user check off which chapter/episode they are on. Then report the progress. This means the progress bar will become useful as progress will drop as the anime continues, it could be used to notify the user when their progress has dropped below a figure that they can then come back to (I've not seen such feature anywhere else so it would be unique to ryot), i.e. people who want to save up for binging.

IgnisDa commented 1 year ago

Makes sense. This is the query that Ryot makes to get anime/manga details. Could you modify it so that it also returns the number of chapters and episodes? The current query returns null for both of them.

Sazu-bit commented 1 year ago

Just had a play around with some java script.

// Here we define our query as a multi-line string
// Storing it in a separate .graphql/.gql file is also possible
var query = `
query ($id: Int) { # Define which variables will be used in the query (id)
  Media (id: $id, type: ANIME) { # Insert our variables into the query arguments (id) (type: ANIME is hard-coded in the query)
    id
    title {
      romaji
      english
      native
    }
    episodes
  }
}
`;

// Define our query variables and values that will be used in the query request
var variables = {
    id: 15125
};

// Define the config we'll need for our Api request
var url = 'https://graphql.anilist.co',
    options = {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
            'Accept': 'application/json',
        },
        body: JSON.stringify({
            query: query,
            variables: variables
        })
    };

// Make the HTTP Api request
fetch(url, options).then(handleResponse)
                   .then(handleData)
                   .catch(handleError);

function handleResponse(response) {
    return response.json().then(function (json) {
        return response.ok ? json : Promise.reject(json);
    });
}

function handleData(data) {
    console.log(data);
}

function handleError(error) {
    alert('Error, check console');
    console.error(error);
}

This outputs 12 episodes (ran via playcode.io). Using the manga id (74949) it returns null episodes, 143 chapters and 15 volumes.

I don't know which id you are testing with.

Edit: While looking through the API I noted 'media.recommendations', I would love to have them.

If for whatever reason Anilist screws up on the metadata, it might be worth being able to manually overwrite it too, but so far there appears to be no way of doing this.

IgnisDa commented 1 year ago

Maybe the IDs I was testing with did not have that.

I won't provide a way to manually edit metadata.

IgnisDa commented 1 year ago

For manga and anime that do return a volume and episode count, the popup does accept manual inputs. As mentioned above, I won't provide a way to manually edit metadata.

image

Sazu-bit commented 1 year ago

So I've been playing around with a couple of ids. Notably:

Tales of Demons and Gods, it currently has 436 chapters, if not more. Yet the query returns null. Shenyin Wang Zuo, it currently has 219 chapters, if not more. Again the query returns null.

Without the ability to manually input the number this software becomes useless for tracking manga. However, the lead dev has stated that they don't wish to add a manual override so I guess this is as far as I go with Ryot :|.

(Some playing around later just to confirm: Most of the manga I want to track return null chapters via anilist.)

IgnisDa commented 1 year ago

I've had this problem of incomplete information for a lot of books. What i typically do is just go to openlibrary and add the information there. Then Update Metadata in Ryot updates the record. Maybe you can do the same.

Thanks for your feedback!

Robin-Sch commented 9 months ago

For manga and anime that do return a volume and episode count, the popup does accept manual inputs. As mentioned above, I won't provide a way to manually edit metadata.

The problem is, that for manga which is still releasing new chapters, it does not return the episode and volume count (as it's not "fixed" and might increase at any point whenever a new chapter is released). This means that for manga which is finished (no new chapters will be released) you can set the chapters, but for manga which is still releasing (probably the majority), it does not allow chapter to be set. At the same time, for manga which is still releasing you can't really set a % as whenever a new chapter is released your actual % will change too.

Robin-Sch commented 9 months ago

Also, for movies etc. you can change the date you've watched it, however, for manga you can't change the date and it will be shown as "now". Do you want me to open a new issue for this?

IgnisDa commented 9 months ago

The problem is, that for manga which is still releasing new chapters, it does not return the episode and volume count (as it's not "fixed" and might increase at any point whenever a new chapter is released).

What solution do you propose? You could mark the media as monitored so that the episode count is refreshed everyday. And as I said earlier, i won't provide a way to edit metadata.

Also, for movies etc. you can change the date you've watched it, however, for manga you can't change the date and it will be shown as "now".

Not sure what you mean here. Please post a screen recording of the issue.

Robin-Sch commented 9 months ago

What solution do you propose? You could mark the media as monitored so that the episode count is refreshed everyday. And as I said earlier, i won't provide a way to edit metadata.

Problem with that is however, that afaik, manga that is still releasing does not show/provide how many chapters have been released so far (so there is no episode count). What could work is saying that you've read x chapters (instead of saying you've read x %) I guess? Or maybe just like with shows you can say I've read chapter 1 at this date, chapter 2 at this date, etc.. (It does not matter that the metadata is not available, just switch the % with chapters read and it's fine imo).

Not sure what you mean here. Please post a screen recording of the issue.

What I meant is that for movies and shows etc. you can provide a custom date, but for manga you can't.

IgnisDa commented 9 months ago

Please create a separate issue. I will look into allowing a "free" seen item which would work in absolutes instead of percentages.