Software /
code /
prosody-modules
Comparison
mod_pubsub_feeds/mod_pubsub_feeds.lua @ 762:0a06cf46c263
mod_pubsub_feeds: Use the "superactor" instead of module.host/module.name
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 01 Aug 2012 16:08:15 +0200 |
parent | 718:a37e4149ccd1 |
child | 763:bcf0c9fff512 |
comparison
equal
deleted
inserted
replaced
761:48f8b312a509 | 762:0a06cf46c263 |
---|---|
69 end | 69 end |
70 end | 70 end |
71 update_config(); | 71 update_config(); |
72 module:hook_global("config-reloaded", update_config); | 72 module:hook_global("config-reloaded", update_config); |
73 | 73 |
74 local actor = module.host.."/"..module.name; | |
75 | |
76 function update_entry(item) | 74 function update_entry(item) |
77 local node = item.node; | 75 local node = item.node; |
78 module:log("debug", "parsing %d bytes of data in node %s", #item.data or 0, node) | 76 module:log("debug", "parsing %d bytes of data in node %s", #item.data or 0, node) |
79 local feed = parse_feed(item.data); | 77 local feed = parse_feed(item.data); |
80 for _, entry in ipairs(feed) do | 78 for _, entry in ipairs(feed) do |
92 id = id or item.url.."#"..dt_datetime(timestamp); -- Missing id, so make one up | 90 id = id or item.url.."#"..dt_datetime(timestamp); -- Missing id, so make one up |
93 local xitem = st.stanza("item", { id = id }):add_child(entry); | 91 local xitem = st.stanza("item", { id = id }):add_child(entry); |
94 -- TODO Put data from /feed into item/source | 92 -- TODO Put data from /feed into item/source |
95 | 93 |
96 --module:log("debug", "publishing to %s, id %s", node, id); | 94 --module:log("debug", "publishing to %s, id %s", node, id); |
97 local ok, err = modules.pubsub.service:publish(node, actor, id, xitem); | 95 local ok, err = modules.pubsub.service:publish(node, true, id, xitem); |
98 if not ok then | 96 if not ok then |
99 if err == "item-not-found" then -- try again | 97 if err == "item-not-found" then -- try again |
100 --module:log("debug", "got item-not-found, creating %s and trying again", node); | 98 --module:log("debug", "got item-not-found, creating %s and trying again", node); |
101 local ok, err = modules.pubsub.service:create(node, actor); | 99 local ok, err = modules.pubsub.service:create(node, true); |
102 if not ok then | 100 if not ok then |
103 module:log("error", "could not create node %s: %s", node, err); | 101 module:log("error", "could not create node %s: %s", node, err); |
104 return; | 102 return; |
105 end | 103 end |
106 local ok, err = modules.pubsub.service:publish(node, actor, id, xitem); | 104 local ok, err = modules.pubsub.service:publish(node, true, id, xitem); |
107 if not ok then | 105 if not ok then |
108 module:log("error", "could not create or publish node %s: %s", node, err); | 106 module:log("error", "could not create or publish node %s: %s", node, err); |
109 return | 107 return |
110 end | 108 end |
111 else | 109 else |