boppreh / steamgrid

Downloads images to fill your Steam grid view
MIT License
675 stars 42 forks source link

support for multiple banners #147

Open papaj-na-wrotkach opened 1 year ago

papaj-na-wrotkach commented 1 year ago

When hovering over Steam game in grid library view the banners show up. Currently steamgrid supports only one image for banner, but most Steam games have multiple banners playing in slide show:

https://user-images.githubusercontent.com/29522138/230802936-82290fb2-06e2-4e37-a0d3-c38556a3127e.mp4

First and second are original Steam games and the third is a non-Steam game (banner trimmed but as you can see it's static)

I'd like to have multiple custom banners for non-Steam and steam games where for Steam games they should be added to existing banners - not overwrite them.

nondetect commented 1 year ago

There're not banners, when you are hovering mouse on game Steam shows screenshots from store page. You can use animated file in this case

papaj-na-wrotkach commented 1 year ago

Yes, I know they are screenshots, but steamgrid uses the .banner.ext file for this type of image, so I called it by that name. I mentioned this in #148 and #146. The image shown for the most recently played game should be called header (Steam calls it header.jpg) and the name banner could be used for the "hovered" screenshots or other images.

The animated files are a really good idea, but they would "overwrite" the existing ones for Steam games. A solution for this would be a feature to automatically create animated images for banner type images. It's better to use the "native" method (the way Steam displays banners) if possible, otherwise this is the best solution.

This feature could automatically fetch screenshots or other existing images from Steam (and maybe other sources) and merge them with the user images (in the games folder). The user images would be named something like Game Title.banner.##.ext, where ## stands for image index. This would allow users to insert Steam-fetched images between their own images.

Example - the files in the user's directory look like this (0-based indexing)

The 1st image would be taken from the games directory, the 2nd from Steam, the 3rd from the games directory, the 4th and 5th from the games directory, and so on. There should be an option to limit the number of images, so that the last one could be from the games directory or not. For this example

This limit would also allow user to use only their own images.

Another possible option is to store the order in some kind of config file, but that would change the whole structure of this project, so maybe we'll skip that idea for now.

Of course there should be switches to enable/disable the automatic creation of animated banners.

Lucki commented 1 year ago

Those images are loaded on demand and not requested from disk like all the other library art steamgrid handles. You'd have to catch the request and manipulate the answer to your needs. IMHO not worth it for something you don't even see all the time and IMHO beyond the scope of this project as it'll require a permanently running web server answering steams requests. Might be possible to find the temporary folder and replace the images there but as the name suggests that's temporary and will reset once the cache is cleared.

papaj-na-wrotkach commented 1 year ago

How about support for non-Steam games only? I primarily wanted it for non-Steam games because they appear different than native Steam games. I think the only solution for this would be to generate a looped video/gif with all of requested images/screenshots as I suggested earlier.