1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- '''This script contains methods belonging to the Steam web API
- that can collect information based on an user's gaming library.'''
- import requests
- import json
- def gamespulling(steamid, apikey):
- '''Returns the JSON data from the Steam API based of one's
- Steam ID number and returns a dictionary of
- gameids and minutes played.'''
- steaminfo = {
- 'key': apikey,
- 'steamid': steamid,
- 'format':'JSON',
- 'include_appinfo':'1'
- }
- apiurl = 'http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/'
- req = requests.get(apiurl, params=steaminfo)
- data = json.loads(req.content)
- return data['response']['games']
- def steamidpulling(steamun, apikey):
- '''Pulls out and returns the steam id number for use in steam queries.'''
- steaminfo = {'key': apikey, 'vanityurl': steamun}
- apiurl = 'http://api.steampowered.com/ISteamUser/ResolveVanityURL/v0001/'
- req = requests.get(apiurl, params=steaminfo)
- data = json.loads(req.content)
- steamid = data['response']['steamid']
- return steamid
- def steamlibrarypull(steamid, apikey):
- '''Pulls out a CSV of Steam appids.'''
- steaminfo = {
- 'key': apikey,
- 'steamid': steamid,
- 'format':'JSON',
- 'include_appinfo':'1'
- }
- url = 'http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/'
- req = requests.get(url, params=steaminfo)
- data = json.loads(req.content)
- response = data['response']['games']
- games = {}
- for game in response:
- url = 'http://store.steampowered.com/api/appdetails/?appids=%d&filters=price_overview&cc=us'
- getprice = requests.get(url % game['appid'])
- if getprice.status_code == 200:
- rjson = json.loads(getprice.text)
- # use the appid to fetch the value and convert to decimal
- # appid is numeric, cast to string to lookup the price
- try:
- price = rjson[str(game['appid'])]['data']['price_overview']['initial'] * .01
- except KeyError:
- pass
- games[game['name']] = {'price': price, 'appid': game['appid']}
- return games
|