-
Notifications
You must be signed in to change notification settings - Fork 72
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
[Feature Request] Overhaul SteamGridDB Integration #933
Comments
Started some initial work on this, |
There is a massively in-flux branch over at Right now, the artwork does not at all respect the preferences selected by the user in the Global Menu, as those preferences only apply to grid artwork (boxart). We still need to overhaul the Global Menu SteamGridDB options to select things like dimensions, styles, etc. This is probably going to be a massive overhaul. Once we have these, they'll be saved as preferences on the Global Menu, so we can just slot these in when making the call in We need as well a way to wire this function up to the commandline, which will probably involve a massive overhaul of our SteamGridDB commandline options to group the actions together as much as possible
And finally, we need a way to get icons for Non-Steam Games. This can really only be done at time of adding Non-Steam Games right now, as we have no way to update an entry of the shortcuts VDF file right now (icon is stored as a string field in So still lots of work to do here, but things are moving now. |
When completed, #934 will probably accomplish everything in this issue. Just with how things worked out, I guess it never ended up being split into multiple PRs like I had hoped/envisioned. |
Tenfoot can be handled with the same grid endpoint, but with different dimension parameters. See #934 (comment) -- Very glad that this should work out to be much simpler than anticipated! |
I had an idea to add an option for fetching all artwork for Non-Steam games as well, it's on the todo for #934 but will probably go in a separate PR, as we'll need a way to parse all known Non-Steam Game AppIDs from the |
There was another idea I had about potentially allowing searching on Game Name on SteamGridDB. This would be tricky as we'd have to pick the first game name that matches, so for the commandline it should be an optional parameter instead of
If both textboxes are blank, we will use the name entered in the Non-Steam Game Name field (same goes for commandline). We'd also update the commandline options accordingly. |
Did some more tests with the SteamGridDB search endpoint and it seems pretty reliable! I tested with Touhou 6 (which has various names and it worked no matter what name I entered) and Brutal Legend (which has a special character). I also tested with "Sonic Adventure™ 2" (which is the name Steam uses) and "NieR:Automata", which worked. I did have an issue with "NieR:Replicant", which returned success but no data. However, the same thing happens when I search for that game on SteamGridDB's website, so it's not something we need to worry about. When this is added and when the wiki is updated to document this, we should note to users that the name has to be exact if they want exact matches, for example "The Elder Scrolls IV: Oblivion" is NOT equivalent to "The Elder Scrolls IV: Oblivion Game of the Year Edition". In short, searching by game name is more than feasible it seems. Huge props to SteamGridDB for having such useful and robust endpoints. |
The initial work for this was merged in #934 ! We now have a much more streamlined SteamGridDB integration and we can now do the following:
The next pieces of work will be quality of life enhancements on top of this:
But overall there has been big progress here! |
Some good work has been done on this. We now have timeout/retries for pinging SteamGridDB, and we can search on Game Name and Steam AppID when adding Non-Steam Games. Now it is really frictionless to use SteamGridDB artwork when adding Non-Steam Games! Now we need a frontend for |
Command to download grids for all Non-Steam Games was added in #963. The only remaining bit of work for this issue is the frontend GUI for fetching SteamGridDB artwork. |
New year, time to finally close this issue out. Begun work on the GUI frontend for the SteamGridDB command, basically allowing a frontend to enter the information to pass to the command. Unsure how to structure the UI just yet, but we're getting there. Once implemented, the wiki should also be updated to show this new functionality. |
The SteamGridDB Overhaul is finally fully complete after many months of work! Thanks to all who suggested improvements and tested. This is one of the most significant initiatives STL has seen in recent times, and has the most user-facing impact. I hope this is useful for users :-) |
System Information
Feature Description
(expansion of #906)
Current Behaviour
The SteamGridDB settings right now, for both Steam games and Non-Steam Games, will download only the images available at SteamGridDB's
grid
endpoint.https://www.steamgriddb.com/api/v2/grids/steam/<steam_appid>
https://www.steamgriddb.com/api/v2/grids/game
This
grid
endpoint only returns the game boxart, so we aren't giving the user any way to fetch the hero or logo artwork. This does limit the usefulness of the feature.Proposed Enhancements
This is already implemented, so I'm putting it behind a spoiler. The implementation turned out to be simpler than this and so ended up changing, but I'm keeping it here for legacy :-) The remaining work is covered in the todos and the PRs linked to this issue.
Legacy Implementation Details
The idea is to allow SteamTinkerLaunch to download more game artworks from SteamGridDB. To do this would require an overhaul of the internals of how we do this, as well as a GUI overhaul. Right now, on the Global Menu we have a basic set of options that look as below, but we will expand upon this to allow more functionality when using SteamGridDB.
To enhance the functionality, we should do the following
steamtinkerlaunch update
and make it its ownsteamgriddb
command, essentially overhauling commandline usage. We could keep the existing logic but also add an alias, to preserve compatibility. It may be a big burden to do this, so simply picking one or the other may be best.steamtinkerlaunch update grid <id>
)installed
), but THIS SHOULD BE CHANGED to instead only download artwork for the current game by default, or a custom Steam AppID/Game ID, and then allowing owned/installed. We could simply add a separate command that will accept these arguments, so whensteamtinkerlaunch update grid
is used, we will use installed/owned, otherwise we can take AppID. Though keeping the wiki in sync here would be a pain!update
block?)600x350
(Valve recommended dimensions)x
in0x0
This is a pretty big overhaul and will likely be completed in stages, which I will attempt to outline below. We can use this to track the progress of implementation.
Part 1
Add textbox on Game Menu to optionally specify SteamGridDB Game ID(irrelevant, though if someone really wants it they can submit a PR)Add command to take in SteamGridDB API token(command already exists)Part 2
These changes can be worked on after #934 is merged.
steamtinkerlaunch sgdb
wiithout options should open a Yad window where a user can enter information for the SteamGridDB commandline fetcher function, with options to select which artwork they want to download as well, and options to enter the Steam AppID/Game ID etc -- Essentially a frontend for the sgdb command)shortcuts.vdf
(can get all Steam Shortcut AppIDs using this gist I wrote up)Add command to clean up grids stored by SteamTinkerLaunch in its config folder(this would be a good thing to implement more broadly, to clean up STL downloaded files, would potentially be more useful as going into the cache folder once STL stores non-config data in ~/.config #486 is implemented)The text was updated successfully, but these errors were encountered: