Nebukam / steam-game-finder

Steam : Game Finder is a small app/browser extension allowing a group of Steam users to find out which games they have in common, and who is left out; as well as filtering their shared libraries content to find what to play next.
MIT License
34 stars 4 forks source link

Show installation size and current Steam price #4

Closed andrasfuchs closed 2 years ago

andrasfuchs commented 2 years ago

The current filtering system is great already, so it's just a nice-to-have feature request. :)

Two of the currently not shown things that help us decide what to play with is installation size and current price on Steam (if not all of us have the game already).

So, it would be great to add these pieces of information to the card of the games in the search result. I would imagine that installation size would be visible for all games, and price would be shown only for games that not all us have.

Nebukam commented 2 years ago

Hmm that one's tricky. Installation size & technical requirements I can cache so that's definitely possible, I'll look into it.

Price tag would require me to fetch the data dynamically: it changes based on country, discounts etc, so it's definitely not something I can store-and-forget. That means direct calls to steam which doesn't like being harassed (there's some very restrictive limitations on API calls, whether I use the API or scrappe the website on a need-to basis, which initially led me to cache the full steam catalog). It can quickly become a rabbit hole of features requests : how about checking on possible active discounts on key resellers etc, leading to tons of CORS issues/dead ends :(

Bottom line what I could do is fetch pricing info only "on demand" rather than automatically (I.e "show product detail sheet" or something)

As far as technical specs go, I think I can get the install size easily, not too sure about download size. Any more infos or things you consider when looking for a game that usually fall into "hardware requirement" considerations?

andrasfuchs commented 2 years ago

There is an API for IsThereAnyDeal.com that could probably get you the prices, but I agree that pricing seems pretty complicated considering different countries, currencies, etc. and it's probably not worth the effort.

As a second thought: since the user who uses your extension is likely already logged into Steam, would it be possible to fetch the Steam store page and parse the price from there, but only if that game is owned but the others, but not by the user who uses the extension? You could also limit the number of requests by request only the games that have their cards shown on the screen at the moment, or even make a "check price" button on the card itself.

For us I think only the installation size matters as a technical requirement, I think. At least that is usually the question when we need to install a game to play together.

One more thing that I usually check for the potential co-op games: their score on steamdb.info. Unfortunately they don't have an API, and they are not planning to have one.

Nebukam commented 2 years ago

Ok so I scrapped what I could from steam for the storage values, and did a basic implementation of price fetching -- only scraping the steam website at the moment. It's up on Firefox and in the web app :D

image

Will look into integrating the IsThereAnyDeal.com API at some point, there can be quite an extensive number of result/plateform offering deals so I can't do a "quick and dirty" implementation (so I'm not closing this just now)

andrasfuchs commented 2 years ago

Works flawlessly! I can't thank you enough! 🙏

I don't think IsThereAnyDeal's API would add too much more value at this point, getting the price from Steam is already fantastic!