diff --git a/sstatus b/sstatus index b117c70..e462d4c 100755 --- a/sstatus +++ b/sstatus @@ -33,16 +33,36 @@ def steam_query(endpoint, transform, params={}): new_params['key'] = key return json_query(api + endpoint + '/', transform, new_params) -def get_friend_list(): +def get_friend_list(steamid): params = { - 'steamid' : uid, + 'steamid' : steamid, 'relationship' : 'friend' } - return steam_query('ISteamUser/GetFriendList/v0001', lambda data: [friend['steamid'] for friend in data['friendslist']['friends']], params) + return steam_query('ISteamUser/GetFriendList/v0001', lambda data: data['friendslist']['friends'], params) + +def get_player_summaries(steamids): + params = { + 'steamids' : ','.join(steamids) + } + return steam_query('ISteamUser/GetPlayerSummaries/v0002', lambda data: data['response']['players'], params) + +def personastate(n): + states = { + 0 : 'Offline', + 1 : 'Online', + 2 : 'Busy', + 3 : 'Away', + 4 : 'Snooze', + 5 : 'Looking to trade', + 6 : 'Looking to play' + } + return states[n] def main(): - for friend in get_friend_list(): - print(friend) + #print('\n'.join([friend['steamid'] for friend in get_friend_list(uid)])) + for player in get_player_summaries([friend['steamid'] for friend in get_friend_list(uid)]): + print(player['personaname'] + ': ' + personastate(player['personastate']) + (', ' + player['gameextrainfo'] if 'gameextrainfo' in player else '')) + if __name__ == '__main__': main()