Software /
code /
prosody-modules
Annotate
mod_csi_muc_priorities/mod_csi_muc_priorities.lua @ 5173:460f78654864
mod_muc_rtbl: also filter messages
This was a bit tricky because we don't want to run the JIDs
through SHA256 on each message. Took a while to come up with this
simple plan of just caching the SHA256 of the JIDs on the
occupants.
This will leave some dirt in the occupants after unloading the
module, but that should be ok; once they cycle the room, the
hashes will be gone.
This is direly needed, otherwise, there is a tight race between
the moderation activities and the actors joining the room.
author | Jonas Schäfer <jonas@wielicki.name> |
---|---|
date | Tue, 21 Feb 2023 21:37:27 +0100 |
parent | 4014:1b68954a743a |
rev | line source |
---|---|
3536
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
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:
3535
diff
changeset
|
2 |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
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:
3535
diff
changeset
|
4 local user_sessions = prosody.hosts[module.host].sessions; |
3532
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 |
3534
700340b57851
mod_csi_muc_priorities: Break out room jid into a variable
Kim Alvefur <zash@zash.se>
parents:
3533
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:
3533
diff
changeset
|
11 |
3536
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
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:
3535
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:
3535
diff
changeset
|
14 |
3754
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3628
diff
changeset
|
15 if priorities then |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3628
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:
3628
diff
changeset
|
17 if priority ~= nil then |
4014
1b68954a743a
mod_csi_muc_priorities: Report reason for importance decision
Kim Alvefur <zash@zash.se>
parents:
3992
diff
changeset
|
18 event.reason = "muc priority"; |
3754
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3628
diff
changeset
|
19 return priority; |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3628
diff
changeset
|
20 end |
3536
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
diff
changeset
|
21 end |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
diff
changeset
|
22 |
3535
bcb0eb9121a9
mod_csi_muc_priorities: Add a comment
Kim Alvefur <zash@zash.se>
parents:
3534
diff
changeset
|
23 -- Look for mention |
3532
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; |
3538
946902fa4088
mod_csi_muc_priorities: Undo early return to make following commit clearer
Kim Alvefur <zash@zash.se>
parents:
3537
diff
changeset
|
25 if rooms then |
3754
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3628
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:
3628
diff
changeset
|
27 if not body then return end |
3538
946902fa4088
mod_csi_muc_priorities: Undo early return to make following commit clearer
Kim Alvefur <zash@zash.se>
parents:
3537
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:
3537
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:
3537
diff
changeset
|
30 if body:find(room_nick, 1, true) then |
4014
1b68954a743a
mod_csi_muc_priorities: Report reason for importance decision
Kim Alvefur <zash@zash.se>
parents:
3992
diff
changeset
|
31 event.reason = "muc mention"; |
3538
946902fa4088
mod_csi_muc_priorities: Undo early return to make following commit clearer
Kim Alvefur <zash@zash.se>
parents:
3537
diff
changeset
|
32 return true; |
946902fa4088
mod_csi_muc_priorities: Undo early return to make following commit clearer
Kim Alvefur <zash@zash.se>
parents:
3537
diff
changeset
|
33 end |
3754
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3628
diff
changeset
|
34 -- Your own messages |
3539
6d51f44bc725
mod_csi_muc_priorities: Consider own MUC messages as important
Kim Alvefur <zash@zash.se>
parents:
3538
diff
changeset
|
35 if stanza.attr.from == (room_jid .. "/" .. room_nick) then |
4014
1b68954a743a
mod_csi_muc_priorities: Report reason for importance decision
Kim Alvefur <zash@zash.se>
parents:
3992
diff
changeset
|
36 event.reason = "muc own message"; |
3539
6d51f44bc725
mod_csi_muc_priorities: Consider own MUC messages as important
Kim Alvefur <zash@zash.se>
parents:
3538
diff
changeset
|
37 return true; |
6d51f44bc725
mod_csi_muc_priorities: Consider own MUC messages as important
Kim Alvefur <zash@zash.se>
parents:
3538
diff
changeset
|
38 end |
3538
946902fa4088
mod_csi_muc_priorities: Undo early return to make following commit clearer
Kim Alvefur <zash@zash.se>
parents:
3537
diff
changeset
|
39 end |
946902fa4088
mod_csi_muc_priorities: Undo early return to make following commit clearer
Kim Alvefur <zash@zash.se>
parents:
3537
diff
changeset
|
40 end |
3628
2444fb3b05b7
mod_csi_muc_priorities: Signal unimportance (thanks tmolitor)
Kim Alvefur <zash@zash.se>
parents:
3601
diff
changeset
|
41 |
3754
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3628
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:
3628
diff
changeset
|
43 return nil; |
3532
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 |
3536
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
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:
3535
diff
changeset
|
49 |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
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:
3535
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:
3535
diff
changeset
|
52 local instructions = [[ |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
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:
3535
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:
3535
diff
changeset
|
55 ]] |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
diff
changeset
|
56 |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
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:
3535
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:
3535
diff
changeset
|
59 instructions = instructions; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
diff
changeset
|
60 { |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
diff
changeset
|
61 type = "hidden"; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
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:
3535
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:
3535
diff
changeset
|
64 }; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
diff
changeset
|
65 { |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
diff
changeset
|
66 type = "jid-multi"; |
3754
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3628
diff
changeset
|
67 name = "important"; |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3628
diff
changeset
|
68 label = "Higher priority"; |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3628
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:
3628
diff
changeset
|
70 }; |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3628
diff
changeset
|
71 { |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3628
diff
changeset
|
72 type = "jid-multi"; |
3536
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
diff
changeset
|
73 name = "unimportant"; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
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:
3535
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:
3535
diff
changeset
|
76 }; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
diff
changeset
|
77 } |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
diff
changeset
|
78 |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
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:
3535
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:
3535
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:
3535
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:
3535
diff
changeset
|
83 end); |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
diff
changeset
|
84 |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
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:
3535
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:
3535
diff
changeset
|
87 local prioritized_jids = user_sessions[username].csi_muc_priorities or store:get(username); |
3754
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3628
diff
changeset
|
88 local important = {}; |
3536
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
diff
changeset
|
89 local unimportant = {}; |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
diff
changeset
|
90 if prioritized_jids then |
3754
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3628
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:
3628
diff
changeset
|
92 if priority then |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3628
diff
changeset
|
93 table.insert(important, jid); |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3628
diff
changeset
|
94 else |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3628
diff
changeset
|
95 table.insert(unimportant, jid); |
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3628
diff
changeset
|
96 end |
3536
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
diff
changeset
|
97 end |
3754
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3628
diff
changeset
|
98 table.sort(important); |
3537
7d6fb9570395
mod_csi_muc_priorities: Sort list of JIDs
Kim Alvefur <zash@zash.se>
parents:
3536
diff
changeset
|
99 table.sort(unimportant); |
3536
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
diff
changeset
|
100 end |
3754
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3628
diff
changeset
|
101 return { |
3988
569f754bd126
mod_csi_muc_priorities: Adjust indentation
Kim Alvefur <zash@zash.se>
parents:
3754
diff
changeset
|
102 important = important; |
569f754bd126
mod_csi_muc_priorities: Adjust indentation
Kim Alvefur <zash@zash.se>
parents:
3754
diff
changeset
|
103 unimportant = unimportant; |
569f754bd126
mod_csi_muc_priorities: Adjust indentation
Kim Alvefur <zash@zash.se>
parents:
3754
diff
changeset
|
104 }; |
3536
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
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:
3535
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:
3535
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:
3535
diff
changeset
|
108 end |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
diff
changeset
|
109 local prioritized_jids = {}; |
3601
013ef96a6d4d
mod_csi_muc_priorities: Fix traceback due to empty field
Kim Alvefur <zash@zash.se>
parents:
3540
diff
changeset
|
110 if fields.unimportant then |
3992
0233da912ab6
mod_csi_muc_priorities: Fix bad argument to 'ipairs' on a missing list
Kim Alvefur <zash@zash.se>
parents:
3988
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:
3988
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:
3988
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:
3988
diff
changeset
|
114 end |
3601
013ef96a6d4d
mod_csi_muc_priorities: Fix traceback due to empty field
Kim Alvefur <zash@zash.se>
parents:
3540
diff
changeset
|
115 end |
3992
0233da912ab6
mod_csi_muc_priorities: Fix bad argument to 'ipairs' on a missing list
Kim Alvefur <zash@zash.se>
parents:
3988
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:
3988
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:
3988
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:
3988
diff
changeset
|
119 end |
3754
d77a61d81555
mod_csi_muc_priorities: Add a high priority list (BC)
Kim Alvefur <zash@zash.se>
parents:
3628
diff
changeset
|
120 end |
3536
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
diff
changeset
|
121 end |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
diff
changeset
|
122 |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
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:
3535
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:
3535
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:
3535
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:
3535
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:
3535
diff
changeset
|
128 else |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
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:
3535
diff
changeset
|
130 end |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
diff
changeset
|
131 end); |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
diff
changeset
|
132 |
eed657091329
mod_csi_muc_priorities: Allow specifying which MUC JIDs are less important
Kim Alvefur <zash@zash.se>
parents:
3535
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:
3535
diff
changeset
|
134 "xmpp:modules.prosody.im/mod_"..module.name, adhoc_command_handler, "local_user")); |