--[[ Copyright (c) 2010-2013 Remko Tronçon Licensed under the GNU General Public License v3. See Documentation/Licenses/GPLv3.txt for more information. --]] --[[ This script logs into an XMPP server, iterates over all roster items, and checks if their server is still alive. If not, the script asks you whether it should remove the contact from your contact list. The following environment variables are used: * SLUIFT_JID, SWIFT_PASS: JID and password to log in with * SLUIFT_DEBUG: Sets whether debugging should be turned on --]] require 'sluift' sluift.debug = os.getenv('SLUIFT_DEBUG') print 'Connecting ...' c = sluift.new_client(os.getenv('SLUIFT_JID'), os.getenv('SLUIFT_PASS')) c:connect(function (c) print 'Checking for unreachable contacts ...' for jid in pairs(c:get_contacts()) do _, err = c:get_software_version {to = sluift.jid.domain(jid), timeout = 10000} print(err) if err == 'Remote server not found' or err == 'Remote server timeout' then print('Delete ' .. jid .. ' (' .. err .. ') ? [y/n/q]') answer = io.read() if answer == 'y' then c:remove_contact(jid) elseif answer == 'q' then break end end end print 'Done. Exiting ...' end)