Mercurial > prosody-modules
view mod_muc_media_metadata/README.markdown @ 4651:8231774f5bfd
mod_cloud_notify_encrypted: Ensure body substring remains valid UTF-8
The `body:sub()` call risks splitting the string in the middle of a
multi-byte UTF-8 sequence. This should have been caught by util.stanza
validation, but that would have caused some havoc, at the very least causing
the notification to not be sent.
There have been no reports of this happening. Likely because this module
isn't widely deployed among users with languages that use many longer UTF-8
sequences.
The util.encodings.utf8.valid() function is O(n) where only the last
sequence really needs to be checked, but it's in C and expected to be fast.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 22 Aug 2021 13:22:59 +0200 |
parents | 0e1e775bdea0 |
children |
line wrap: on
line source
--- labels: - 'Stage-Alpha' summary: 'Experimental module to add metadata to media in MUCs' ... # Introduction This module adds additional metadata to media shared in a MUC. This can help clients make decisions and provide better UI and enhanced privacy, by knowing things like file size without needing to make external network requests. ::: {.alert .alert-danger} **NOTE:** This is an experimental module. It is not supported by any clients, and therefore is mainly of interest to client developers who wish to explore the idea. ::: # Configuring ## Enabling ``` {.lua} Component "rooms.example.net" "muc" modules_enabled = { "muc_media_metadata"; } ``` ## Settings There are no configuration options for this module. # Developers ## Example stanzas A normal message in a chatroom containing an image: ``` <message from="test@rooms.example.com/matthew" id="9f45a784-5e5b-4db5-a9b3-8ea1d7c1162d" type="groupchat"> <body>https://matthewwild.co.uk/share.php/70334772-ff74-439b-8173-a71e40ca28db/mam-flow.png</body> <x xmlns="jabber:x:oob"> <url>https://matthewwild.co.uk/share.php/70334772-ff74-439b-8173-a71e40ca28db/mam-flow.png</url> </x> </message> ``` The same stanza with this module loaded now contains additional metadata added by the server: ``` <message from="test@rooms.example.com/matthew" id="9f45a784-5e5b-4db5-a9b3-8ea1d7c1162d" type="groupchat"> <body>https://matthewwild.co.uk/share.php/70334772-ff74-439b-8173-a71e40ca28db/mam-flow.png</body> <x xmlns="jabber:x:oob"> <url>https://matthewwild.co.uk/share.php/70334772-ff74-439b-8173-a71e40ca28db/mam-flow.png</url> <metadata xmlns="xmpp:prosody.im/protocol/media-metadata#0"> <bytes>15690</bytes> <type>image/png</type> <blurhash>LEHV6nWB2yk8pyo0adR*.7kCMdnj</blurhash> </metadata> </x> </message> ```