-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuserReg.py
56 lines (46 loc) · 1.8 KB
/
userReg.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
from setup import setup_env
import os
import steam_web_api as SteamAPI
from dotenv import load_dotenv
class UserRegistration:
KEY : str
steam : SteamAPI.Steam
client : SteamAPI.Client
apps : SteamAPI.Apps
users : SteamAPI.Users
def __init__(self):
load_dotenv()
self.KEY = os.getenv("SteamKey")
self.steam = SteamAPI.Steam(self.KEY)
self.client = SteamAPI.Client(self.KEY)
self.apps = SteamAPI.Apps(self.client)
self.users = SteamAPI.Users(self.client)
def _get_achievements_of_game(self, achievements : dict):
result : list = []
try:
player_achievements = achievements["playerstats"]["achievements"]
for ach in player_achievements:
if ach["achieved"] == 1:
result.append(ach["apiname"])
return result
except Exception as e:
e.with_traceback(None)
def request_user_achievements(self, user_id : str):
user = self.steam.users.search_user(user_id)
if(user == "No Match") :
print("Wrong User ID")
return
games = self.users.get_owned_games(steam_id=user["player"]["steamid"])
user_achievements_per_game_dict : dict = dict()
for game in games["games"]:
achievements = None
try:
achievements = self.apps.get_user_achievements(user["player"]["steamid"], game["appid"])
except:
pass
if(achievements is None): continue
unlocked_achievements = self._get_achievements_of_game(achievements)
user_achievements_per_game_dict[game["appid"]] = unlocked_achievements
return user_achievements_per_game_dict
#GetGlobalAchievementPercentagesForApp("Hollow Knight")
#print(achievements)