Comparison

plugins/mod_pubsub/mod_pubsub.lua @ 9039:0124e5ec1556

mod_pubsub: Move include_body option into subscription options
author Kim Alvefur <zash@zash.se>
date Sat, 14 Jul 2018 19:34:10 +0200
parent 8980:4d2738b99b07
child 9043:9d77b6588bdf
comparison
equal deleted inserted replaced
9038:fd053fcaf9bc 9039:0124e5ec1556
49 49
50 if item then 50 if item then
51 message:add_child(item); 51 message:add_child(item);
52 end 52 end
53 53
54 local summary;
54 -- Compose a sensible textual representation of at least Atom payloads 55 -- Compose a sensible textual representation of at least Atom payloads
55 if node_obj and item and node_obj.config.include_body and item.tags[1] then 56 if item and item.tags[1] then
56 local payload = item.tags[1]; 57 local payload = item.tags[1];
57 if payload.attr.xmlns == "http://www.w3.org/2005/Atom" then 58 if payload.attr.xmlns == "http://www.w3.org/2005/Atom" then
58 message:reset(); 59 message:reset();
59 local title = payload:get_child_text("title"); 60 local title = payload:get_child_text("title");
60 local summary = payload:get_child_text("summary"); 61 summary = payload:get_child_text("summary");
61 if not summary and title then 62 if not summary and title then
62 local author = payload:find("author/name#"); 63 local author = payload:find("author/name#");
63 summary = title; 64 summary = title;
64 if author then 65 if author then
65 summary = author .. " posted " .. summary; 66 summary = author .. " posted " .. summary;
66 end 67 end
67 end 68 end
68 if summary then
69 message:body(summary);
70 end
71 end 69 end
72 end 70 end
73 71
74 module:broadcast(jids, message, pairs); 72 for jid, options in pairs(jids) do
73 local new_stanza = st.clone(message);
74 if type(options) == "table" and options["pubsub#include_body"] then
75 new_stanza:body(summary);
76 end
77 new_stanza.attr.to = jid;
78 module:send(new_stanza);
79 end
75 end 80 end
76 81
77 function is_item_stanza(item) 82 function is_item_stanza(item)
78 return st.is_stanza(item) and item.attr.xmlns == xmlns_pubsub and item.name == "item"; 83 return st.is_stanza(item) and item.attr.xmlns == xmlns_pubsub and item.name == "item";
79 end 84 end