#!/usr/bin/python3 import requests import sys import textwrap api = 'http://api.steampowered.com/' key = '63578AF8E85EDF1E49411D5D4E18E166' uid = '76561198008294872' #whiteline #uid = '76561198111568728' #N33R # Fetch JSON from url and run it through transform, pretty printing errors # and the data worked on as exhaustively as possible. def json_query(url, transform, params={}): try: result = requests.get(url, params) except ConnectionError: print("Network connection error.") sys.exit(1) try: data = result.json() except requests.JSONDecodeError as err: print('Error when decoding JSON:\nFrom endpoint ' + url + ':\n' + err + '\n' + result + '\n') sys.exit(1) try: return transform(data) except (IndexError, KeyError) as err: print('Error when traversing JSON:\nFrom endpoint ' + url + ':\n' + err) pprint.PrettyPrinter(indent=2).pprint(data) sys.exit(1) def steam_query(endpoint, transform, params={}): new_params = params.copy() new_params['key'] = key return json_query(api + endpoint + '/', transform, new_params) def get_friend_list(): params = { 'steamid' : uid, 'relationship' : 'friend' } return steam_query('ISteamUser/GetFriendList/v0001', lambda data: [friend['steamid'] for friend in data['friendslist']['friends']], params) def main(): for friend in get_friend_list(): print(friend) if __name__ == '__main__': main()