comparison mod_pubsub_feeds/mod_pubsub_feeds.lua @ 5572:fd1c535dcb92

mod_pubsub_feeds: Create pubsub nodes on module load instead of later Should produce faster feedback of things being wrong.
author Kim Alvefur <zash@zash.se>
date Sun, 25 Jun 2023 16:41:50 +0200
parents ca3c2d11823c
children ed177fa5b54c
comparison
equal deleted inserted replaced
5571:ca3c2d11823c 5572:fd1c535dcb92
59 if type(node) == "number" then 59 if type(node) == "number" then
60 node = url; 60 node = url;
61 end 61 end
62 new_feed_list[node] = true; 62 new_feed_list[node] = true;
63 if not feed_list[node] then 63 if not feed_list[node] then
64 feed_list[node] = { url = url; node = node; last_update = 0 }; 64 local ok, err = pubsub.service:create(node, true);
65 if ok then
66 feed_list[node] = { url = url; node = node; last_update = 0 };
67 else
68 module:log("error", "Could not create node %s: %s", node, err);
69 end
65 else 70 else
66 feed_list[node].url = url; 71 feed_list[node].url = url;
67 end 72 end
68 if not nodes[node] then 73 if not nodes[node] then
69 feed_list[node].last_update = 0; 74 feed_list[node].last_update = 0;
89 for entry in feed:childtags("entry") do 94 for entry in feed:childtags("entry") do
90 table.insert(entries, entry); 95 table.insert(entries, entry);
91 end 96 end
92 local ok, items = pubsub.service:get_items(node, true); 97 local ok, items = pubsub.service:get_items(node, true);
93 if not ok then 98 if not ok then
94 local ok, err = pubsub.service:create(node, true); 99 module:log("error", "PubSub node %q missing: %s", node, items);
95 if not ok then 100 return
96 module:log("error", "Could not create node %s: %s", node, err);
97 return;
98 end
99 items = {};
100 end 101 end
101 102
102 local start_from = #entries; 103 local start_from = #entries;
103 for i, entry in ipairs(entries) do 104 for i, entry in ipairs(entries) do
104 local id = entry:get_child_text("id"); 105 local id = entry:get_child_text("id");