Skip to content

Commit 067ea9b

Browse files
Morgandri1FayeDel
andauthored
refactor: return embed on update (#1259)
* Made fields return embed * Update message.py * added typehints * addded versionchanged * Update message.py --------- Co-authored-by: DeltaX <33706469+DeltaXWizard@users.noreply.github.com>
1 parent 837a866 commit 067ea9b

File tree

1 file changed

+45
-12
lines changed

1 file changed

+45
-12
lines changed

interactions/api/models/message.py

Lines changed: 45 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -384,9 +384,11 @@ class Embed(DictSerializerMixin):
384384
author: Optional[EmbedAuthor] = field(converter=EmbedAuthor, default=None)
385385
fields: Optional[List[EmbedField]] = field(converter=convert_list(EmbedField), default=None)
386386

387-
def add_field(self, name: str, value: str, inline: Optional[bool] = False) -> None:
387+
def add_field(self, name: str, value: str, inline: Optional[bool] = False) -> "Embed":
388388
"""
389389
.. versionadded:: 4.2.0
390+
.. versionchanged:: 4.4.0
391+
returns the embed instead of `None`
390392
391393
Adds a field to the embed
392394
@@ -399,21 +401,27 @@ def add_field(self, name: str, value: str, inline: Optional[bool] = False) -> No
399401
self.fields = []
400402

401403
self.fields.append(EmbedField(name=name, value=value, inline=inline))
404+
return self
402405

403-
def clear_fields(self) -> None:
406+
def clear_fields(self) -> "Embed":
404407
"""
405408
.. versionadded:: 4.2.0
409+
.. versionchanged:: 4.4.0
410+
returns the embed instead of `None`
406411
407412
Clears all the fields of the embed
408413
"""
409414

410415
self.fields = []
416+
return self
411417

412418
def insert_field_at(
413419
self, index: int, name: str, value: str, inline: Optional[bool] = False
414-
) -> None:
420+
) -> "Embed":
415421
"""
416422
.. versionadded:: 4.2.0
423+
.. versionchanged:: 4.4.0
424+
returns the embed instead of `None`
417425
418426
Inserts a field in the embed at the specified index
419427
@@ -427,12 +435,15 @@ def insert_field_at(
427435
self.fields = []
428436

429437
self.fields.insert(index, EmbedField(name=name, value=value, inline=inline))
438+
return self
430439

431440
def set_field_at(
432441
self, index: int, name: str, value: str, inline: Optional[bool] = False
433-
) -> None:
442+
) -> "Embed":
434443
"""
435444
.. versionadded:: 4.2.0
445+
.. versionchanged:: 4.4.0
446+
returns the embed instead of `None`
436447
437448
Overwrites the field in the embed at the specified index
438449
@@ -449,10 +460,13 @@ def set_field_at(
449460
self.fields[index] = EmbedField(name=name, value=value, inline=inline)
450461
except IndexError as e:
451462
raise IndexError("No fields at this index") from e
463+
return self
452464

453-
def remove_field(self, index: int) -> None:
465+
def remove_field(self, index: int) -> "Embed":
454466
"""
455467
.. versionadded:: 4.2.0
468+
.. versionchanged:: 4.4.0
469+
returns the embed instead of `None`
456470
457471
Remove field at the specified index
458472
@@ -466,26 +480,32 @@ def remove_field(self, index: int) -> None:
466480
self.fields.pop(index)
467481
except IndexError as e:
468482
raise IndexError("Field not Found at index") from e
483+
return self
469484

470-
def remove_author(self) -> None:
485+
def remove_author(self) -> "Embed":
471486
"""
472487
.. versionadded:: 4.2.0
488+
.. versionchanged:: 4.4.0
489+
returns the embed instead of `None`
473490
474491
Removes the embed's author
475492
"""
476493

477494
with contextlib.suppress(AttributeError):
478495
del self.author
496+
return self
479497

480498
def set_author(
481499
self,
482500
name: str,
483501
url: Optional[str] = None,
484502
icon_url: Optional[str] = None,
485503
proxy_icon_url: Optional[str] = None,
486-
) -> None:
504+
) -> "Embed":
487505
"""
488506
.. versionadded:: 4.2.0
507+
.. versionchanged:: 4.4.0
508+
returns the embed instead of `None`
489509
490510
Sets the embed's author
491511
@@ -498,12 +518,15 @@ def set_author(
498518
self.author = EmbedAuthor(
499519
name=name, url=url, icon_url=icon_url, proxy_icon_url=proxy_icon_url
500520
)
521+
return self
501522

502523
def set_footer(
503524
self, text: str, icon_url: Optional[str] = None, proxy_icon_url: Optional[str] = None
504-
) -> None:
525+
) -> "Embed":
505526
"""
506527
.. versionadded:: 4.2.0
528+
.. versionchanged:: 4.4.0
529+
returns the embed instead of `None`
507530
508531
Sets the embed's footer
509532
@@ -513,16 +536,19 @@ def set_footer(
513536
"""
514537

515538
self.footer = EmbedFooter(text=text, icon_url=icon_url, proxy_icon_url=proxy_icon_url)
539+
return self
516540

517541
def set_image(
518542
self,
519543
url: str,
520544
proxy_url: Optional[str] = None,
521545
height: Optional[int] = None,
522546
width: Optional[int] = None,
523-
) -> None:
547+
) -> "Embed":
524548
"""
525549
.. versionadded:: 4.2.0
550+
.. versionchanged:: 4.4.0
551+
returns the embed instead of `None`
526552
527553
Sets the embed's image
528554
@@ -533,16 +559,19 @@ def set_image(
533559
"""
534560

535561
self.image = EmbedImageStruct(url=url, proxy_url=proxy_url, height=height, width=width)
562+
return self
536563

537564
def set_video(
538565
self,
539566
url: str,
540567
proxy_url: Optional[str] = None,
541568
height: Optional[int] = None,
542569
width: Optional[int] = None,
543-
) -> None:
570+
) -> "Embed":
544571
"""
545572
.. versionadded:: 4.2.0
573+
.. versionchanged:: 4.4.0
574+
returns the embed instead of `None`
546575
547576
Sets the embed's video
548577
@@ -553,16 +582,19 @@ def set_video(
553582
"""
554583

555584
self.video = EmbedImageStruct(url=url, proxy_url=proxy_url, height=height, width=width)
585+
return self
556586

557587
def set_thumbnail(
558588
self,
559589
url: str,
560590
proxy_url: Optional[str] = None,
561591
height: Optional[int] = None,
562592
width: Optional[int] = None,
563-
) -> None:
593+
) -> "Embed":
564594
"""
565595
.. versionadded:: 4.2.0
596+
.. versionchanged:: 4.4.0
597+
returns the embed instead of `None`
566598
567599
Sets the embed's thumbnail
568600
@@ -573,6 +605,7 @@ def set_thumbnail(
573605
"""
574606

575607
self.thumbnail = EmbedImageStruct(url=url, proxy_url=proxy_url, height=height, width=width)
608+
return self
576609

577610

578611
@define()
@@ -1348,4 +1381,4 @@ async def disable_all_components(self) -> "Message":
13481381
payload={"components": [component._json for component in self.components]},
13491382
),
13501383
_client=self._client,
1351-
)
1384+
)

0 commit comments

Comments
 (0)