diff options
Diffstat (limited to 'Sluift/Examples/RemoveUnreachableContacts.lua')
| -rw-r--r-- | Sluift/Examples/RemoveUnreachableContacts.lua | 37 | 
1 files changed, 37 insertions, 0 deletions
| diff --git a/Sluift/Examples/RemoveUnreachableContacts.lua b/Sluift/Examples/RemoveUnreachableContacts.lua new file mode 100644 index 0000000..90122df --- /dev/null +++ b/Sluift/Examples/RemoveUnreachableContacts.lua @@ -0,0 +1,37 @@ +-- +-- Copyright (c) 2010 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() + +print "Checking for unreachable contacts ..." +for jid, _ in pairs(c:get_contacts()) do +	_, err = c:get_version(sluift.jid_domain(jid), 10000) +	if err == "Remote server not found" or err == "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 ..." +c:disconnect() | 
 Swift
 Swift