Mercurial > prosody-modules
comparison mod_muc_restrict_media/mod_muc_restrict_media.lua @ 5171:1682166171ff
Strip images from XHTML-IM as well
author | Stephen Paul Weber <singpolyma@singpolyma.net> |
---|---|
date | Mon, 20 Feb 2023 13:41:46 -0500 |
parents | 5a3031613dbc |
children |
comparison
equal
deleted
inserted
replaced
5170:4d6af8950016 | 5171:1682166171ff |
---|---|
46 type = "boolean", | 46 type = "boolean", |
47 }); | 47 }); |
48 formdata["{xmpp:prosody.im}muc#roomconfig_unaffiliated_media"] = allow_unaffiliated_media; | 48 formdata["{xmpp:prosody.im}muc#roomconfig_unaffiliated_media"] = allow_unaffiliated_media; |
49 end); | 49 end); |
50 | 50 |
51 local function strip_xhtml_img(tag) | |
52 if tag.attr.xmlns == "http://www.w3.org/1999/xhtml" and tag.name == "img" then | |
53 tag.name = "i"; | |
54 tag:text(tag.attr.alt or "<image blocked>"); | |
55 tag.attr = { xmlns = tag.attr.xmlns, title = tag.attr.title }; | |
56 tag:maptags(strip_xhtml_img); | |
57 else | |
58 tag:maptags(strip_xhtml_img); | |
59 end | |
60 | |
61 return tag; | |
62 end | |
63 | |
51 local function filter_media_tags(tag) | 64 local function filter_media_tags(tag) |
52 local xmlns = tag.attr.xmlns; | 65 local xmlns = tag.attr.xmlns; |
53 if xmlns == "jabber:x:oob" then | 66 if xmlns == "jabber:x:oob" then |
54 return nil; | 67 return nil; |
55 elseif xmlns == "urn:xmpp:reference:0" then | 68 elseif xmlns == "urn:xmpp:reference:0" then |
56 if tag:get_child("media-sharing", "urn:xmpp:sims:1") then | 69 if tag:get_child("media-sharing", "urn:xmpp:sims:1") then |
57 return nil; | 70 return nil; |
58 end | 71 end |
72 elseif xmlns == "http://jabber.org/protocol/xhtml-im" then | |
73 return strip_xhtml_img(tag); | |
59 end | 74 end |
60 return tag; | 75 return tag; |
61 end | 76 end |
62 | 77 |
63 module:hook("muc-occupant-groupchat", function (event) | 78 module:hook("muc-occupant-groupchat", function (event) |