UNPKG

social-butterfly

Version:

Incorporate federated social network protocols easily. Used with Hello, world federated blog.

47 lines (40 loc) 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = setupPush; var _feeds = require("./util/feeds"); var _pubsubhubbub = _interopRequireDefault(require("pubsubhubbub")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function setupPush(options) { const webSubSubscriber = _pubsubhubbub.default.createServer({ callbackUrl: '/fakeCallbackUrl', // This is overridden when we call subscribe/unsubscribe. We need the host. secret: options.constants.pushSecret }); // TODO(mime): verify this is working correctly and remove console.log. webSubSubscriber.on('feed', async ({ topic, hub, callback, feed, headers }) => { console.log('WebSub feed: ', topic, hub, callback, feed, headers); const searchParams = new URL(callback).searchParams; const remoteUser = await options.getRemoteUser(searchParams.get('localUsername'), searchParams.get('remoteProfileUrl')); await (0, _feeds.parseFeedAndInsertIntoDb)(options, remoteUser, feed); }); webSubSubscriber.on('error', err => { console.log('WebSub error', err); }); webSubSubscriber.on('subscribe', data => { console.log('WebSub subscribed: ', data); }); webSubSubscriber.on('unsubscribe', data => { console.log('WebSub unsubscribed: ', data); }); webSubSubscriber.on('denied', data => { console.log('WebSub denied: ', data); }); return webSubSubscriber; }