Add friend name lookups

This commit is contained in:
Bradlee Speice 2017-03-19 13:35:27 -04:00
parent 82849bfd14
commit 8ede6abb9b
2 changed files with 22 additions and 7 deletions

View File

@ -36,7 +36,7 @@ class SteamAPI(object):
logging.debug('Return code: {}'.format(response.status_code)) logging.debug('Return code: {}'.format(response.status_code))
return response.json() return response.json()
def get_friends(self, steam_id): def get_friends_ids(self, steam_id):
""" """
Return the steam_id's of all users this user is friends with Return the steam_id's of all users this user is friends with
@ -97,18 +97,28 @@ class SteamAPI(object):
return [g['appid'] for g in games] return [g['appid'] for g in games]
def get_player_summary(self, steam_id): def get_player_summary(self, steam_ids):
return self._make_request( return self._make_request(
WebAPI.user, WebAPI.user,
'GetPlayerSummaries', 'GetPlayerSummaries',
'v0002', 'v0002',
{ {
'steamids': steam_id 'steamids': ','.join(steam_ids)
} }
) )['response']['players']
def get_steam64_id(self, profile_url): def get_player_names(self, steam_ids):
"""
:param steam_ids:
:return: Persona names for all id's supplied
:rtype: list
"""
players = self.get_player_summary(steam_ids)
return {p['steamid']: p['personaname'] for p in players}
def get_steam64_from_profile(self, profile_url):
""" """
Get the Steam64 ID for a user, given their profile URL. Get the Steam64 ID for a user, given their profile URL.
This is by far and above the mostly likely piece of code This is by far and above the mostly likely piece of code

View File

@ -7,7 +7,7 @@ class SteamTest(TestCase):
def test_returns_friends_list(self): def test_returns_friends_list(self):
steam_id = '76561198020882912' steam_id = '76561198020882912'
friends = steam.SteamAPI().get_friends(steam_id) friends = steam.SteamAPI().get_friends_ids(steam_id)
self.assertTrue(len(friends) > 0) self.assertTrue(len(friends) > 0)
def test_I_own_games(self): def test_I_own_games(self):
@ -24,4 +24,9 @@ class SteamTest(TestCase):
profile_url = 'http://steamcommunity.com/id/fractalize/' profile_url = 'http://steamcommunity.com/id/fractalize/'
steam_id = '76561198020882912' steam_id = '76561198020882912'
self.assertEqual(steam.SteamAPI().get_steam64_id(profile_url), steam_id) self.assertEqual(steam.SteamAPI().get_steam64_from_profile(profile_url), steam_id)
def test_my_persona(self):
steam_id = '76561198020882912'
names = steam.SteamAPI().get_player_names([steam_id])
self.assertEqual({steam_id: 'Fractalize'}, names)