I was recently sent an interesting little script that will compare a downloaded list of your Steam games, with the Wine AppDB to show you a list of what you can expect to be able to play with Wine.
I'll be honest, the way to do it is currently a bit annoying. The developer of it did tell me that this project is a way for them to learn about web scraping and it's currently considered "alpha" quality. However, I tried it and it does actually work reasonably well.
You will need to go to Steam, go to your profile, then click the Games link on the right. When on the games page, make sure it's on the "All Games" tab and then download the page. Rename the html file to "MySteamGames.html" and stick in in the same folder as this script. Then simply run "python3 winesteamcompare.py" and it will print a list in terminal of your games that have a Gold or Platinum rating in Wine.
It will end up giving you a list like this (yes, I really do have a lot of games!):
Find the script on github here.
As always, I don't recommend buying recent games to play in Wine in case they get a port in future. However, it's still better to play in Wine on Linux, than on Windows. Someone using Wine could eventually be a full Linux user, so whatever helps people stay on Linux is great. Wine is always a controversial topic, but it is a fantastic tool.
I'll be honest, the way to do it is currently a bit annoying. The developer of it did tell me that this project is a way for them to learn about web scraping and it's currently considered "alpha" quality. However, I tried it and it does actually work reasonably well.
You will need to go to Steam, go to your profile, then click the Games link on the right. When on the games page, make sure it's on the "All Games" tab and then download the page. Rename the html file to "MySteamGames.html" and stick in in the same folder as this script. Then simply run "python3 winesteamcompare.py" and it will print a list in terminal of your games that have a Gold or Platinum rating in Wine.
It will end up giving you a list like this (yes, I really do have a lot of games!):
QuoteYou have 1094 games
Aliens vs Predator ... Platinum
Aliens: Colonial Marines ... Gold
FEAR 2: Project Origin ... Platinum
Dead Space 2 ... Platinum
Call of Duty: Black Ops ... Platinum
Find the script on github here.
As always, I don't recommend buying recent games to play in Wine in case they get a port in future. However, it's still better to play in Wine on Linux, than on Windows. Someone using Wine could eventually be a full Linux user, so whatever helps people stay on Linux is great. Wine is always a controversial topic, but it is a fantastic tool.
Some you may have missed, popular articles from the last month:
For those who want to filter only non-Linux Steam games, change lines in StreamExtract function in steamextract.py like this
The condition will skip any games that are not of "invalid_platform" status.
Edit: of course your Steam page needs to be in Linux mode, the header on the page above the list needs to read this (see below). If you login in on Linux machine it should be done automatically (I guess)
Last edited by Solitary on 2 August 2017 at 8:14 pm UTC
for x in bla:
if i >= 2:
if "invalid_platform" not in x:
continue
x = x.split("\"")
game = x[1]
print(ProcessGameName(game))
i += 1
The condition will skip any games that are not of "invalid_platform" status.
Edit: of course your Steam page needs to be in Linux mode, the header on the page above the list needs to read this (see below). If you login in on Linux machine it should be done automatically (I guess)
Current Steam login
username | Linux
Last edited by Solitary on 2 August 2017 at 8:14 pm UTC
0 Likes
Quoting: GnurfosQuoting: mraggiI'm going to look into the steam api (I didn't know it existed!). The problem is that steam uses either your phone or a code they send you by email to authenticate, so I didn't know how to do that via script.
You can require that the user set their profile to public, if you want to spare the pain of logging in.
Else I suggest you turn your script into a web page, where users can authenticate by themselves via Steam. Lots of sites do that, and as a user, I like this a lot more than running a script. But in addition to coding it, you have to host it somewhere.
I second what Faugn says about using proper modules rather than system calls. I would add that you should reserve main() for command line entry points only, and if a module calls something from another module, it should be a function with a descriptive name instead.
I'll just think loud - what do you guys think about making @mraggi's script a tiny page (like @Gnurfos you suggested) that would be linked from gamingonlinux in a similar way as http://www.opengamebenchmarks.org/ is linked in forum?
Of course, as Gnurfos said, there will be a need to pay for the hosting, etc., but personally I would consider "checking your library against Wine" a valuable part of Gamingonlinux.
There is yet another option -> rewrite what @mraggi did to PHP and make it a part of GamingOnLinux, but that's up to @mraggi and @liamdawe to decide.
P.S. I guess gamingonlinux.com should also allow to post user reviews, but I guess I just need to create a separated suggestions forum thread for that topic.
1 Likes, Who?
It would be nice if it also gave you a percentage of performance vs native windows.
0 Likes
Okay, I looked at the steam api thingy, and apparently I need a key to use the steam api. I'm thinking I probably shouldn't just hardcode my own key into the script, since that would be probably a breach of the terms.
But then making you get your own key to use the script would make it probably even more annoying than downloading the page from your browser...
What do you guys think? I'm open to suggestions. It seems to me that the only solution would be to create my own website that does this for you and just gives you the results. Which would require me to learn html, css, javascript.
But then making you get your own key to use the script would make it probably even more annoying than downloading the page from your browser...
What do you guys think? I'm open to suggestions. It seems to me that the only solution would be to create my own website that does this for you and just gives you the results. Which would require me to learn html, css, javascript.
0 Likes
Quoting: mraggiOkay, I looked at the steam api thingy, and apparently I need a key to use the steam api. I'm thinking I probably shouldn't just hardcode my own key into the script, since that would be probably a breach of the terms.
I don't know about terms, but intuitively to me, the main problem with using your api key in the script is that it makes it public, and if someone uses it too much (or tries to hack steam with it), your key could get banned, or even your whole account (who knows with steam).
To keep it safe you need the scripts running "server side", but that means having a server. If you're interested in programming though, I would say that learning web technologies is never a wasted effort these days.
0 Likes
I might / or might not implemented something like this on TuxDB in the Wine section..:D
(Don't want to post any links to not anger the gods)
Last edited by NuSuey on 3 August 2017 at 8:28 am UTC
(Don't want to post any links to not anger the gods)
Last edited by NuSuey on 3 August 2017 at 8:28 am UTC
0 Likes
Excellent job guys, downloaded the new files and voila, works like a charm! ^_^
0 Likes
Quoting: DrMcCoyQuoteIt will end up giving you a list like this (yes, I really do have a lot of games!):You are like a little baby, watch this:
QuoteYou have 1094 games
QuoteYou have 1402 gamesHowever, for me, with Python 3.4, the script itself fails:
File "winehqextract.py", line 72
getpluspost = {**getparams,**postparams}
^
SyntaxError: invalid syntax
I'm a C/C++ programmer, the only contact with Python I have is a few IDAPython scripts or Ren'Py scripts, so I have no idea what's going on there.
EDIT: Seems like I've been ninja'd there. :P
Ha, I have 1964 Games... now if only I had time to play them.
0 Likes
--ignore please--
Last edited by Lakorta on 3 August 2017 at 11:27 am UTC
Last edited by Lakorta on 3 August 2017 at 11:27 am UTC
0 Likes
See more from me