Software / code / prosody
Comparison
plugins/mod_pubsub.lua @ 3641:3603aeb325de
mod_pubsub, util.pubsub: Support for fetching items
| author | Florian Zeitz <florob@babelmonkeys.de> |
|---|---|
| date | Thu, 25 Nov 2010 21:47:12 +0100 |
| parent | 3622:418354197a02 |
| child | 3672:b24db47995ac |
comparison
equal
deleted
inserted
replaced
| 3640:4bc88bb748d1 | 3641:3603aeb325de |
|---|---|
| 33 local reply = st.error_reply(stanza, unpack(e, 1, 3)); | 33 local reply = st.error_reply(stanza, unpack(e, 1, 3)); |
| 34 if e[4] then | 34 if e[4] then |
| 35 reply:tag(e[4], { xmlns = xmlns_pubsub_errors }):up(); | 35 reply:tag(e[4], { xmlns = xmlns_pubsub_errors }):up(); |
| 36 end | 36 end |
| 37 return reply; | 37 return reply; |
| 38 end | |
| 39 | |
| 40 function handlers.get_items(origin, stanza, items) | |
| 41 local node = items.attr.node; | |
| 42 local item = items:get_child("item"); | |
| 43 local id = item and item.attr.id; | |
| 44 local data = st.stanza("items", { node = node }); | |
| 45 for _, entry in pairs(service:get(node, stanza.attr.from, id)) do | |
| 46 data:add_child(entry); | |
| 47 end | |
| 48 if data then | |
| 49 reply = st.reply(stanza) | |
| 50 :tag("pubsub", { xmlns = xmlns_pubsub }) | |
| 51 :add_child(data); | |
| 52 else | |
| 53 reply = st.error_reply(stanza, "cancel", "item-not-found", "Item could not be found in this node"); | |
| 54 end | |
| 55 return origin.send(reply); | |
| 38 end | 56 end |
| 39 | 57 |
| 40 function handlers.set_subscribe(origin, stanza, subscribe) | 58 function handlers.set_subscribe(origin, stanza, subscribe) |
| 41 local node, jid = subscribe.attr.node, subscribe.attr.jid; | 59 local node, jid = subscribe.attr.node, subscribe.attr.jid; |
| 42 if jid_bare(jid) ~= jid_bare(stanza.attr.from) then | 60 if jid_bare(jid) ~= jid_bare(stanza.attr.from) then |