diff options
| author | fiaxh <git@lightrise.org> | 2025-06-14 17:06:45 +0200 |
|---|---|---|
| committer | fiaxh <git@lightrise.org> | 2025-06-14 17:06:45 +0200 |
| commit | 1dae4e1abd2b49fdfb64eecf068d1085dcd7e125 (patch) | |
| tree | 01c8c0d8ae4ea01598fff336368a3fd88c374e0f /xmpp-vala/src/module/xep/0264_jingle_content_thumbnails.vala | |
| parent | 1254a753eb3c85f35e5bc322dbe4a3f177e79c88 (diff) | |
Support media elements in data forms
Diffstat (limited to 'xmpp-vala/src/module/xep/0264_jingle_content_thumbnails.vala')
| -rw-r--r-- | xmpp-vala/src/module/xep/0264_jingle_content_thumbnails.vala | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/xmpp-vala/src/module/xep/0264_jingle_content_thumbnails.vala b/xmpp-vala/src/module/xep/0264_jingle_content_thumbnails.vala index 053fb7d5..5dba0c6d 100644 --- a/xmpp-vala/src/module/xep/0264_jingle_content_thumbnails.vala +++ b/xmpp-vala/src/module/xep/0264_jingle_content_thumbnails.vala @@ -14,6 +14,7 @@ namespace Xmpp.Xep.JingleContentThumbnails { public class Thumbnail { public string uri; + public Bytes data; public string? media_type; public int width; public int height; @@ -34,11 +35,21 @@ namespace Xmpp.Xep.JingleContentThumbnails { } public static Thumbnail? from_stanza_node(StanzaNode node) { - Thumbnail thumbnail = new Thumbnail(); - thumbnail.uri = node.get_attribute("uri"); - if (thumbnail.uri == null) { - return null; + string uri = node.get_attribute("uri"); + if (uri == null) return null; + + string? data_uri = null; + Bytes data = BitsOfBinary.get_data_for_uri(uri); + + if (uri.has_suffix("@bob.xmpp.org")) { + data_uri = "data:image/png;base64," + Base64.encode(data.get_data()); + } else if (uri.has_prefix("data:image/png;base64,")) { + data_uri = uri; } + + Thumbnail thumbnail = new Thumbnail(); + thumbnail.uri = data_uri; + thumbnail.data = data; thumbnail.media_type = node.get_attribute("media-type"); thumbnail.width = node.get_attribute_int("width"); thumbnail.height = node.get_attribute_int("height"); |
