diff --git a/lib/feedparser/index.js b/lib/feedparser/index.js index 7915725..2d8fea0 100644 --- a/lib/feedparser/index.js +++ b/lib/feedparser/index.js @@ -71,6 +71,7 @@ function FeedParser (options) { if (!('strict' in this.options)) this.options.strict = false; if (!('normalize' in this.options)) this.options.normalize = true; if (!('addmeta' in this.options)) this.options.addmeta = true; + if (!('parseDate' in this.options)) this.options.parseDate = true; if (!('resume_saxerror' in this.options)) this.options.resume_saxerror = true; if ('MAX_BUFFER_LENGTH' in this.options) { sax.MAX_BUFFER_LENGTH = this.options.MAX_BUFFER_LENGTH; // set to Infinity to have unlimited buffers @@ -430,6 +431,7 @@ FeedParser.prototype.handleMeta = function handleMeta (node, type, options) { var meta = {} , normalize = !options || (options && options.normalize) + , parseDate = !options || (options && options.parseDate) ; if (normalize) { @@ -461,6 +463,7 @@ FeedParser.prototype.handleMeta = function handleMeta (node, type, options) { case('dc:date'): var date = _.get(el) ? new Date(_.get(el)) : null; if (!date) break; + if (parseDate) date = date.toISOString(); if (meta.pubdate === null || name == 'pubdate' || name == 'published') meta.pubdate = meta.pubDate = date; if (meta.date === null || name == 'lastbuilddate' || name == 'modified' || name == 'updated') @@ -777,6 +780,7 @@ FeedParser.prototype.handleItem = function handleItem (node, type, options){ var item = {} , normalize = !options || (options && options.normalize) + , parseDate = !options || (options && options.parseDate) ; if (normalize) { @@ -815,6 +819,7 @@ FeedParser.prototype.handleItem = function handleItem (node, type, options){ case('dc:date'): var date = _.get(el) ? new Date(_.get(el)) : null; if (!date) break; + if (parseDate) date = date.toISOString(); if (item.pubdate === null || name == 'pubdate' || name == 'published' || name == 'issued') item.pubdate = item.pubDate = date; if (item.date === null || name == 'modified' || name == 'updated')