Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

48 рядки
1.4KB

  1. #!/usr/bin/python3
  2. import requests
  3. import sys
  4. import textwrap
  5. api = 'https://api.steampowered.com/'
  6. key = '63578AF8E85EDF1E49411D5D4E18E166'
  7. uid = '76561198008294872'
  8. # Fetch JSON from url and run it through transform, pretty printing errors
  9. # and the data worked on as exhaustively as possible.
  10. def json_query(url, transform, params={}):
  11. try:
  12. result = requests.get(url, params)
  13. except ConnectionError:
  14. print("Network connection error.")
  15. sys.exit(1)
  16. try:
  17. data = result.json()
  18. except JSONDecodeError as err:
  19. print('Error when decoding JSON:\nFrom endpoint ' + url + ':\n' + err + '\n' + result + '\n')
  20. sys.exit(1)
  21. try:
  22. return transform(data)
  23. except (IndexError, KeyError) as err:
  24. print('Error when traversing JSON:\nFrom endpoint ' + url + ':\n' + err)
  25. pprint.PrettyPrinter(indent=2).pprint(data)
  26. sys.exit(1)
  27. def steam_query(endpoint, transform, params={}):
  28. new_params = params.copy()
  29. new_params['key'] = key
  30. json_query(api + endpoint + '/', transform, new_params)
  31. def get_friend_list():
  32. params = {
  33. 'steamid' : uid,
  34. 'relationship' : 'friend'
  35. }
  36. return steam_query('SteamUser/GetFriendList/v0001' lambda data: [friend['steamid'] for friend in data], params)
  37. def main():
  38. for steamid in get_friend_list():
  39. print(steamid)
  40. if __name__ == '__main__':
  41. main()