author | Kim Alvefur <zash@zash.se> |
Sun, 25 Jan 2015 13:04:02 +0100 | |
changeset 1593 | 3e4d15ae2133 |
parent 1343 | 7dbde05b48a9 |
permissions | -rw-r--r-- |
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 |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
1325
diff
changeset
|
5 |
-- |
479
597c872d691e
mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 |
-- 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
|
7 |
-- 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
|
8 |
-- |
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 |
|
597c872d691e
mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 |
local dm_load = require "util.datamanager".load |
597c872d691e
mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 |
local jid_split = require "util.jid".split |
597c872d691e
mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
15 |
|
1593
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
16 |
local private_bookmarks_ns = "storage:storage:bookmarks"; |
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
17 |
|
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
18 |
local bookmarks = module:get_option("default_bookmarks"); |
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
19 |
|
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
20 |
module:hook("iq-get/self/jabber:iq:private:query", function(event) |
479
597c872d691e
mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
21 |
local origin, stanza = event.origin, event.stanza; |
597c872d691e
mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
22 |
local from = stanza.attr.from; |
1593
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
23 |
if not stanza.tags[1]:get_child("storage", "storage:bookmarks") then return end |
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
24 |
local data, err = dm_load(origin.username, origin.host, "private"); |
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
25 |
if data and data[private_bookmarks_ns] then return end |
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
26 |
|
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
27 |
local reply = st.reply(stanza):tag("query", {xmlns = "jabber:iq:private"}) |
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
28 |
:tag("storage", { xmlns = "storage:bookmarks" }); |
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
29 |
|
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
30 |
local nick = jid_split(from); |
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
31 |
|
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
32 |
local bookmark; |
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
33 |
for i=1,#bookmarks do |
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
34 |
bookmark = bookmarks[i]; |
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
35 |
if type(bookmark) ~= "table" then -- assume it's only a jid |
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
36 |
bookmark = { jid = bookmark, name = jid_split(bookmark) }; |
479
597c872d691e
mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
37 |
end |
1593
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
38 |
reply:tag("conference", { |
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
39 |
jid = bookmark.jid, |
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
40 |
name = bookmark.name, |
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
41 |
autojoin = "1", |
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
42 |
}):tag("nick"):text(nick):up():up(); |
479
597c872d691e
mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
43 |
end |
1593
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
44 |
origin.send(reply); |
3e4d15ae2133
mod_storage_gdbm: Use require directly instead of util.import (which is not available in prosodyctl, breaks adduser etc)
Kim Alvefur <zash@zash.se>
parents:
1343
diff
changeset
|
45 |
return true; |
479
597c872d691e
mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
46 |
end, 1); |