summaryrefslogtreecommitdiff
path: root/app_types
diff options
context:
space:
mode:
authorDmitrii Morozov <snoopdesigns@gmail.com>2024-05-07 17:15:25 +0200
committerDmitrii Morozov <snoopdesigns@gmail.com>2024-05-07 17:15:25 +0200
commitee3e87a6ec19878d56e8f386b20c58e4d9b211b3 (patch)
treec111165b0310581abeea0cecbfd9dabe2933e0d9 /app_types
parentcfa79cbbaf42a8f74a2cd4bca4d1d495b4d597f1 (diff)
Modules
Diffstat (limited to 'app_types')
-rw-r--r--app_types/__init__.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/app_types/__init__.py b/app_types/__init__.py
new file mode 100644
index 0000000..699928a
--- /dev/null
+++ b/app_types/__init__.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
+
+ __fortnite_user: 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.__fortnite_user = user
+
+ return instance
+
+ async def fetch_stats(self) -> UserStats:
+ stats = await self.__fortnite_user.fetch_br_stats()
+ bp_level: float = await self.__fortnite_user.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