Giter VIP home page Giter VIP logo

Comments (4)

DavidoTek avatar DavidoTek commented on August 14, 2024 1

Thanks for reporting.

ProtonUp-Qt currently only loads the 100 newest compatibility tool releases.
Everything that is older than that, is not loaded. GE-Proton 6 happens to be older than the 100 newest releases.

It's probably a good idea to add a Load more button to ProtonUp-Qt now that we got compatibility tools which have above 100 versions.

For now, you need to manually download and install GE-Proton from their releases page: https://github.com/GloriousEggroll/proton-ge-custom/releases
See https://github.com/GloriousEggroll/proton-ge-custom?tab=readme-ov-file#native for an installation guide.


Code References for Developers:

https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases?per_page=100

def fetch_releases(self, count=100):
"""
List available releases
Return Type: str[]
"""
return [release['tag_name'] for release in ghapi_rlcheck(self.rs.get(f'{self.CT_URL}?per_page={str(count)}').json()) if 'tag_name' in release]

from protonup-qt.

mjcampagna avatar mjcampagna commented on August 14, 2024 1

Chiming in to say I would also really like to be able to load more/older versions of Proton. Fingers crossed this will be in a coming update, and I sincerely appreciate your work on ProtonUp-Qt.

from protonup-qt.

sonic2kk avatar sonic2kk commented on August 14, 2024

Might also make sense to make the default configurable -for now in the config, in future on a settings screen, along with a place to put the API tokens for GitHub/GitLab, which could complement this "load more" feature quite well

from protonup-qt.

sonic2kk avatar sonic2kk commented on August 14, 2024

Hmm, it seems the maximum that GitHub will return is 100 per page. You have to pass the &page= parameter to get more than this. We pass this parameter for Proton-tkg to fetch a bunch of pages when searching workflow runs, as it is possible all runs on the current page may have failed so we go back through until we get at least one page with one successful run (#237).

If you have jq installed you can test this from the commandline:

## Returns "100"
curl --silent --url "https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases?per_page=100" | jq '. | length'

## Also returns "100"
curl --silent --url "https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases?per_page=200" | jq '. | length'

## Returns "69" currently
curl --silent --url "https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases?per_page=100&page=2" | jq '. | length'

So in order to accommodate this, we would need to add some logic to filter through multiple pages if the count is over 100, which is the GitHub-enforced maximum per page. We would have to calculate how many pages this would correspond to, which I'm sure is easy but my maths skill ends far beyond this point 😅

However before implementing, we should consider something: We have a util method for fetching project releases, aptly named fetch_project_releases. We use this for some ctmods but not others, the ones that don't use it I think had some cases that the current implementation doesn't allow for switching over to just yet, although I can't remember exactly. It may be worth implementing this "pagination functionality" in fetch_project_releases and then focusing on allowing other tools to use this method. This way we have the implementation of this pagination at a higher level and it would work out of the box for all ctmods using fetch_project_releases (which right now is only Kron4ek, Luxtorpeda+Boxtron+Roberta, NorthStar Proton, vkd3dproton+vkd3dlutris, and DXVK+DXVK Async).

EDIT: Having a look again at the code, we probably don't use these functions for the GE-Proton ctmod because, for instance, fetch_project_release_data doesn't parse out checksum, and we validate the checksum when downloading GE-Proton. It should be possible to extend this function to parse out the checksum, if it exists.

from protonup-qt.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.