summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2011-03-17 22:09:50 (GMT)
committerRemko Tronçon <git@el-tramo.be>2011-03-17 22:14:46 (GMT)
commit5be2178d55246d22e079c05db848eb3ec50f1aa9 (patch)
tree39def8589842ba92b809e6aa4d7f0e5f7cfcb38e /Sluift/Examples
parent9cd05402468a7df3588ee1b1a8e1bf118eb72302 (diff)
downloadswift-contrib-5be2178d55246d22e079c05db848eb3ec50f1aa9.zip
swift-contrib-5be2178d55246d22e079c05db848eb3ec50f1aa9.tar.bz2
Sluift: Added example script for removing unreachable contacts.
Diffstat (limited to 'Sluift/Examples')
-rw-r--r--Sluift/Examples/RemoveUnreachableContacts.lua37
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()