DavidoTek / ProtonUp-Qt

Install and manage GE-Proton, Luxtorpeda & more for Steam and Wine-GE & more for Lutris with this graphical user interface.
https://davidotek.github.io/protonup-qt
GNU General Public License v3.0
1.24k stars 40 forks source link

Add ProtonDB.com status #159

Closed DavidoTek closed 1 year ago

DavidoTek commented 1 year ago

This PR adds functionality to show the status from ProtonDB for a game.

Screenshot

sonic2kk commented 1 year ago

ProtonDB also returns a "confidence" rating, this isn't very important to show in a column but it could be neat to show in the tooltip maybe? Just my thoughts :-) I also think having a separate column for the ProtonDB rating is a good idea, it would go hand-in-hand with the anti-cheat rating imo

DavidoTek commented 1 year ago

I've added another column to the game list and modified the tooltip to show the confidence.

It looks like this now. Not sure about the colors/contrast, but looks fine with both Adwaita light and dark: screenshot2

EDIT: Also, is there a limitation to the API? I'm not sure if it is a good idea to fetch the game information on each startup for each game. If someone has 200 games in their Steam library that means 200 requests will be made to the protondb.com API. That's quite a lot of requests in total and not sure if the API can handle that. I think that API is meant for "internal" purposes.

EDIT2: Since https://github.com/DavidoTek/ProtonUp-Qt/pull/159/commits/d0fd9d7b70044416f22c2c6e142837aae9404d8a, the ProtonDB status will be requested on demand for each game individually by pressing a button in the ProtonDB column. When clicking the button, the status will be fetched from the API and when successful, the button is replaced with a label containing the ProtonDB tier/rating as seen above.

sonic2kk commented 1 year ago

If someone has 200 games in their Steam library that means 200 requests will be made to the protondb.com API.

Oh gosh, that is a scary thought! Some of us (cough) could have over 1,000 more than that which could be very problematic for requests haha

Having a button for this instead makes more sense.

I think that API is meant for "internal" purposes.

I also think it is as well, I didn't even know about it until I saw that STL used it :sweat_smile: Though it seems to have been "public" for a while so I don't think there's any risk of it going private anytime soon or anything. Even Steam has a few undocumented but rate-limited endpoints as well