1
Fork 0
mirror of https://github.com/RYGhub/royalnet.git synced 2024-11-30 15:04:18 +00:00
royalnet/steam.py

105 lines
3.6 KiB
Python

# -*- coding: utf-8 -*-
import requests
import filemanager
# Per far funzionare questa libreria serve un file "steamapi.txt" contenente la Steam Api Key ottenibile a
# http://steamcommunity.com/dev/apikey
steamtoken = filemanager.readfile('steamapi.txt')
def getplayersummaries(steamid):
"""Ottieni i dati dei profili steam dei giocatori di cui è stato specificato lo SteamID 32.
:param steamid: SteamID 32 dei giocatori, separato da virgola
"""
# Parametri della richiesta
parametri = {
'key': steamtoken,
'steamids': steamid,
}
# Manda la richiesta ai server di Steam.
r = requests.get("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/", params=parametri).json()
if len(r['response']['players']) == 1:
return r['response']['players'][0]
elif len(r['response']['players']) > 1:
return r['response']['players']
else:
raise NameError("Lo steamid specificato non esiste.")
def getnumberofcurrentplayers(appid):
"""Ottieni il numero di giocatori che stanno giocando a un certo gioco.
:param appid: ID Steam dell'applicazione
"""
# Parametri della richiesta
parametri = {
'key': steamtoken,
'appid': appid,
}
# Manda la richiesta ai server di Steam.
r = requests.get("http://api.steampowered.com/ISteamUserStats/GetNumberOfCurrentPlayers/v0001/",
params=parametri).json()
if 'player_count' in r['response']:
return r['response']['player_count']
else:
return None
def getplayerachievements(appid, steamid):
"""Ottieni gli achievement del giocatore e del gioco specificato.
:param appid: ID dell'applicazione
:param steamid: SteamID 32 del giocatore
"""
# Parametri della richiesta
parametri = {
'key': steamtoken,
'steamid': steamid,
'appid': appid,
'l': 'IT' # Mettendo questo vengono in inglese...? What.
}
# Manda la richiesta ai server di Steam.
r = requests.get("http://api.steampowered.com/ISteamUserStats/GetPlayerAchievements/v0001/",
params=parametri).json()
return r['playerstats']
def getsteamlevel(steamid):
"""Ottieni il livello del profilo di Steam.
:param steamid: SteamID 32 del giocatore
"""
parametri = {
'key': steamtoken,
'steamid': steamid,
}
# Manda la richiesta ai server di Steam.
r = requests.get("http://api.steampowered.com/IPlayerService/GetSteamLevel/v0001/", params=parametri).json()
return r['response']['player_level']
def isplayingsharedgame(appid, steamid):
"""Guarda se il gioco a cui sta giocando qualcuno è condiviso.
Ah, Steam vuole sapere l'ID del gioco a cui sta giocando, quindi mettetecelo.
:param appid: ID dell'applicazione
:param steamid: SteamID 32 del giocatore"""
parametri = {
'key': steamtoken,
'steamid': steamid,
'appid_playing': appid,
}
# Manda la richiesta ai server di Steam.
r = requests.get("http://api.steampowered.com/IPlayerService/IsPlayingSharedGame/v0001/", params=parametri).json()
return r # Non posso provare il comando; cambiare quando possibile?
def getschemaforgame(appid):
"""Trova il nome, gli achievement e le statistiche corrispondenti al numero di applicazione specificato.
:param appid: ID dell'applicazione
"""
parametri = {
'key': steamtoken,
'appid': appid,
}
# Manda la richiesta ai server di Steam.
r = requests.get("http://api.steampowered.com/ISteamUserStats/GetSchemaForGame/v2/", params=parametri).json()
return r