Merge pull request #23 from andris9/master

Added support for PubSubHubbub hub
This commit is contained in:
Dylan Greene
2014-01-18 08:04:00 -08:00
3 changed files with 31 additions and 0 deletions

View File

@@ -18,6 +18,7 @@ function RSS (options, items) {
this.author = options.author; this.author = options.author;
this.categories = options.categories; this.categories = options.categories;
this.pubDate = options.pubDate; this.pubDate = options.pubDate;
this.hub = options.hub;
this.docs = options.docs; this.docs = options.docs;
this.copyright = options.copyright; this.copyright = options.copyright;
this.language = options.language; this.language = options.language;
@@ -82,6 +83,7 @@ function generateXML (data){
ifTruePush(data.webMaster, channel, { 'webMaster': { _cdata: data.webMaster } }); ifTruePush(data.webMaster, channel, { 'webMaster': { _cdata: data.webMaster } });
ifTruePush(data.docs, channel, { 'docs': data.docs }); ifTruePush(data.docs, channel, { 'docs': data.docs });
ifTruePush(data.ttl, channel, { 'ttl': data.ttl }); ifTruePush(data.ttl, channel, { 'ttl': data.ttl });
ifTruePush(data.hub, channel, { 'atom:link': { _attr: { href: data.hub, rel: 'hub' } } });
if (data.categories) { if (data.categories) {
data.categories.forEach(function(category) { data.categories.forEach(function(category) {

View File

@@ -35,6 +35,7 @@ var feed = new RSS(feedOptions);
* `categories` _optional_ **array of strings** One or more categories this feed belongs to. * `categories` _optional_ **array of strings** One or more categories this feed belongs to.
* `pubDate` _optional_ **Date object or date string** The publication date for content in the feed * `pubDate` _optional_ **Date object or date string** The publication date for content in the feed
* `ttl` _optional_ **integer** Number of minutes feed can be cached before refreshing from source. * `ttl` _optional_ **integer** Number of minutes feed can be cached before refreshing from source.
* `hub` _optional_ **PubSubHubbub hub url** Where is the PubSubHubb hub located.
### Add items to a feed ### Add items to a feed

View File

@@ -216,5 +216,33 @@ describe('rss module', function(done) {
expect(result).to.equal(expectedResult); expect(result).to.equal(expectedResult);
done(); done();
}); });
it('should work with PubSubHubbub hub', function(done) {
var feed = new RSS({
title: 'title',
description: 'description',
feed_url: 'http://example.com/rss.xml',
site_url: 'http://example.com',
hub: 'http://example.com/hub'
});
var expectedResult = '<?xml version="1.0" encoding="UTF-8"?>\n'+
'<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">'+
'<channel>'+
'<title><![CDATA[title]]></title>'+
'<description><![CDATA[description]]></description>'+
'<link>http://example.com</link>'+
'<generator>RSS for Node</generator>'+
'<lastBuildDate>' + new Date().toUTCString() +'</lastBuildDate>'+
'<atom:link href="http://example.com/rss.xml" rel="self" type="application/rss+xml"/>'+
'<atom:link href="http://example.com/hub" rel="hub"/>'+
'</channel>'+
'</rss>';
var result = feed.xml();
expect(result).to.equal(expectedResult);
done();
});
}); });