Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- Steam Informator
- Created by Bartlomiej Ferenc (C) 2018
- """
- import requests,json,sys,os
- from datetime import datetime
- api_key = "&key=steam_api_key"
- # Main menu
- def main_menu():
- os.system('clear')
- print("\n\n")
- print("~~~~ Welcome to SteamInformator ~~~~")
- print("Please choose the menu you want to start:")
- print("1. User info")
- print("2. Game info")
- print("\n0. Quit")
- choice = input(" >> ")
- exec_menu(choice)
- return
- # Execute menu
- def exec_menu(choice):
- os.system('clear')
- ch = choice.lower()
- if ch == '':
- menu_actions['main_menu']()
- else:
- menu_actions[ch]('0')
- return
- def exit():
- sys.exit()
- def game_info(l):
- choose = input("Game id: ")
- url = "http://api.steampowered.com/ISteamUserStats/GetGlobalAchievementPercentagesForApp/v0002/?gameid="+choose + "&format=json"
- r = requests.get(url)
- data = r.json()['achievementpercentages']['achievements']
- data_count = json.dumps(data).count('percent')
- data_percentages = []
- i=0
- for i in range(data_count):
- data_percentages.append([data[i]['name'],data[i]['percent']])
- i=0
- for i in range(data_count):
- print("achievement name: ",data_percentages[i][0])
- print("all % completed: ",float("{0:.2f}".format(data_percentages[i][1])))
- main_menu()
- def user_info(choice):
- url = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?&steamids="
- if choice == '0':
- choice = input("\nEnter profile number: ")
- url = url + choice + api_key
- r = requests.get(url)
- data = r.json()['response']['players'][0]
- steam_id = json.dumps(data['steamid']).strip('"')
- visiblity = json.dumps(data['profilestate']).strip('"')
- state = json.dumps(data['personastate']).strip('"')
- last_online = unixToNormal(json.dumps(data['lastlogoff'])).strip('"')
- time_created = unixToNormal(json.dumps(data['timecreated'])).strip('"')
- nick_name = json.dumps(data['personaname']).strip('"')
- url = "http://api.steampowered.com/ISteamUser/GetPlayerBans/v1/?&steamids=" + steam_id + api_key
- r = requests.get(url)
- data = r.json()['players'][0]
- bans = []
- bans.append(json.dumps(data['CommunityBanned']))
- bans.append(json.dumps(data['VACBanned']))
- bans.append(json.dumps(data['NumberOfVACBans']))
- bans.append(json.dumps(data['DaysSinceLastBan']))
- bans.append(json.dumps(data['NumberOfGameBans']))
- bans.append(json.dumps(data['EconomyBan']))
- print('\n\n~~~~~~ Profile info ~~~~~~')
- print("Nick: ", nick_name)
- print('SteamID: ',steam_id)
- print('Last Online:',last_online)
- print('Profile created: ',time_created)
- print('Visibility: ',visiblity_text[visiblity])
- print('State: ',states[state])
- print('\nBans: ')
- print(' CommunityBanned:', bans[0])
- print(' VACBanned:', bans[1])
- print(' NumberOfVACBans:', bans[2])
- print(' DaysSinceLastBan:', bans[3])
- print(' NumberOfGameBans:', bans[4])
- print(' EconomyBan:', bans[4])
- print("\n\nMenu:\n1 Show friend list")
- print("2 Show owned games")
- print("3 Show achievements")
- print("0 Main menu")
- choose = input(" >> ")
- if choose == '1':
- friend_list_show(steam_id)
- if choose == '2':
- game_list_show(steam_id)
- if choose == '3':
- achievements_show(steam_id)
- if choose == '0':
- main_menu()
- def friend_list_show(steam_id):
- print("\nFriend list:")
- url = ' http://api.steampowered.com/ISteamUser/GetFriendList/v0001/?relationship=friend&steamid='+steam_id + api_key
- r = requests.get(url)
- data = r.json()['friendslist']['friends']
- friends_data = []
- friends = json.dumps(data).count("steamid")
- i=0
- for i in range(friends):
- friends_data.append([json.dumps(data[i]['steamid']),json.dumps(data[i]['friend_since'])])
- i=0
- for i in range(friends):
- url = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?&steamids=" + friends_data[i][0] + api_key
- r = requests.get(url)
- data = r.json()['response']['players'][0]['personaname'].strip('"')
- print("\n- Nick: ",data)
- print(" Friends since: ",unixToNormal(json.dumps(int(friends_data[i][1]))))
- user_info(steam_id)
- def achievements_show(steam_id):
- url = "http://api.steampowered.com/ISteamUserStats/GetPlayerAchievements/v0001/?appid="
- appID = input("App id: ")
- url = url + appID + "&steamid=" + steam_id + api_key
- r = requests.get(url)
- data = r.json()['playerstats']['achievements']
- achievement_data = []
- achieviement_count = json.dumps(data).count("achieved")
- i=0
- for i in range(achieviement_count):
- achievement_data.append([json.dumps(data[i]['apiname']).strip('"'),json.dumps(data[i]['achieved']),json.dumps(data[i]['unlocktime'])])
- print("1 Only achieved")
- print("2 Only not achieved")
- print("3 Both")
- choose = input(" >> ")
- i=0
- if choose == '1':
- for i in range(achieviement_count):
- if achievement_data[i][1] == '1':
- print("Achievement name: ", achievement_data[i][0])
- print(" Unlocked: ", unixToNormal(achievement_data[i][2]))
- if choose == '2':
- for i in range(achieviement_count):
- if achievement_data[i][1] == '0':
- print("Achievement name: ", achievement_data[i][0])
- print(" Unlocked: No")
- if choose == '3':
- for i in range(achieviement_count):
- print("Achievement name: ", achievement_data[i][0])
- if achievement_data[i][1] == '0':
- print(" Unlocked: No")
- else:
- print(" Unlocked: ",unixToNormal( achievement_data[i][2]))
- user_info(steam_id)
- def game_list_show(steam_id):
- url = "http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?steamid=" + steam_id + api_key + "&format=json&include_appinfo=1"
- r = requests.get(url)
- data = r.json()['response']['games']
- game_count = r.json()['response']['game_count']
- for i in range(game_count):
- print("Game name:{:>8} %s >> playtime (in hours): ".format(data[i]['appid']) % data[i]['name'] , float("{0:.2f}".format(int(data[i]['playtime_forever'])/60)))
- user_info(steam_id)
- def unixToNormal(time):
- return datetime.utcfromtimestamp(int(time)).strftime('%Y-%m-%d %H:%M:%S')
- menu_actions = {
- 'main': main_menu,
- '1': user_info,
- '2': game_info,
- '0': exit}
- visiblity_text = {
- '1':'Private',
- '3':'Public'}
- states = {
- '0':'Offline',
- '1':'Online',
- '2':'Busy',
- '3':'Away',
- '4':'Snooze',
- '5':'looking to trade',
- '6':'looking to play'}
- if __name__ == "__main__":
- # Launch main menu
- main_menu()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement