Mercurial > prosody-modules
annotate mod_default_bookmarks/mod_default_bookmarks.lua @ 4895:2542fd80cd15
mod_turn_external: Fix type of config option (thanks mirux)
There was a separate boolean option to enable TLS before, but it was
merged with the port number option and it seems the typed API interface
got confused.
Backport of trunk rev aa7a8aa64d3f
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 15 Feb 2022 21:51:52 +0100 |
parents | 62006f4022e9 |
children | 4c8b66da4dec |
rev | line source |
---|---|
479
597c872d691e
mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 -- Prosody IM |
597c872d691e
mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 -- Copyright (C) 2008-2010 Matthew Wild |
597c872d691e
mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 -- Copyright (C) 2008-2010 Waqas Hussain |
597c872d691e
mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 -- Copyright (C) 2011 Kim Alvefur |
3236
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
5 -- Copyright (C) 2018 Emmanuel Gil Peyrot |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
1325
diff
changeset
|
6 -- |
479
597c872d691e
mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 -- This project is MIT/X11 licensed. Please see the |
597c872d691e
mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 -- COPYING file in the source package for more information. |
597c872d691e
mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 -- |
597c872d691e
mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 |
597c872d691e
mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 local st = require "util.stanza" |
597c872d691e
mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 local dm_load = require "util.datamanager".load |
4860
4a34ed2bb9a2
mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents:
4859
diff
changeset
|
13 local jid = require "util.jid" |
479
597c872d691e
mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 |
3236
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
15 -- COMPAT w/trunk |
4857
3f6711c1c66a
mod_default_bookmarks: Use whichever of mod_bookmarks and mod_bookmarks2 is enabled
Kim Alvefur <zash@zash.se>
parents:
4856
diff
changeset
|
16 local mod_bookmarks_available = false; |
3236
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
17 local mm = require "core.modulemanager"; |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
18 if mm.get_modules_for_host then |
4857
3f6711c1c66a
mod_default_bookmarks: Use whichever of mod_bookmarks and mod_bookmarks2 is enabled
Kim Alvefur <zash@zash.se>
parents:
4856
diff
changeset
|
19 local host_modules = mm.get_modules_for_host(module.host); |
3f6711c1c66a
mod_default_bookmarks: Use whichever of mod_bookmarks and mod_bookmarks2 is enabled
Kim Alvefur <zash@zash.se>
parents:
4856
diff
changeset
|
20 if host_modules:contains("bookmarks") then |
3f6711c1c66a
mod_default_bookmarks: Use whichever of mod_bookmarks and mod_bookmarks2 is enabled
Kim Alvefur <zash@zash.se>
parents:
4856
diff
changeset
|
21 mod_bookmarks_available = "bookmarks"; |
3f6711c1c66a
mod_default_bookmarks: Use whichever of mod_bookmarks and mod_bookmarks2 is enabled
Kim Alvefur <zash@zash.se>
parents:
4856
diff
changeset
|
22 elseif host_modules:contains("bookmarks2") then |
3f6711c1c66a
mod_default_bookmarks: Use whichever of mod_bookmarks and mod_bookmarks2 is enabled
Kim Alvefur <zash@zash.se>
parents:
4856
diff
changeset
|
23 mod_bookmarks_available = "bookmarks2"; |
3236
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
24 end |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
25 end |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
26 |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
27 local function get_default_bookmarks(nickname) |
4860
4a34ed2bb9a2
mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents:
4859
diff
changeset
|
28 local bookmarks = module:get_option_array("default_bookmarks"); |
3236
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
29 if not bookmarks or #bookmarks == 0 then |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
30 return false; |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
31 end |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
32 local reply = st.stanza("storage", { xmlns = "storage:bookmarks" }); |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
33 local nick = nickname and st.stanza("nick"):text(nickname); |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
34 for _, bookmark in ipairs(bookmarks) do |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
35 if type(bookmark) ~= "table" then -- assume it's only a jid |
4860
4a34ed2bb9a2
mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents:
4859
diff
changeset
|
36 bookmark = { jid = bookmark, name = jid.split(bookmark) }; |
3236
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
37 end |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
38 reply:tag("conference", { |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
39 jid = bookmark.jid, |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
40 name = bookmark.name, |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
41 autojoin = "1", |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
42 }); |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
43 if nick then |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
44 reply:add_child(nick):up(); |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
45 end |
3237
420ebea00cf3
mod_default_bookmarks: Add support for <password/>.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3236
diff
changeset
|
46 if bookmark.password then |
420ebea00cf3
mod_default_bookmarks: Add support for <password/>.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3236
diff
changeset
|
47 reply:tag("password"):text(bookmark.password):up(); |
420ebea00cf3
mod_default_bookmarks: Add support for <password/>.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3236
diff
changeset
|
48 end |
3236
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
49 reply:up(); |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
50 end |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
51 return reply; |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
52 end |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
53 |
4857
3f6711c1c66a
mod_default_bookmarks: Use whichever of mod_bookmarks and mod_bookmarks2 is enabled
Kim Alvefur <zash@zash.se>
parents:
4856
diff
changeset
|
54 if mod_bookmarks_available then |
3f6711c1c66a
mod_default_bookmarks: Use whichever of mod_bookmarks and mod_bookmarks2 is enabled
Kim Alvefur <zash@zash.se>
parents:
4856
diff
changeset
|
55 local mod_bookmarks = module:depends(mod_bookmarks_available); |
4864
62006f4022e9
mod_default_bookmarks: Silence warning when probing for mod_bookmarks version
Kim Alvefur <zash@zash.se>
parents:
4860
diff
changeset
|
56 if rawget(mod_bookmarks, "publish_to_pep") then |
4858
727f147aac4d
mod_default_bookmarks: Minor refactor to do some checks earlier
Kim Alvefur <zash@zash.se>
parents:
4857
diff
changeset
|
57 local function on_bookmarks_empty(event) |
727f147aac4d
mod_default_bookmarks: Minor refactor to do some checks earlier
Kim Alvefur <zash@zash.se>
parents:
4857
diff
changeset
|
58 local session = event.session; |
4856
b3f0f82af5a2
mod_default_bookmarks: Fix mod_bookmarks capability check
Kim Alvefur <zash@zash.se>
parents:
4854
diff
changeset
|
59 local bookmarks = get_default_bookmarks(session.username); |
b3f0f82af5a2
mod_default_bookmarks: Fix mod_bookmarks capability check
Kim Alvefur <zash@zash.se>
parents:
4854
diff
changeset
|
60 if bookmarks then |
b3f0f82af5a2
mod_default_bookmarks: Fix mod_bookmarks capability check
Kim Alvefur <zash@zash.se>
parents:
4854
diff
changeset
|
61 mod_bookmarks.publish_to_pep(session.full_jid, bookmarks); |
b3f0f82af5a2
mod_default_bookmarks: Fix mod_bookmarks capability check
Kim Alvefur <zash@zash.se>
parents:
4854
diff
changeset
|
62 end |
479
597c872d691e
mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
63 end |
4858
727f147aac4d
mod_default_bookmarks: Minor refactor to do some checks earlier
Kim Alvefur <zash@zash.se>
parents:
4857
diff
changeset
|
64 module:hook("bookmarks/empty", on_bookmarks_empty); |
727f147aac4d
mod_default_bookmarks: Minor refactor to do some checks earlier
Kim Alvefur <zash@zash.se>
parents:
4857
diff
changeset
|
65 else |
4859
33208c3ae586
mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents:
4858
diff
changeset
|
66 local mod_pep = module:depends "pep"; |
33208c3ae586
mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents:
4858
diff
changeset
|
67 |
33208c3ae586
mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents:
4858
diff
changeset
|
68 local function publish_bookmarks2(event) |
33208c3ae586
mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents:
4858
diff
changeset
|
69 local session = event.session; |
33208c3ae586
mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents:
4858
diff
changeset
|
70 local publish_options = { |
33208c3ae586
mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents:
4858
diff
changeset
|
71 ["persist_items"] = true; |
33208c3ae586
mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents:
4858
diff
changeset
|
72 ["max_items"] = "max"; |
33208c3ae586
mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents:
4858
diff
changeset
|
73 ["send_last_published_item"] = "never"; |
33208c3ae586
mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents:
4858
diff
changeset
|
74 ["access_model"] = "whitelist"; |
33208c3ae586
mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents:
4858
diff
changeset
|
75 } |
33208c3ae586
mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents:
4858
diff
changeset
|
76 if not pcall(mod_pep.check_node_config, nil, nil, publish_options) then |
33208c3ae586
mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents:
4858
diff
changeset
|
77 -- 0.11 or earlier not supporting max_items="max" trows an error here |
33208c3ae586
mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents:
4858
diff
changeset
|
78 module:log("debug", "Setting max_items=pep_max_items because 'max' is not supported in this version"); |
33208c3ae586
mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents:
4858
diff
changeset
|
79 publish_options["max_items"] = module:get_option_number("pep_max_items", 256); |
33208c3ae586
mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents:
4858
diff
changeset
|
80 end |
33208c3ae586
mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents:
4858
diff
changeset
|
81 local service = mod_pep.get_pep_service(session.username); |
4860
4a34ed2bb9a2
mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents:
4859
diff
changeset
|
82 local bookmarks = module:get_option_array("default_bookmarks"); |
4859
33208c3ae586
mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents:
4858
diff
changeset
|
83 local ns = event.version or "urn:xmpp:bookmarks:1"; |
33208c3ae586
mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents:
4858
diff
changeset
|
84 for i, bookmark in ipairs(bookmarks) do |
4860
4a34ed2bb9a2
mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents:
4859
diff
changeset
|
85 local bm_jid = jid.prep(bookmark.jid); |
4a34ed2bb9a2
mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents:
4859
diff
changeset
|
86 if not bm_jid then |
4a34ed2bb9a2
mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents:
4859
diff
changeset
|
87 module:log("error", "Invalid JID in default_bookmarks[%d].jid = %q", i, bookmark.jid); |
4a34ed2bb9a2
mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents:
4859
diff
changeset
|
88 else |
4a34ed2bb9a2
mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents:
4859
diff
changeset
|
89 local item = st.stanza("item", { xmlns = "http://jabber.org/protocol/pubsub"; id = bm_jid }); |
4a34ed2bb9a2
mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents:
4859
diff
changeset
|
90 item:tag("conference", { xmlns = ns; name = bookmark.name; autojoin = bookmark.autojoin and "true" or nil }); |
4a34ed2bb9a2
mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents:
4859
diff
changeset
|
91 if bookmark.nick then item:text_tag("nick", bookmarks.nick); end |
4a34ed2bb9a2
mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents:
4859
diff
changeset
|
92 if bookmark.password then item:text_tag("password", bookmarks.password); end |
4a34ed2bb9a2
mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents:
4859
diff
changeset
|
93 local ok, err = service:publish("urn:xmpp:bookmarks:1", session.full_jid, bm_jid, item, publish_options); |
4a34ed2bb9a2
mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents:
4859
diff
changeset
|
94 if not ok then |
4a34ed2bb9a2
mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents:
4859
diff
changeset
|
95 module:log("error", "Could not add default bookmark %s to %s: %s", bm_jid, session.username, err); |
4a34ed2bb9a2
mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents:
4859
diff
changeset
|
96 end |
4a34ed2bb9a2
mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents:
4859
diff
changeset
|
97 end |
4859
33208c3ae586
mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents:
4858
diff
changeset
|
98 end |
33208c3ae586
mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents:
4858
diff
changeset
|
99 end |
33208c3ae586
mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents:
4858
diff
changeset
|
100 module:hook("bookmarks/empty", publish_bookmarks2); |
479
597c872d691e
mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
101 end |
3236
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
102 else |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
103 local function on_private_xml_get(event) |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
104 local origin, stanza = event.origin, event.stanza; |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
105 local tag = stanza.tags[1].tags[1]; |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
106 local key = tag.name..":"..tag.attr.xmlns; |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
107 if key ~= "storage:storage:bookmarks" then |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
108 return; |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
109 end |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
110 |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
111 local data, err = dm_load(origin.username, origin.host, "private"); |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
112 if data and data[key] then |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
113 return; |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
114 end |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
115 |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
116 local bookmarks = get_default_bookmarks(origin.username); |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
117 if not bookmarks then |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
118 return; |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
119 end; |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
120 |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
121 local reply = st.reply(stanza):tag("query", { xmlns = "jabber:iq:private" }) |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
122 :add_child(bookmarks); |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
123 origin.send(reply); |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
124 return true; |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
125 end |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
126 module:hook("iq-get/self/jabber:iq:private:query", on_private_xml_get, 1); |
73906187f964
mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1343
diff
changeset
|
127 end |