# HG changeset patch # User Waqas Hussain # Date 1257081282 -18000 # Node ID ae91c98b7e4c1c273f6b86b3c9bc60ad012326da # Parent 85b8622ccffde2f9ce8225946b02deae94890e85 mod_discoitems: Initial commit. diff -r 85b8622ccffd -r ae91c98b7e4c mod_discoitems/mod_discoitems.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_discoitems/mod_discoitems.lua Sun Nov 01 18:14:42 2009 +0500 @@ -0,0 +1,25 @@ +-- mod_discoitems.lua +-- +-- In the config, you can add: +-- +-- disco_items = { +-- {"proxy.eu.jabber.org", "Jabber.org SOCKS5 service"}; +-- {"conference.jabber.org", "The Jabber.org MUC"}; +-- }; +-- + +local st = require "util.stanza"; + +local result_query = st.stanza("query", {xmlns="http://jabber.org/protocol/disco#items"}); +for _, item in ipairs(module:get_option("disco_items") or {}) do + result_query:tag("item", {jid=item[1], name=item[2]}):up(); +end + +module:hook('iq/host/http://jabber.org/protocol/disco#items:query', function(event) + local stanza = event.stanza; + local query = stanza.tags[1]; + if stanza.attr.type == 'get' and not query.attr.node then + event.origin.send(st.reply(stanza):add_child(result_query)); + return true; + end +end, 100);