Software /
code /
prosody
Comparison
util/dataforms.lua @ 8864:cf2f66b233d1
util.dataforms: Add a simple function for identifying form types
This is meant to allow identifying forms without parsing them
completely.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 02 Jun 2018 19:57:46 +0200 |
parent | 8863:64fa8d80c09f |
child | 8945:cbeb1a045eb6 |
comparison
equal
deleted
inserted
replaced
8863:64fa8d80c09f | 8864:cf2f66b233d1 |
---|---|
247 field_readers["hidden"] = | 247 field_readers["hidden"] = |
248 function (field_tag) | 248 function (field_tag) |
249 return field_tag:get_child_text("value"); | 249 return field_tag:get_child_text("value"); |
250 end | 250 end |
251 | 251 |
252 | |
253 local function get_form_type(form) | |
254 if not st.is_stanza(form) then | |
255 return nil, "not a stanza object"; | |
256 elseif form.attr.xmlns ~= "jabber:x:data" or form.name ~= "x" then | |
257 return nil, "not a dataform element"; | |
258 end | |
259 for field in form:childtags("field") do | |
260 if field.attr.var == "FORM_TYPE" then | |
261 return field:get_child_text("value"); | |
262 end | |
263 end | |
264 return ""; | |
265 end | |
266 | |
252 return { | 267 return { |
253 new = new; | 268 new = new; |
269 get_type = get_form_type; | |
254 }; | 270 }; |
255 | 271 |
256 | 272 |
257 --[=[ | 273 --[=[ |
258 | 274 |