# HG changeset patch # User Kim Alvefur # Date 1403800141 -7200 # Node ID 480c6f0576b199d0a320a58d7ac6d2269049d31f # Parent 7b53cfc6ba8dc6d1e10b6f1337c8a4927fc58add mod_pubsub_feeds: Update to 0.4 version of PubSubHubbub diff -r 7b53cfc6ba8d -r 480c6f0576b1 mod_pubsub_feeds/mod_pubsub_feeds.lua --- a/mod_pubsub_feeds/mod_pubsub_feeds.lua Thu Jun 26 18:25:18 2014 +0200 +++ b/mod_pubsub_feeds/mod_pubsub_feeds.lua Thu Jun 26 18:29:01 2014 +0200 @@ -13,7 +13,7 @@ -- feed_pull_interval = 20 -- minutes -- -- Reference --- http://pubsubhubbub.googlecode.com/svn/trunk/pubsubhubbub-core-0.3.html +-- http://pubsubhubbub.googlecode.com/svn/trunk/pubsubhubbub-core-0.4.html local pubsub = module:depends"pubsub"; @@ -143,8 +143,6 @@ function refresh_feeds(now) --module:log("debug", "Refreshing feeds"); for node, item in pairs(feed_list) do - --FIXME Don't fetch feeds which have a subscription - -- Otoho, what if the subscription expires or breaks? if item.subscription ~= "subscribe" and item.last_update + refresh_interval < now then --module:log("debug", "checking %s", item.node); fetch(item, update_entry); @@ -159,14 +157,12 @@ function subscribe(feed, want) want = want or "subscribe"; - feed.token = uuid(); feed.secret = feed.secret or uuid(); local body = formencode{ ["hub.callback"] = format_url(feed.node); ["hub.mode"] = want; ["hub.topic"] = feed.url; - ["hub.verify"] = "async"; - ["hub.verify_token"] = feed.token; + ["hub.verify"] = "async"; -- COMPAT this is REQUIRED in the 0.3 draft but removed in 0.4 ["hub.secret"] = feed.secret; --["hub.lease_seconds"] = ""; }; @@ -216,11 +212,10 @@ -- it would probably invalidate the subscription -- when/if the hub asks if it should be renewed end - if query["hub.verify_token"] ~= feed.token then - module:log("debug", "Invalid verify_token: %s", tostring(query["hub.verify_token"])) - return 401; + local lease_seconds = tonumber(query["hub.lease_seconds"]); + if lease_seconds then + feed.lease_expires = time() + lease_seconds - refresh_interval * 2; end - module:log("debug", "Confirming %s request to %s", feed.subscription, feed.url) return query["hub.challenge"]; end return 400;