From 37e3da5ec789a0b3cf023c9986e2a330a522b2f2 Mon Sep 17 00:00:00 2001 From: Zomatree Date: Mon, 30 Aug 2021 16:25:09 +0100 Subject: [PATCH] fix error with optional data --- revolt/types/user.py | 4 +--- revolt/user.py | 8 ++++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/revolt/types/user.py b/revolt/types/user.py index a7432de..65dd52b 100644 --- a/revolt/types/user.py +++ b/revolt/types/user.py @@ -10,10 +10,8 @@ Relation = Literal["Blocked", "BlockedOther", "Friend", "Incoming", "None", "Out class UserBot(TypedDict): owner: str -class _OptionalStatus(TypedDict, total=False): +class Status(TypedDict, total=False): text: str - -class Status(_OptionalStatus): presence: Literal["Busy", "Idle", "Invisible", "Online"] class UserRelation(TypedDict): diff --git a/revolt/user.py b/revolt/user.py index 0bfa909..259386e 100644 --- a/revolt/user.py +++ b/revolt/user.py @@ -15,7 +15,7 @@ class Relation(NamedTuple): class Status(NamedTuple): text: Optional[str] - presence: PresenceType + presence: Optional[PresenceType] class User: """Represents a user @@ -66,4 +66,8 @@ class User: self.relationship = RelationshipType(relationship) if relationship else None status = data.get("status") - self.status = Status(status.get("text"), PresenceType(status["presence"])) if status else None + if status: + presence = status.get("presence") + self.status = Status(status.get("text"), PresenceType(presence) if presence else None) if status else None + else: + self.status = None