Skip to content

Instantly share code, notes, and snippets.

@ketra
Last active February 1, 2022 19:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ketra/494263dab90de56ed4f6526599223384 to your computer and use it in GitHub Desktop.
Save ketra/494263dab90de56ed4f6526599223384 to your computer and use it in GitHub Desktop.
Script om steamstatus op te kunnen halen van Steamwebsite.
#!/usr/bin/env python3
#Import de libraries die nodig zijn, in dit geval urllib.request om een vraag an steam te kunnen stellen.
import json
import urllib.request
import urllib.parse
# Zet hier je API Key deze kan je aanvragen op https://steamcommunity.com/dev/apikey
API_KEY = ''
def haal_status(steamid):
# zie steam pagina voor uitleg van de API
# https://developer.valvesoftware.com/wiki/Steam_Web_API#GetPlayerSummaries_.28v0002.29
# URl voor het ophalen van de status van de steam gebruiker.
url = 'https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v2/'
formatted_url = f"{url}?key={API_KEY}&steamids={steamid}&format=json"
# Hier wordt het request uitgevoerd naar de website en de data die terugkomt verwerkt als json.
with urllib.request.urlopen(formatted_url) as antwoord:
retourdata = json.loads(antwoord.read())
# Voorbeeld van de data die terugegeven wordt.
"""response": {
"players": [
{
"steamid": "77561198355051011",
"communityvisibilitystate": 1,
"profilestate": 1,
"personaname": "Mister Manager",
"lastlogoff": 1556305001,
"profileurl": "https://steamcommunity.com/profiles/77561198355051011/",
"avatar": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/32/32f70a383a437d03af91d2f01a0776adf75201b5.jpg",
"avatarmedium": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/32/32f70a383a437d03af91d2f01a0776adf75201b5_medium.jpg",
"avatarfull": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/32/32f70a383a437d03af91d2f01a0776adf75201b5_full.jpg",
}
]
}"""
# Omdat het antwoord in json is mag je door elke laag heenlopen met []
steam_status = retourdata["response"]["players"][0]["profilestate"]
# Verstuur de status naar de vertaal functie.
vertaalde_status = vertaal_status(steam_status)
# Geef de vertaalde waarde weer terug.
return vertaalde_status
def vertaal_status(status):
# vertaling van mogelijke status die terug kan komen van de API
# 0 - Offline,1 - Online, 2 - Busy, 3 - Away, 4 - Snooze, 5 - looking to trade, 6 - looking to play
# Dit is een lijstje van de mogelijke status die een gebruiker kan hebben.
mogelijke_status = {
0: "Offline",
1: "Online",
2: "Bezig",
3: "Weg",
4: "Slapend",
5: "Trade?",
6: "Spelen?"
}
# Omdat bovenstaande lijst cijfer: waarde heeft, mag je de waarde opvragen door mogelijke_status[status] te doen
# via het gegeven cijfer de bijbehorende tekst ophalen.
vertaalde_waarde = mogelijke_status[status]
# Geef de vertaalde waarde terug
return vertaalde_waarde
# Best practice, Het is een best practice binnen python om altijd het onderstaande in je code file te hebben.
if __name__ == '__main__':
# Zet hier het steamID van de gebruiker waar je de status van wilt weten.
steamid ='76561197977021276'
# Roep nu de functie aan om de status op te halen.
gebruiker_status = haal_status(steamid)
# print de status van de gebruiker.
# (Weetje) als je f"" doet mag je in een string met {} code gebruiken om daar dynamisch tekst neer te zetten.
print(f"Speler {steamid} is {gebruiker_status}")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment