-- -- 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