Mercurial > prosody-modules
comparison mod_rest/jsonmap.lib.lua @ 3856:8bdb1729529b
mod_rest: Make XHTML-IM mapping more convenient
Avoid burdening web developers with XML namespace attribute
Might be a bit fragile
Note that the <body> element must be included
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sat, 25 Jan 2020 00:46:09 +0100 |
| parents | 0e1e900577c4 |
| children | da3a0f055526 |
comparison
equal
deleted
inserted
replaced
| 3855:0e1e900577c4 | 3856:8bdb1729529b |
|---|---|
| 23 -- XEP-0045 MUC | 23 -- XEP-0045 MUC |
| 24 -- TODO history, password, ??? | 24 -- TODO history, password, ??? |
| 25 join = {"bool_tag", "http://jabber.org/protocol/muc", "x"}, | 25 join = {"bool_tag", "http://jabber.org/protocol/muc", "x"}, |
| 26 | 26 |
| 27 -- XEP-0071 | 27 -- XEP-0071 |
| 28 -- FIXME xmlns is awkward | |
| 29 html = { | 28 html = { |
| 30 "func", "http://jabber.org/protocol/xhtml-im", "html", | 29 "func", "http://jabber.org/protocol/xhtml-im", "html", |
| 31 function (s) --> json string | 30 function (s) --> json string |
| 32 return tostring(s:get_child("body", "http://www.w3.org/1999/xhtml")); | 31 return (tostring(s:get_child("body", "http://www.w3.org/1999/xhtml")):gsub(" xmlns='[^']*'","", 1)); |
| 33 end; | 32 end; |
| 34 function (s) --> xml | 33 function (s) --> xml |
| 35 if type(s) == "string" then | 34 if type(s) == "string" then |
| 36 return xml.parse([[<html xmlns='http://jabber.org/protocol/xhtml-im'>]]..s..[[</html>]]); | 35 return assert(xml.parse([[<x:html xmlns:x='http://jabber.org/protocol/xhtml-im' xmlns='http://www.w3.org/1999/xhtml'>]]..s..[[</x:html>]])); |
| 37 end | 36 end |
| 38 end; | 37 end; |
| 39 }; | 38 }; |
| 40 | 39 |
| 41 -- XEP-0199: XMPP Ping | 40 -- XEP-0199: XMPP Ping |
