Skip to content

Commit 9b4f02c

Browse files
authored
feat(components): Final fix of the crashing bugs from that push
Signed-off-by: Mathieu <[email protected]>
1 parent b20c4c5 commit 9b4f02c

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

discord/components.py

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -396,14 +396,20 @@ def to_dict(self) -> ButtonPayload:
396396
if self.emoji:
397397
base['emoji'] = self.emoji.to_dict()
398398
return base
399-
399+
400400
@classmethod
401401
def from_dict(cls, data: ButtonPayload) -> Button:
402402
emoji = data.pop('emoji', None)
403-
404403
if emoji and isinstance(emoji, dict):
405404
emoji = PartialEmoji.from_dict(emoji)
406-
return cls(emoji=emoji, **data)
405+
return cls(
406+
emoji=emoji,
407+
label=data.get('label'),
408+
custom_id=data.get('custom_id'),
409+
style=data['style'],
410+
url=data.get('url'),
411+
disabled=data.get('disabled', False)
412+
)
407413

408414

409415
class SelectOption:
@@ -485,9 +491,9 @@ def from_dict(cls, data: SelectOptionPayload) -> SelectOption:
485491
return cls(
486492
label=data['label'],
487493
value=data['value'],
488-
description=data.pop('description'),
494+
description=data.get('description'),
489495
emoji=emoji,
490-
default=data.pop('default', False)
496+
default=data.get('default', False)
491497
)
492498

493499

@@ -642,10 +648,10 @@ def to_dict(self) -> SelectMenuPayload:
642648
def from_dict(cls: Type[T], data: SelectMenuPayload) -> T:
643649
return cls(
644650
custom_id=data['custom_id'],
645-
placeholder=data.pop('placeholder', None),
646-
min_values=data.pop('min_values', 1),
647-
max_values=data.pop('max_values', 1),
648-
disabled=data.pop('disabled', False)
651+
placeholder=data.get('placeholder'),
652+
min_values=data.get('min_values', 1),
653+
max_values=data.get('max_values', 1),
654+
disabled=data.get('disabled', False)
649655
)
650656

651657

@@ -809,11 +815,12 @@ def to_dict(self) -> Dict[str, Any]:
809815
@classmethod
810816
def from_dict(cls, data:SelectMenuPayload) -> SelectMenu:
811817
return cls(
818+
custom_id=data['custom_id'],
812819
options=[SelectOption.from_dict(o) for o in data.pop('options')],
813820
min_values=data.pop('min_values', 1),
814821
max_values=data.pop('max_values', 1),
815822
disabled=data.pop('disabled', False),
816-
**data
823+
placeholder=data.get('placeholder),
817824
)
818825

819826

0 commit comments

Comments
 (0)