mirror of
https://github.com/LightAir/turbo-rss.git
synced 2026-02-04 03:56:19 +00:00
Merge branch 'fredzilla-master'
Conflicts: readme.md
This commit is contained in:
32
lib/rss.js
Normal file → Executable file
32
lib/rss.js
Normal file → Executable file
@@ -24,6 +24,8 @@ function RSS (options, items) {
|
||||
this.managingEditor = options.managingEditor;
|
||||
this.webMaster = options.webMaster;
|
||||
this.ttl = options.ttl;
|
||||
//option to return feed as GeoRSS
|
||||
this.georss = options.georss || false;
|
||||
this.items = items || [];
|
||||
|
||||
this.item = function (options) {
|
||||
@@ -36,6 +38,8 @@ function RSS (options, items) {
|
||||
categories: options.categories || [],
|
||||
author: options.author,
|
||||
date: options.date,
|
||||
lat: options.lat,
|
||||
lng: options.lng,
|
||||
enclosure: options.enclosure || false
|
||||
};
|
||||
|
||||
@@ -101,6 +105,12 @@ function generateXML (data){
|
||||
ifTruePush(item.author || data.author, item_values, { 'dc:creator': { _cdata: item.author || data.author } });
|
||||
ifTruePush(item.date, item_values, { pubDate: new Date(item.date).toGMTString() });
|
||||
|
||||
//Add lat and long if GeoRSS is true.
|
||||
if(data.georss){
|
||||
ifTruePush(item.lat, item_values, {'geo:lat': item.lat});
|
||||
ifTruePush(item.lng, item_values, {'geo:long': item.lng});
|
||||
}
|
||||
|
||||
if( item.enclosure && item.enclosure.url ) {
|
||||
if( item.enclosure.file ) {
|
||||
item_values.push({
|
||||
@@ -129,14 +139,22 @@ function generateXML (data){
|
||||
|
||||
});
|
||||
|
||||
//set up the attributes for the RSS feed.
|
||||
var _attr = {
|
||||
'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'
|
||||
};
|
||||
|
||||
//only add namespace if GeoRSS is true
|
||||
if(data.georss){
|
||||
_attr['xmlns:geo'] = 'http://www.w3.org/2003/01/geo/wgs84_pos#';
|
||||
}
|
||||
|
||||
return { rss: [
|
||||
{ _attr: {
|
||||
'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: channel }
|
||||
{ '_attr': _attr },
|
||||
{ 'channel': channel }
|
||||
] };
|
||||
}
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ var feed = new RSS(feedOptions);
|
||||
* `language` _optional_ **string** The language of the content of this feed.
|
||||
* `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
|
||||
* `georss` _optional_ **boolean** Whether to make the feed a GeoRSS feed. Default is `false`.
|
||||
* `ttl` _optional_ **integer** Number of minutes feed can be cached before refreshing from source.
|
||||
|
||||
### Add items to a feed
|
||||
@@ -60,6 +61,8 @@ feed.item(itemOptions);
|
||||
* `date` **Date object or date string** The date and time of when the item was created. Feed
|
||||
readers use this to determine the sort order. Some readers will also use it to determine
|
||||
if the content should be presented as unread.
|
||||
* `lat` _required if is a GeoRSS feed_ **number** The latitude coordinate of the item.
|
||||
* `lng` _required if is a GeoRSS feed_ **number** The longitude coordinate of the item.
|
||||
|
||||
#### Feed XML
|
||||
|
||||
@@ -92,6 +95,7 @@ var feed = new RSS({
|
||||
language: 'en',
|
||||
categories: ['Category 1','Category 2','Category 3'],
|
||||
pubDate: 'May 20, 2012 04:00:00 GMT',
|
||||
georss: true, //set this flag if you wish for the feed to be returned in GeoRSS. A lat/lng field will be expected for each item.
|
||||
ttl: '60'
|
||||
});
|
||||
|
||||
@@ -104,6 +108,8 @@ feed.item({
|
||||
categories: ['Category 1','Category 2','Category 3','Category 4'], // optional - array of item categories
|
||||
author: 'Guest Author', // optional - defaults to feed author property
|
||||
date: 'May 27, 2012' // any format that js Date can parse.
|
||||
// lat: 33.417974, //latitude field. Provide if georss is true in the feed setup.
|
||||
// lng: -111.933231, //longitude field. Provide if georss is true in the feed setup.
|
||||
enclosure : {url:'...', file:'path-to-file'} // optional
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user