Skip to content

Commit 229b41f

Browse files
author
Ubuntu
committed
some fixes for reddit's feed
1 parent 2e2bfe3 commit 229b41f

File tree

5 files changed

+313
-61
lines changed

5 files changed

+313
-61
lines changed

index.js

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,17 @@ var getSnippet = function(str) {
2323
return Entities.decode(stripHtml(str)).trim();
2424
}
2525

26+
var getContent = function(content) {
27+
if (typeof content._ === 'string') {
28+
return content._;
29+
} else if (typeof content === 'object') {
30+
var builder = new XML2JS.Builder({headless: true, explicitRoot: true, rootName: 'div', renderOpts: {pretty: false}});
31+
return builder.buildObject(content);
32+
} else {
33+
return content;
34+
}
35+
}
36+
2637
var parseAtomFeed = function(xmlObj, callback) {
2738
var feed = xmlObj.feed;
2839
var json = {feed: {entries: []}};
@@ -38,12 +49,12 @@ var parseAtomFeed = function(xmlObj, callback) {
3849
var entries = feed.entry;
3950
(entries || []).forEach(function (entry) {
4051
var item = {};
41-
item.title = entry.title[0];
42-
item.link = entry.link[0].$.href;
43-
item.pubDate = new Date(entry.updated[0]).toISOString();
44-
item.author = entry.author[0].name[0];
52+
if (entry.title) item.title = entry.title[0];
53+
if (entry.link) item.link = entry.link[0].$.href;
54+
if (entry.updated) item.pubDate = new Date(entry.updated[0]).toISOString();
55+
if (entry.author) item.author = entry.author[0].name[0];
4556
if (entry.content) {
46-
item.content = entry.content[0]._;
57+
item.content = getContent(entry.content[0]);
4758
item.contentSnippet = getSnippet(item.content)
4859
}
4960
if (entry.id) {
@@ -72,11 +83,7 @@ var parseRSS2 = function(xmlObj, callback) {
7283
if (item[f]) entry[f] = item[f][0];
7384
})
7485
if (item.description) {
75-
entry.content = item.description[0];
76-
if (typeof entry.content === 'object') {
77-
var builder = new XML2JS.Builder({headless: true});
78-
entry.content = builder.buildObject(entry.content);
79-
}
86+
entry.content = getContent(item.description[0]);
8087
entry.contentSnippet = getSnippet(entry.content);
8188
}
8289
if (item.guid) {

0 commit comments

Comments
 (0)