diff options
Diffstat (limited to 'Sluift/Examples')
| -rwxr-xr-x | Sluift/Examples/Wonderland.lua | 52 | 
1 files changed, 52 insertions, 0 deletions
diff --git a/Sluift/Examples/Wonderland.lua b/Sluift/Examples/Wonderland.lua new file mode 100755 index 0000000..cf79371 --- /dev/null +++ b/Sluift/Examples/Wonderland.lua @@ -0,0 +1,52 @@ +--
 +-- Copyright (c) 2011 Remko Tronçon
 +-- Licensed under the GNU General Public License v3.
 +-- See Documentation/Licenses/GPLv3.txt for more information.
 +--
 +
 +-- This script creates the wonderland world example.
 +--
 +
 +require "sluift"
 +--sluift.debug = true
 +
 +characters = {
 +	{jid = "alice@wonderland.lit", name = "Alice", groups = {}, presence = "<presence/>"},
 +	{jid = "hatter@wonderland.lit", name = "Mad Hatter", groups = {}, presence = "<presence><show>away</show><status>At the Tea Party</status></presence>"},
 +	{jid ="queen@wonderland.lit", name = "Queen of Hearts", groups = {}, presence = "<presence><show>dnd</show><status>Executing</status></presence>"},
 +	{jid = "rabbit@wonderland.lit", name = "White Rabbit", groups = {"Animals"}, presence = "<presence><status>Oh dear!</status></presence>"},
 +	{jid = "turtle@wonderland.lit", name = "Mock Turtle", groups = {"Animals"}, presence = "<presence/>"},
 +}
 +
 +clients = {}
 +for _, character in ipairs(characters) do
 +	print("Connecting " .. character["name"] .. "...")
 +	client = sluift.new_client(character["jid"], os.getenv("SLUIFT_PASS"))
 +	client:set_options({compress = false, tls = false})
 +	client:connect()
 +	client:get_contacts()
 +	client:send(character["presence"])
 +	table.insert(clients, client)
 +	for _, contact in ipairs(characters) do
 +		if contact["jid"] ~= character["jid"] then
 +			client:add_contact(contact)
 +		end
 +	end
 +end
 +
 +print("Confirming subscriptions")
 +for _, client in ipairs(clients) do
 +	for _, contact in ipairs(characters) do
 +		client:confirm_subscription(contact["jid"])
 +	end
 +end
 +
 +print("Done. Waiting ...")
 +while true do
 +	for _, client in ipairs(clients) do
 +		client:for_event(function(e) 
 +				if e["type"] == "message" then client:send_message(e["from"], "Off with their heads!") end 
 +			end, 1000)
 +	end
 +	sluift.sleep(1000)
 +end
  | 
 Swift