Merged disco output
authorMyhailo Danylenko <isbear@ukrpost.net>
Mon, 16 Mar 2009 01:04:49 +0200
changeset 28 90e52372b595
parent 27 92b254b64360
child 29 0199ecce6c11
Merged disco output
examples/xep0030.lua
--- a/examples/xep0030.lua	Mon Mar 16 00:47:44 2009 +0200
+++ b/examples/xep0030.lua	Mon Mar 16 01:04:49 2009 +0200
@@ -67,11 +67,16 @@
 			disco_items (
 				function ( items )
 					if type ( items ) == 'string' then
-						main.print_info ( who, string.format ( "Service items discovery for %s (%s) failed: %s", who, node or '', items ) )
+						main.print_info ( who, ("Items service discovery for %s (%s) failed: %s"):format ( who, node or '', items ) )
 					else
-						main.print_info ( who, string.format ( "Service items discovery result for %s (%s):", who, node or '' ) )
+						local text = ''
 						for index, item in ipairs ( items ) do
-							main.print_info ( who, string.format ( "    [%s (%s)] %s", item.jid or '', item.node or '', item.name or '' ) )
+							text = text .. ("\n    [%s (%s)] %s"):format ( item.jid or '', item.node or '', item.name or '' )
+						end
+						if text ~= '' then
+							main.print_info ( who, ("Items service discovery result for %s (%s):%s"):format ( who, node or '', text ) )
+						else
+							main.print_info ( who, ("No items in discovery result for %s (%s)"):format ( who, node or '' ) )
 						end
 					end
 				end, who, node )
@@ -79,16 +84,26 @@
 			disco_info (
 				function ( identities, features )
 					if type ( identities ) == 'string' then
-						main.print_info ( who, string.format ( "Service info discovery for %s failed: %s", who, identities ) )
+						main.print_info ( who, ("Info service discovery for %s failed: %s"):format ( who, identities ) )
 					else
-						main.print_info ( who, string.format ( "Service info discovery result for %s:", who ) )
-						main.print_info ( who, "  Identities:" )
+						main.print_info ( who, ("Service info discovery result for %s:"):format ( who ) )
+						local text = ''
 						for index, identity in ipairs ( identities ) do
-							main.print_info ( who, string.format ( "    [%s (%s)] %s", identity.category or '', identity.type or '', identity.name or '' ) )
+							text = text .. ("\n    [%s (%s)] %s"):format ( identity.category or '', identity.type or '', identity.name or '' )
+						end
+						if text ~= '' then
+							main.print_info ( who, "  Identities:" .. text )
+						else
+							main.print_info ( who, "  No identities" )
 						end
-						main.print_info ( who, "  Features:" )
+						text = ''
 						for index, feature in ipairs ( features ) do
-							main.print_info ( who, string.format ( "    [%s]", feature or '' ) )
+							text = text .. ("\n    [%s]"):format ( feature or '' )
+						end
+						if text ~= '' then
+							main.print_info ( who, "  Features:" .. text )
+						else
+							main.print_info ( who, "  No features" )
 						end
 					end
 				end, who )