examples/iq_register.lua
changeset 53 2162188b20cf
parent 49 95f3bf77c598
child 64 bf7521ed96eb
equal deleted inserted replaced
52:50d4e9bc622d 53:2162188b20cf
     1 
     1 
     2 -- IN-BAND REGISTRATION (XEP-0077)
     2 -- IN-BAND REGISTRATION (XEP-0077)
     3 
       
     4 -- FIXME this is not yet finished, as format of form is undecided yet
       
     5 
     3 
     6 -- library
     4 -- library
     7 
     5 
     8 require 'lm'
     6 require 'lm'
     9 require 'iq'
     7 require 'iq'
    25 	if query:child ( 'registered' ) then
    23 	if query:child ( 'registered' ) then
    26 		form.registered = true
    24 		form.registered = true
    27 	end
    25 	end
    28 
    26 
    29 	local x = query:child ( 'x' )
    27 	local x = query:child ( 'x' )
    30 	if x:attribute ( 'xmlns' ) == 'jabber:x:data' then
    28 	if x and x:attribute ( 'xmlns' ) == 'jabber:x:data' then
    31 		form = form.parse ( x )
    29 		form = x_data.parse ( x )
    32 		local format = form.format
    30 		local format = form.format
    33 		form.format =
    31 		form.format =
    34 			function ( form, root )
    32 			function ( form, root )
    35 					root.query = format ( form, { xmlns = 'jabber:iq:register' } )
    33 				root.query = format ( form, { xmlns = 'jabber:iq:register' } )
    36 					return root
    34 				return root
    37 			end
    35 			end
    38 		return form
    36 		return form
    39 	end
    37 	end
    40 
    38 
    41 	local field = query:children ()
    39 	local field = query:children ()
    42 	while field do
    40 	while field do
    43 		local name  = field:name ()
    41 		local name  = field:name ()
    44 		if name ~= 'instructions' and name ~= 'registered' then
    42 		if name ~= 'instructions' and name ~= 'registered' then
    45 			table.insert ( form, { type = 'text-single', var = name, value = { field:value () or '' } } )
    43 			table.insert ( form, { type = 'text-single', var = name, value = field:value () or '' } )
    46 		end
    44 		end
    47 		field = field:next ()
    45 		field = field:next ()
    48 	end
    46 	end
    49 	form.format =
    47 	form.format =
    50 		function ( form, root )
    48 		function ( form, root )