Mercurial > prosody-modules
comparison mod_mam/mod_mam.lua @ 1187:d677d1807bb0
mod_mam: Stamp outgoing messages with <archived> as well, but remove it after they should have passed through mod_carbons
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Thu, 05 Sep 2013 15:48:37 +0200 |
| parents | a172e7389cf6 |
| children | 853a382c9bd6 |
comparison
equal
deleted
inserted
replaced
| 1186:a172e7389cf6 | 1187:d677d1807bb0 |
|---|---|
| 200 if shall_store(store_user, with) then | 200 if shall_store(store_user, with) then |
| 201 module:log("debug", "Archiving stanza: %s", stanza:top_tag()); | 201 module:log("debug", "Archiving stanza: %s", stanza:top_tag()); |
| 202 | 202 |
| 203 -- And stash it | 203 -- And stash it |
| 204 local ok, id = archive:append(store_user, time_now(), with, stanza); | 204 local ok, id = archive:append(store_user, time_now(), with, stanza); |
| 205 if ok and not c2s then | 205 if ok then |
| 206 stanza:tag("archived", { xmlns = xmlns_mam, by = store_user.."@"..host, id = id }):up(); | 206 stanza:tag("archived", { xmlns = xmlns_mam, by = store_user.."@"..host, id = id }):up(); |
| 207 end | 207 end |
| 208 else | 208 else |
| 209 module:log("debug", "Not archiving stanza: %s (prefs)", stanza:top_tag()); | 209 module:log("debug", "Not archiving stanza: %s (prefs)", stanza:top_tag()); |
| 210 end | 210 end |
| 219 module:hook("pre-message/full", c2s_message_handler, 2); | 219 module:hook("pre-message/full", c2s_message_handler, 2); |
| 220 -- Stanszas to local clients | 220 -- Stanszas to local clients |
| 221 module:hook("message/bare", message_handler, 2); | 221 module:hook("message/bare", message_handler, 2); |
| 222 module:hook("message/full", message_handler, 2); | 222 module:hook("message/full", message_handler, 2); |
| 223 | 223 |
| 224 local function post_carbons_handler(event) | |
| 225 event.stanza:maptags(function(tag) | |
| 226 if not ( tag.attr.xmlns == xmlns_mam and tag.name == "archived" ) then | |
| 227 return tag; | |
| 228 end | |
| 229 end); | |
| 230 end | |
| 231 | |
| 232 module:hook("pre-message/bare", post_carbons_handler, 0.9); | |
| 233 module:hook("pre-message/full", post_carbons_handler, 0.9); | |
| 234 | |
| 224 module:add_feature(xmlns_mam); | 235 module:add_feature(xmlns_mam); |
| 225 | 236 |
