feedparser
Advanced tools
Comparing version 0.4.1 to 0.4.2
@@ -443,2 +443,93 @@ /********************************************************************** | ||
} | ||
} else if ((el == 'channel' || el == 'feed') && !self.meta.title) { // We haven't yet parsed all the metadata | ||
// Set all the meta keys to null | ||
self.meta.title = self.meta.description = self.meta.pubDate = self.meta.link = self.meta.xmlUrl | ||
= null; | ||
switch(self.meta['#type']){ | ||
case 'atom': | ||
self.meta.title = getValue(n.title) | ||
self.meta.description = getValue(n.subtitle); | ||
self.meta.pubDate = getValue(n.updated) ? new Date(n.updated['#']) : null; | ||
if ( n.link && n.link.length ) { | ||
n.link.forEach(function(link){ | ||
if (link['@'] && link['@']['rel'] && link['@']['href']) | ||
switch(link['@']['rel']){ | ||
case('alternate'): | ||
self.meta.link = link['@']['href']; | ||
break; | ||
case('self'): | ||
self.meta.xmlUrl = link['@']['href']; | ||
break; | ||
}; | ||
}); | ||
} | ||
break; | ||
case 'rss': | ||
if (n.title) { | ||
Object.keys(n).forEach(function(el){ | ||
switch(el){ | ||
case('title'): | ||
self.meta.title = getValue(n[el]); | ||
break; | ||
case('description'): | ||
self.meta.description = getValue(n[el]); | ||
break; | ||
case('pubdate'): | ||
case('lastbuilddate'): | ||
if (self.meta.pubDate === null || el == 'pubdate') | ||
self.meta.pubDate = getValue(n[el]) ? new Date(n[el]['#']) : null; | ||
break; | ||
case('link'): | ||
self.meta.link = getValue(n[el]); | ||
break; | ||
case('atom:link'): | ||
if (Array.isArray(n[el])) { | ||
n[el].forEach(function(link){ | ||
if(link['@'] && getValue(link['@'], 'rel') == 'self') | ||
self.meta.xmlUrl = getValue(link['@'], 'href'); | ||
}); | ||
} else if (n[el].constructor.name == 'Object' | ||
&& n[el]['@'] | ||
&& getValue(n[el]['@'], 'rel') == 'self') { | ||
self.meta.xmlUrl = getValue(n[el]['@'], 'href'); | ||
} | ||
break; | ||
} | ||
}); | ||
} | ||
break; | ||
case 'rdf': | ||
if (n.title) { | ||
Object.keys(n).forEach(function(el){ | ||
switch(el){ | ||
case('title'): | ||
self.meta.title = getValue(n[el]); | ||
break; | ||
case('description'): | ||
self.meta.description = getValue(n[el]); | ||
break; | ||
case('dc:date'): | ||
self.meta.pubDate = getValue(n[el]) ? new Date(n[el]['#']) : null; | ||
break; | ||
case('link'): | ||
self.meta.link = getValue(n[el]); | ||
break; | ||
case('atom:link'): | ||
if (Array.isArray(n[el])) { | ||
n[el].forEach(function(link){ | ||
if(link['@'] && getValue(link['@'], 'rel') == 'self') | ||
self.meta.xmlUrl = getValue(link['@'], 'href'); | ||
}); | ||
} else if (n[el].constructor.name == 'Object' | ||
&& n[el]['@'] | ||
&& getValue(n[el]['@'], 'rel') == 'self') { | ||
self.meta.xmlUrl = getValue(n[el]['@'], 'href'); | ||
} | ||
break; | ||
} | ||
}); | ||
} | ||
break; | ||
} | ||
self.emit('meta', self.meta); | ||
} | ||
@@ -445,0 +536,0 @@ |
@@ -5,3 +5,3 @@ { | ||
"description": "Robust RSS, Atom, and RDF feed parsing using sax js", | ||
"version": "0.4.1", | ||
"version": "0.4.2", | ||
"repository": { | ||
@@ -8,0 +8,0 @@ "type": "git", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
25712
8
564