Software /
code /
prosody-modules
Annotate
mod_discoitems/mod_discoitems.lua @ 3571:f5ea0b886c7c
mod_storage_xmlarchive: Limit search to smallest time range in case of inexact match
This should improve performance in case the exact days in the 'start'
and 'end' range are missing from the index.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 03 May 2019 18:59:38 +0200 |
parent | 78:ae91c98b7e4c |
rev | line source |
---|---|
78
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
1 -- mod_discoitems.lua |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
2 -- |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
3 -- In the config, you can add: |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
4 -- |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
5 -- disco_items = { |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
6 -- {"proxy.eu.jabber.org", "Jabber.org SOCKS5 service"}; |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
7 -- {"conference.jabber.org", "The Jabber.org MUC"}; |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
8 -- }; |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
9 -- |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
10 |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
11 local st = require "util.stanza"; |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
12 |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
13 local result_query = st.stanza("query", {xmlns="http://jabber.org/protocol/disco#items"}); |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
14 for _, item in ipairs(module:get_option("disco_items") or {}) do |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
15 result_query:tag("item", {jid=item[1], name=item[2]}):up(); |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
16 end |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
17 |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
18 module:hook('iq/host/http://jabber.org/protocol/disco#items:query', function(event) |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
19 local stanza = event.stanza; |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
20 local query = stanza.tags[1]; |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
21 if stanza.attr.type == 'get' and not query.attr.node then |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
22 event.origin.send(st.reply(stanza):add_child(result_query)); |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
23 return true; |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
24 end |
ae91c98b7e4c
mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
25 end, 100); |