equal
deleted
inserted
replaced
314 return st.stanza("query", { xmlns = "jabber:iq:oob" }):text_tag("url", s); |
314 return st.stanza("query", { xmlns = "jabber:iq:oob" }):text_tag("url", s); |
315 end |
315 end |
316 end; |
316 end; |
317 }; |
317 }; |
318 |
318 |
319 -- XEP-XXXX: User-defined Data Transfer |
319 -- XEP-0432: Simple JSON Messaging |
320 payload = { type = "func", xmlns = "urn:xmpp:udt:0", tagname = "payload", |
320 payload = { type = "func", xmlns = "urn:xmpp:json-msg:0", tagname = "payload", |
321 st2json = function (s) |
321 st2json = function (s) |
322 local rawjson = s:get_child_text("json", "urn:xmpp:json:0"); |
322 local rawjson = s:get_child_text("json", "urn:xmpp:json:0"); |
323 if not rawjson then return nil, "missing-json-payload"; end |
323 if not rawjson then return nil, "missing-json-payload"; end |
324 local parsed, err = json.decode(rawjson); |
324 local parsed, err = json.decode(rawjson); |
325 if not parsed then return nil, err; end |
325 if not parsed then return nil, err; end |
328 data = parsed; |
328 data = parsed; |
329 }; |
329 }; |
330 end; |
330 end; |
331 json2st = function (s) |
331 json2st = function (s) |
332 if type(s) == "table" then |
332 if type(s) == "table" then |
333 return st.stanza("payload", { xmlns = "urn:xmpp:udt:0", datatype = s.datatype }) |
333 return st.stanza("payload", { xmlns = "urn:xmpp:json-msg:0", datatype = s.datatype }) |
334 :tag("json", { xmlns = "urn:xmpp:json:0" }):text(json.encode(s.data)); |
334 :tag("json", { xmlns = "urn:xmpp:json:0" }):text(json.encode(s.data)); |
335 end; |
335 end; |
336 end |
336 end |
337 }; |
337 }; |
338 |
338 |