# HG changeset patch # User Stephen Paul Weber # Date 1729089002 18000 # Node ID 9db6bad7cc362f57afb2c56baad2f5dbe610a37c # Parent fd1927e517912420296d872d16d33cbb2a0c52ec# Parent d3812826c1cdcb02a1ebc7b7e3c9c0d112928ab3 merge diff -r fd1927e51791 -r 9db6bad7cc36 mod_csi_muc_priorities/README.markdown --- a/mod_csi_muc_priorities/README.markdown Tue Oct 08 10:24:39 2024 -0500 +++ b/mod_csi_muc_priorities/README.markdown Wed Oct 16 09:30:02 2024 -0500 @@ -1,7 +1,7 @@ # Introduction This module lets users specify which of the group chats they are in are -less important. This influences when +more or less important. This influences when [mod_csi_simple][doc:modules:mod_csi_simple] decides to send stanzas vs waiting until there is more to send. Users in many large public channels might benefit from this. @@ -12,16 +12,17 @@ chat priorities* that should appear in the menus of compatible clients. The command presents a form that accepts a list of XMPP addresses. -Currently there is a single priority, *Lower priority*, which is -suitable for e.g. noisy public channels. mod_csi_simple considers -groupchat messages important by default on the assumptions that smaller -and more important private chats are more common among most users. +Currently you can specify channels as lower priority (which is suitable +for e.g. noisy public channels) or higher priority (which is suitable +for e.g. small private channels where immediate message delivery is +desired). You can also specify whether mucs default to lower priority +or not. -A message of type groupchat from an address in this list will not be -considered important enough to send it to an inactive client, unless it -is from the current user or mentions of their nickname. **Note** that -mention support require the separate module [mod_track_muc_joins] -to also be loaded. +A message of type groupchat from an address in the low priority list will +not be considered important enough to send it to an inactive client, +unless it is from the current user or mentions of their nickname. +**Note** that mention support require the separate module +[mod_track_muc_joins] to also be loaded. ``` {.lua} modules_enabled = { diff -r fd1927e51791 -r 9db6bad7cc36 mod_csi_muc_priorities/mod_csi_muc_priorities.lua --- a/mod_csi_muc_priorities/mod_csi_muc_priorities.lua Tue Oct 08 10:24:39 2024 -0500 +++ b/mod_csi_muc_priorities/mod_csi_muc_priorities.lua Wed Oct 16 09:30:02 2024 -0500 @@ -12,14 +12,6 @@ local username = session.username; local priorities = user_sessions[username].csi_muc_priorities; - if priorities then - local priority = priorities[room_jid]; - if priority ~= nil then - event.reason = "muc priority"; - return priority; - end - end - -- Look for mention local rooms = session.rooms_joined; if rooms then @@ -33,12 +25,33 @@ end -- Your own messages if stanza.attr.from == (room_jid .. "/" .. room_nick) then - event.reason = "muc own message"; + event.reason = "muc own message"; return true; end end end + -- No mentions found, check other logic: + -- deflaultlow=f or nil defaultlow=t + -- in high prio nil nil + -- in low prio false false + -- not in either nil false + -- + -- true means: important (always send immediately) + -- nil means: normal (respect other mods for stuff like grace period/reactions/etc) + -- false means: unimportant (delay sending) + if priorities then + local priority = priorities[room_jid]; + if priority == false then -- low priority + event.reason = "muc priority"; + return false; + end + if priorities[false] and priorities[false]["defaultlow"] and not priority then -- defaultlow is false or nil or not high priority + event.reason = "muc user default low"; + return false; + end + end + -- Standard importance and no mention, leave to other modules to decide for now return nil; end @@ -74,6 +87,12 @@ label = "Lower priority"; desc = "E.g. large noisy public channels"; }; + { + type = "boolean"; + name = "defaultlow"; + label = "Default to lower priority"; + desc = "Mark all channels lower priority as default"; + }; } local store = module:open_store(); @@ -87,20 +106,29 @@ local prioritized_jids = user_sessions[username].csi_muc_priorities or store:get(username); local important = {}; local unimportant = {}; + local defaultlow = false; -- Default to high priority if prioritized_jids then for jid, priority in pairs(prioritized_jids) do - if priority then - table.insert(important, jid); - else - table.insert(unimportant, jid); + if jid then + if priority then + table.insert(important, jid); + else + table.insert(unimportant, jid); + end end end table.sort(important); table.sort(unimportant); + + if prioritized_jids[false] then + defaultlow = prioritized_jids[false]["defaultlow"]; + end end + return { important = important; unimportant = unimportant; + defaultlow = defaultlow }; end, function(fields, form_err, data) if form_err then @@ -118,6 +146,9 @@ end end + local misc_data = {defaultlow = fields.defaultlow}; + prioritized_jids[false] = misc_data; + local username = jid_split(data.from); local ok, err = store:set(username, prioritized_jids); if ok then diff -r fd1927e51791 -r 9db6bad7cc36 mod_http_index/README.markdown --- a/mod_http_index/README.markdown Tue Oct 08 10:24:39 2024 -0500 +++ b/mod_http_index/README.markdown Wed Oct 16 09:30:02 2024 -0500 @@ -1,3 +1,13 @@ +--- +summary: Generate an index of local HTTP services +labels: +- Stage-Beta +rockspec: + build: + copy_directories: + - html +--- + Introduction ============ diff -r fd1927e51791 -r 9db6bad7cc36 mod_http_index/html/http_index.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_http_index/html/http_index.html Wed Oct 16 09:30:02 2024 -0500 @@ -0,0 +1,54 @@ + + + + + + + +{title} + + + +
+

Prosody IM

+

HTTP Services

+
+
+
+ +
+
+ + + diff -r fd1927e51791 -r 9db6bad7cc36 mod_http_index/http_index.html --- a/mod_http_index/http_index.html Tue Oct 08 10:24:39 2024 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ - - - - - - - -{title} - - - -
-

Prosody IM

-

HTTP Services

-
-
-
- -
-
- - - diff -r fd1927e51791 -r 9db6bad7cc36 mod_http_index/mod_http_index.lua --- a/mod_http_index/mod_http_index.lua Tue Oct 08 10:24:39 2024 -0500 +++ b/mod_http_index/mod_http_index.lua Wed Oct 16 09:30:02 2024 -0500 @@ -7,8 +7,8 @@ local base_template; do - local template_file = module:get_option_string(module.name .. "_template", module.name .. ".html"); - template_file = assert(module:load_resource(template_file)); + local template_file = module:get_option_path(module.name .. "_template", "html/" .. module.name .. ".html"); + template_file = assert(io.open(template_file)); base_template = template_file:read("*a"); template_file:close(); end