diff --git a/pantalaimon/daemon.py b/pantalaimon/daemon.py index 10f1799..1d0afe4 100755 --- a/pantalaimon/daemon.py +++ b/pantalaimon/daemon.py @@ -954,6 +954,17 @@ class ProxyDaemon: ) media_content = media_info.to_content(content, upload_info.mimetype) + if media_content["info"].get("thumbnail_url", False): + ( + thumb_upload_info, + thumb_media_info, + ) = self._get_upload_and_media_info( + "thumbnail_url", media_content["info"] + ) + if thumb_upload_info and thumb_media_info: + media_content = thumb_media_info.to_thumbnail( + media_content, thumb_upload_info.mimetype + ) response = await client.room_send( room_id, msgtype, media_content, txnid, ignore_unverified diff --git a/pantalaimon/store.py b/pantalaimon/store.py index c1b4691..135936f 100644 --- a/pantalaimon/store.py +++ b/pantalaimon/store.py @@ -60,6 +60,19 @@ class MediaInfo: return content + def to_thumbnail(self, content: Dict, mime_type: str) -> Dict[Any, Any]: + content["info"]["thumbnail_file"] = { + "v": "v2", + "key": self.key, + "iv": self.iv, + "hashes": self.hashes, + "url": content["info"]["thumbnail_url"], + "mimetype": mime_type, + } + + return content + + @attr.s class UploadInfo: