@@ -670,18 +670,30 @@ class UnfurledMediaItem(AssetMixin):
670670 def __init__ (self , url : str ):
671671 self ._state = None
672672 self ._url : str = url
673+ self ._static_url : str | None = url if url and url .startswith ("attachment://" ) else None
673674 self .proxy_url : str | None = None
674675 self .height : int | None = None
675676 self .width : int | None = None
676677 self .content_type : str | None = None
677678 self .flags : AttachmentFlags | None = None
678679 self .attachment_id : int | None = None
679680
681+ def __repr__ (self ) -> str :
682+ return f"<UnfurledMediaItem url={ self .url !r} attachment_id={ self .attachment_id } >"
683+
684+ def __str__ (self ) -> str :
685+ return self .url or self .__repr__ ()
686+
680687 @property
681688 def url (self ) -> str :
682689 """Returns this media item's url."""
683690 return self ._url
684691
692+ @url .setter
693+ def url (self , value : str ) -> None :
694+ self ._url = value
695+ self ._static_url = value if value and value .startswith ("attachment://" ) else None
696+
685697 @classmethod
686698 def from_dict (cls , data : UnfurledMediaItemPayload , state = None ) -> UnfurledMediaItem :
687699
@@ -696,7 +708,7 @@ def from_dict(cls, data: UnfurledMediaItemPayload, state=None) -> UnfurledMediaI
696708 return r
697709
698710 def to_dict (self ) -> dict [str , str ]:
699- return {"url" : self .url }
711+ return {"url" : self ._static_url or self . url }
700712
701713
702714class Thumbnail (Component ):
0 commit comments