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