@@ -665,18 +665,36 @@ class UnfurledMediaItem(AssetMixin):
665
665
def __init__ (self , url : str ):
666
666
self ._state = None
667
667
self ._url : str = url
668
+ self ._static_url : str | None = (
669
+ url if url and url .startswith ("attachment://" ) else None
670
+ )
668
671
self .proxy_url : str | None = None
669
672
self .height : int | None = None
670
673
self .width : int | None = None
671
674
self .content_type : str | None = None
672
675
self .flags : AttachmentFlags | None = None
673
676
self .attachment_id : int | None = None
674
677
678
+ def __repr__ (self ) -> str :
679
+ return (
680
+ f"<UnfurledMediaItem url={ self .url !r} attachment_id={ self .attachment_id } >"
681
+ )
682
+
683
+ def __str__ (self ) -> str :
684
+ return self .url or self .__repr__ ()
685
+
675
686
@property
676
687
def url (self ) -> str :
677
688
"""Returns this media item's url."""
678
689
return self ._url
679
690
691
+ @url .setter
692
+ def url (self , value : str ) -> None :
693
+ self ._url = value
694
+ self ._static_url = (
695
+ value if value and value .startswith ("attachment://" ) else None
696
+ )
697
+
680
698
@classmethod
681
699
def from_dict (cls , data : UnfurledMediaItemPayload , state = None ) -> UnfurledMediaItem :
682
700
@@ -691,7 +709,7 @@ def from_dict(cls, data: UnfurledMediaItemPayload, state=None) -> UnfurledMediaI
691
709
return r
692
710
693
711
def to_dict (self ) -> dict [str , str ]:
694
- return {"url" : self .url }
712
+ return {"url" : self ._static_url or self . url }
695
713
696
714
697
715
class Thumbnail (Component ):
0 commit comments