jaydenmilne / steamsync

Tool to automatically add games from the Epic Games Launcher to Steam
GNU Affero General Public License v3.0
157 stars 17 forks source link

Download art for all non-steam game shortcuts #10

Closed idbrii closed 2 years ago

idbrii commented 3 years ago

This PR also builds on #8 and #9.

This is a pretty big PR and adds a feature I'm pretty excited about: entirely automatic art downloads for all of your non-game shortcuts. It tries to figure out the appid and downloads art from steam. If that fails, there's a way to specify backup art (which the itchio integration does but EGS and Xbox do not).

If you added non-steam games manually (from Origin or something we don't yet support), it will also try to get art for them too.

Here's some before and after with a mix of Steam, EGS, Xbox, and itch games:

Big Picture

before-after-bigpicture

Desktop client

before-after-desktop

* Prey in those screenshots only works because it's special cased to avoid getting it confused with Prey 2006. It's a good example of how this method isn't foolproof, but I think it's effective enough to be worthwhile.

This PR also adds --replace-existing which I found really useful in testing.

Downloading requires the --download-art argument since we'd suddenly download a whole lot of stuff which might be bad? Although my steam grid folder is only 14 MB so maybe it's not that bad. Not sure if you want the defaults to be very minimal or not.

If you run steamsync as admin, it creates symlinks instead of making duplicates of art files. That's not documented, but I'm not sure where I'd put it.

jaydenmilne commented 3 years ago

Final thoughts for merge:

Let me know if you want to implement any other heuristics I suggested for guessing steamids

idbrii commented 2 years ago

Again, this is on top of #9.

I've fixed the crash, supported abzu, actually checked the version number in the app list, expire the app list after a week, and added a flag for add all art. But I didn't try steam search as an additional fallback.

I renamed my grid folder and tested a sample of games that hit a bunch of the boundary conditions.

Game Source images downloaded
ABZU epicstore 4/4
Control epicstore 4/4
Rocket League® epicstore 4/4
What Remains of Edith Fin epicstore 4/4
Baba Is You itchio 4/4
Lenna's Inception itchio 4/4
The King's Bird itchio 4/4
art of rally itchio 4/4
Genesis Noir for Windows xbox 4/4
Ghost of a Tale PC xbox 4/4
PHOGS! xbox 4/4
ReCore xbox 2/4 (old game)
Tetris® Effect: Connected xbox 0/4 (Appid not found.)

Tetris Effect doesn't work because weirdly the game's appid is listed as "omega": 1003590, in the downloaded json. I swear this worked earlier, so maybe they changed something since it's still not out on Steam yet. I guess ReCore is so old and unpopular that they didn't bother to upload new steam grid art for it.

Then I ran with --download-art-all-shortcuts and it looks good, but I didn't check as closely. (Downloaded new art for 35/37 games!)

idbrii commented 2 years ago

Oh, I also tested downloading art for a UWPHook shortcut (Spiritfarer) and that works well too.

👍🏽