author | Kim Alvefur <zash@zash.se> |
Sat, 02 Dec 2023 12:20:36 +0100 | |
changeset 5762 | 32bc648e3892 |
parent 4018 | 1b68954a743a |
permissions | -rw-r--r-- |
3540
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
1 |
local jid_bare, jid_split = import("util.jid", "bare", "split"); |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
2 |
|
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
3 |
-- luacheck: ignore 122 |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
4 |
local user_sessions = prosody.hosts[module.host].sessions; |
3536
85c357b69eec
mod_csi_muc_priorities: Reduce importance of group chat messages
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 |
|
85c357b69eec
mod_csi_muc_priorities: Reduce importance of group chat messages
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 |
module:hook("csi-is-stanza-important", function (event) |
85c357b69eec
mod_csi_muc_priorities: Reduce importance of group chat messages
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 |
local stanza, session = event.stanza, event.session; |
85c357b69eec
mod_csi_muc_priorities: Reduce importance of group chat messages
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 |
if stanza.name == "message" then |
85c357b69eec
mod_csi_muc_priorities: Reduce importance of group chat messages
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 |
if stanza.attr.type == "groupchat" then |
3538
700340b57851
mod_csi_muc_priorities: Break out room jid into a variable
Kim Alvefur <zash@zash.se>
parents:
3537
diff
changeset
|
10 |
local room_jid = jid_bare(stanza.attr.from); |
700340b57851
mod_csi_muc_priorities: Break out room jid into a variable
Kim Alvefur <zash@zash.se>
parents:
3537
diff
changeset
|
11 |
|
3540
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
12 |
local username = session.username; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
13 |
local priorities = user_sessions[username].csi_muc_priorities; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
14 |
|
3758
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
15 |
if priorities then |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
16 |
local priority = priorities[room_jid]; |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
17 |
if priority ~= nil then |
4018
1b68954a743a
mod_csi_muc_priorities: Report reason for importance decision
Kim Alvefur <zash@zash.se>
parents:
3996
diff
changeset
|
18 |
event.reason = "muc priority"; |
3758
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
19 |
return priority; |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
20 |
end |
3540
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
21 |
end |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
22 |
|
3539
bcb0eb9121a9
mod_csi_muc_priorities: Add a comment
Kim Alvefur <zash@zash.se>
parents:
3538
diff
changeset
|
23 |
-- Look for mention |
3536
85c357b69eec
mod_csi_muc_priorities: Reduce importance of group chat messages
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
24 |
local rooms = session.rooms_joined; |
3542
946902fa4088
mod_csi_muc_priorities: Undo early return to make following commit clearer
Kim Alvefur <zash@zash.se>
parents:
3541
diff
changeset
|
25 |
if rooms then |
3758
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
26 |
local body = stanza:get_child_text("body"); |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
27 |
if not body then return end |
3542
946902fa4088
mod_csi_muc_priorities: Undo early return to make following commit clearer
Kim Alvefur <zash@zash.se>
parents:
3541
diff
changeset
|
28 |
local room_nick = rooms[room_jid]; |
946902fa4088
mod_csi_muc_priorities: Undo early return to make following commit clearer
Kim Alvefur <zash@zash.se>
parents:
3541
diff
changeset
|
29 |
if room_nick then |
946902fa4088
mod_csi_muc_priorities: Undo early return to make following commit clearer
Kim Alvefur <zash@zash.se>
parents:
3541
diff
changeset
|
30 |
if body:find(room_nick, 1, true) then |
4018
1b68954a743a
mod_csi_muc_priorities: Report reason for importance decision
Kim Alvefur <zash@zash.se>
parents:
3996
diff
changeset
|
31 |
event.reason = "muc mention"; |
3542
946902fa4088
mod_csi_muc_priorities: Undo early return to make following commit clearer
Kim Alvefur <zash@zash.se>
parents:
3541
diff
changeset
|
32 |
return true; |
946902fa4088
mod_csi_muc_priorities: Undo early return to make following commit clearer
Kim Alvefur <zash@zash.se>
parents:
3541
diff
changeset
|
33 |
end |
3758
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
34 |
-- Your own messages |
3543
6d51f44bc725
mod_csi_muc_priorities: Consider own MUC messages as important
Kim Alvefur <zash@zash.se>
parents:
3542
diff
changeset
|
35 |
if stanza.attr.from == (room_jid .. "/" .. room_nick) then |
4018
1b68954a743a
mod_csi_muc_priorities: Report reason for importance decision
Kim Alvefur <zash@zash.se>
parents:
3996
diff
changeset
|
36 |
event.reason = "muc own message"; |
3543
6d51f44bc725
mod_csi_muc_priorities: Consider own MUC messages as important
Kim Alvefur <zash@zash.se>
parents:
3542
diff
changeset
|
37 |
return true; |
6d51f44bc725
mod_csi_muc_priorities: Consider own MUC messages as important
Kim Alvefur <zash@zash.se>
parents:
3542
diff
changeset
|
38 |
end |
3542
946902fa4088
mod_csi_muc_priorities: Undo early return to make following commit clearer
Kim Alvefur <zash@zash.se>
parents:
3541
diff
changeset
|
39 |
end |
946902fa4088
mod_csi_muc_priorities: Undo early return to make following commit clearer
Kim Alvefur <zash@zash.se>
parents:
3541
diff
changeset
|
40 |
end |
3632
2444fb3b05b7
mod_csi_muc_priorities: Signal unimportance (thanks tmolitor)
Kim Alvefur <zash@zash.se>
parents:
3605
diff
changeset
|
41 |
|
3758
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
42 |
-- Standard importance and no mention, leave to other modules to decide for now |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
43 |
return nil; |
3536
85c357b69eec
mod_csi_muc_priorities: Reduce importance of group chat messages
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
44 |
end |
85c357b69eec
mod_csi_muc_priorities: Reduce importance of group chat messages
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
45 |
end |
85c357b69eec
mod_csi_muc_priorities: Reduce importance of group chat messages
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
46 |
end); |
85c357b69eec
mod_csi_muc_priorities: Reduce importance of group chat messages
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
47 |
|
3540
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
48 |
module:depends("adhoc"); |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
49 |
|
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
50 |
local dataform = require"util.dataforms"; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
51 |
local adhoc_inital_data = require "util.adhoc".new_initial_data_form; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
52 |
local instructions = [[ |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
53 |
These settings affect battery optimizations performed by the server |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
54 |
while your client has indicated that it is inactive. |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
55 |
]] |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
56 |
|
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
57 |
local priority_settings_form = dataform.new { |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
58 |
title = "Prioritize addresses of group chats"; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
59 |
instructions = instructions; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
60 |
{ |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
61 |
type = "hidden"; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
62 |
name = "FORM_TYPE"; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
63 |
value = "xmpp:modules.prosody.im/mod_"..module.name; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
64 |
}; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
65 |
{ |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
66 |
type = "jid-multi"; |
3758
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
67 |
name = "important"; |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
68 |
label = "Higher priority"; |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
69 |
desc = "Group chats more important to you"; |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
70 |
}; |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
71 |
{ |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
72 |
type = "jid-multi"; |
3540
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
73 |
name = "unimportant"; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
74 |
label = "Lower priority"; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
75 |
desc = "E.g. large noisy public channels"; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
76 |
}; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
77 |
} |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
78 |
|
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
79 |
local store = module:open_store(); |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
80 |
module:hook("resource-bind", function (event) |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
81 |
local username = event.session.username; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
82 |
user_sessions[username].csi_muc_priorities = store:get(username); |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
83 |
end); |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
84 |
|
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
85 |
local adhoc_command_handler = adhoc_inital_data(priority_settings_form, function (data) |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
86 |
local username = jid_split(data.from); |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
87 |
local prioritized_jids = user_sessions[username].csi_muc_priorities or store:get(username); |
3758
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
88 |
local important = {}; |
3540
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
89 |
local unimportant = {}; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
90 |
if prioritized_jids then |
3758
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
91 |
for jid, priority in pairs(prioritized_jids) do |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
92 |
if priority then |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
93 |
table.insert(important, jid); |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
94 |
else |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
95 |
table.insert(unimportant, jid); |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
96 |
end |
3540
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
97 |
end |
3758
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
98 |
table.sort(important); |
3541
7d6fb9570395
mod_csi_muc_priorities: Sort list of JIDs
Kim Alvefur <zash@zash.se>
parents:
3540
diff
changeset
|
99 |
table.sort(unimportant); |
3540
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
100 |
end |
3758
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
101 |
return { |
3992
569f754bd126
mod_csi_muc_priorities: Adjust indentation
Kim Alvefur <zash@zash.se>
parents:
3758
diff
changeset
|
102 |
important = important; |
569f754bd126
mod_csi_muc_priorities: Adjust indentation
Kim Alvefur <zash@zash.se>
parents:
3758
diff
changeset
|
103 |
unimportant = unimportant; |
569f754bd126
mod_csi_muc_priorities: Adjust indentation
Kim Alvefur <zash@zash.se>
parents:
3758
diff
changeset
|
104 |
}; |
3540
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
105 |
end, function(fields, form_err, data) |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
106 |
if form_err then |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
107 |
return { status = "completed", error = { message = "Problem in submitted form" } }; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
108 |
end |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
109 |
local prioritized_jids = {}; |
3605
013ef96a6d4d
mod_csi_muc_priorities: Fix traceback due to empty field
Kim Alvefur <zash@zash.se>
parents:
3544
diff
changeset
|
110 |
if fields.unimportant then |
3996
0233da912ab6
mod_csi_muc_priorities: Fix bad argument to 'ipairs' on a missing list
Kim Alvefur <zash@zash.se>
parents:
3992
diff
changeset
|
111 |
if fields.unimportant then |
0233da912ab6
mod_csi_muc_priorities: Fix bad argument to 'ipairs' on a missing list
Kim Alvefur <zash@zash.se>
parents:
3992
diff
changeset
|
112 |
for _, jid in ipairs(fields.unimportant) do |
0233da912ab6
mod_csi_muc_priorities: Fix bad argument to 'ipairs' on a missing list
Kim Alvefur <zash@zash.se>
parents:
3992
diff
changeset
|
113 |
prioritized_jids[jid] = false; |
0233da912ab6
mod_csi_muc_priorities: Fix bad argument to 'ipairs' on a missing list
Kim Alvefur <zash@zash.se>
parents:
3992
diff
changeset
|
114 |
end |
3605
013ef96a6d4d
mod_csi_muc_priorities: Fix traceback due to empty field
Kim Alvefur <zash@zash.se>
parents:
3544
diff
changeset
|
115 |
end |
3996
0233da912ab6
mod_csi_muc_priorities: Fix bad argument to 'ipairs' on a missing list
Kim Alvefur <zash@zash.se>
parents:
3992
diff
changeset
|
116 |
if fields.important then |
0233da912ab6
mod_csi_muc_priorities: Fix bad argument to 'ipairs' on a missing list
Kim Alvefur <zash@zash.se>
parents:
3992
diff
changeset
|
117 |
for _, jid in ipairs(fields.important) do |
0233da912ab6
mod_csi_muc_priorities: Fix bad argument to 'ipairs' on a missing list
Kim Alvefur <zash@zash.se>
parents:
3992
diff
changeset
|
118 |
prioritized_jids[jid] = true; |
0233da912ab6
mod_csi_muc_priorities: Fix bad argument to 'ipairs' on a missing list
Kim Alvefur <zash@zash.se>
parents:
3992
diff
changeset
|
119 |
end |
3758
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3632
diff
changeset
|
120 |
end |
3540
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
121 |
end |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
122 |
|
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
123 |
local username = jid_split(data.from); |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
124 |
local ok, err = store:set(username, prioritized_jids); |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
125 |
if ok then |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
126 |
user_sessions[username].csi_muc_priorities = prioritized_jids; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
127 |
return { status = "completed", info = "Priorities updated" }; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
128 |
else |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
129 |
return { status = "completed", error = { message = "Error saving priorities: "..err } }; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
130 |
end |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
131 |
end); |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
132 |
|
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
133 |
module:add_item("adhoc", module:require "adhoc".new("Configure group chat priorities", |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3539
diff
changeset
|
134 |
"xmpp:modules.prosody.im/mod_"..module.name, adhoc_command_handler, "local_user")); |