From 3089066696ce90eb1a4c0b381e9fc414ec00db85 Mon Sep 17 00:00:00 2001 From: ue86388 Date: Tue, 16 Apr 2024 15:28:02 +0200 Subject: User statistics --- Types.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 Types.py (limited to 'Types.py') diff --git a/Types.py b/Types.py new file mode 100644 index 0000000..fc2e034 --- /dev/null +++ b/Types.py @@ -0,0 +1,50 @@ +import fortnitepy + +class UserStats: + user_id: str + user_display_name: str + level: int + matches_played: int + kills: int + wins: int + +class User: + + id: str + display_name: str + + __fortniteUser: fortnitepy.user.UserBase + + def from_fortnite_friend(user: fortnitepy.user.UserBase): + + if user is None: + return None + + instance = User() + + instance.id = user.id + instance.display_name = user.display_name + instance.__fortniteUser = user + + return instance + + async def fetch_stats(self) -> UserStats: + stats = await self.__fortniteUser.fetch_br_stats() + bp_level: float = await self.__fortniteUser.fetch_battlepass_level(season=29) # TODO + combined_stats = stats.get_combined_stats() + device_stats = {} + if 'keyboardmouse' in combined_stats: + device_stats = combined_stats['keyboardmouse'] + else: + device_stats = combined_stats['gamepad'] + + stats = UserStats() + + stats.user_id = self.id + stats.user_display_name = self.display_name + stats.level = int(bp_level//1) + stats.matches_played = device_stats['matchesplayed'] + stats.kills = device_stats['kills'] + stats.wins = device_stats['wins'] + + return stats \ No newline at end of file -- cgit v1.2.3