Mercurial > prosody-modules
comparison mod_archive/mod_archive.lua @ 172:ac826882a8cf
mod_archive: The element auto MAY include a 'scope' attribute; Added message hook.
| author | shinysky<shinysky1986(AT)gmail.com> |
|---|---|
| date | Sun, 13 Jun 2010 23:47:50 +0800 |
| parents | fd8d76daad97 |
| children | 62f47a93b5b7 |
comparison
equal
deleted
inserted
replaced
| 171:d15c7d86db11 | 172:ac826882a8cf |
|---|---|
| 131 push:add_child(elem); | 131 push:add_child(elem); |
| 132 end | 132 end |
| 133 push = push:up(); | 133 push = push:up(); |
| 134 for _, res in pairs(user and user.sessions or NULL) do -- broadcast to all resources | 134 for _, res in pairs(user and user.sessions or NULL) do -- broadcast to all resources |
| 135 if res.presence then -- to resource | 135 if res.presence then -- to resource |
| 136 push.attr.to = res.full_jid; -- TODO how to gen the message that new modes're set? | 136 push.attr.to = res.full_jid; |
| 137 res.send(push); | 137 res.send(push); |
| 138 end | 138 end |
| 139 end | 139 end |
| 140 end | 140 end |
| 141 return true; | 141 return true; |
| 202 local data = load_prefs(node, host); | 202 local data = load_prefs(node, host); |
| 203 if not data then | 203 if not data then |
| 204 return false; | 204 return false; |
| 205 end | 205 end |
| 206 local setting = data:child_with_name(elem.name) | 206 local setting = data:child_with_name(elem.name) |
| 207 setting.attr["save"] = elem.attr["save"]; | 207 for k, v in pairs(elem.attr) do |
| 208 setting.attr[k] = v; | |
| 209 end | |
| 208 store_prefs(data, node, host); | 210 store_prefs(data, node, host); |
| 209 origin.send(st.reply(stanza)); | 211 origin.send(st.reply(stanza)); |
| 210 return true; | 212 return true; |
| 211 end | 213 end |
| 212 | 214 |
| 236 end | 238 end |
| 237 | 239 |
| 238 local function save_handler(event) | 240 local function save_handler(event) |
| 239 module:log("debug", "-- stanza:\n%s", tostring(event.stanza)); | 241 module:log("debug", "-- stanza:\n%s", tostring(event.stanza)); |
| 240 return true; | 242 return true; |
| 243 end | |
| 244 | |
| 245 local function msg_handler(data) | |
| 246 module:log("debug", "-- Enter msg_handler()"); | |
| 247 local origin, stanza = data.origin, data.stanza; | |
| 248 module:log("debug", "-- msg:\n%s", tostring(stanza)); | |
| 249 return nil; | |
| 241 end | 250 end |
| 242 | 251 |
| 243 module:hook("iq/self/urn:xmpp:archive:pref", preferences_handler); | 252 module:hook("iq/self/urn:xmpp:archive:pref", preferences_handler); |
| 244 module:hook("iq/self/urn:xmpp:archive:itemremove", itemremove_handler); | 253 module:hook("iq/self/urn:xmpp:archive:itemremove", itemremove_handler); |
| 245 module:hook("iq/self/urn:xmpp:archive:sessionremove", sessionremove_handler); | 254 module:hook("iq/self/urn:xmpp:archive:sessionremove", sessionremove_handler); |
| 249 module:hook("iq/self/urn:xmpp:archive:modified", modified_handler); | 258 module:hook("iq/self/urn:xmpp:archive:modified", modified_handler); |
| 250 module:hook("iq/self/urn:xmpp:archive:remove", remove_handler); | 259 module:hook("iq/self/urn:xmpp:archive:remove", remove_handler); |
| 251 module:hook("iq/self/urn:xmpp:archive:retrieve", retrieve_handler); | 260 module:hook("iq/self/urn:xmpp:archive:retrieve", retrieve_handler); |
| 252 module:hook("iq/self/urn:xmpp:archive:save", save_handler); | 261 module:hook("iq/self/urn:xmpp:archive:save", save_handler); |
| 253 | 262 |
| 263 module:hook("message/full", msg_handler, 10); | |
| 264 module:hook("message/bare", msg_handler, 10); | |
| 265 |
