Merge pull request #4242 from bugron/feature/rss-feed-for-camper-news
Adds RSS feed for Camper News
This commit is contained in:
@ -64,6 +64,7 @@ module.exports = function(app) {
|
|||||||
|
|
||||||
router.post('/news/userstories', userStories);
|
router.post('/news/userstories', userStories);
|
||||||
router.get('/news/hot', hotJSON);
|
router.get('/news/hot', hotJSON);
|
||||||
|
router.get('/news/feed', RSSFeed);
|
||||||
router.get('/stories/hotStories', hotJSON);
|
router.get('/stories/hotStories', hotJSON);
|
||||||
router.get(
|
router.get(
|
||||||
'/stories/submit',
|
'/stories/submit',
|
||||||
@ -105,6 +106,26 @@ module.exports = function(app) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function RSSFeed(req, res, next) {
|
||||||
|
var query = {
|
||||||
|
order: 'timePosted DESC',
|
||||||
|
limit: 1000
|
||||||
|
};
|
||||||
|
findStory(query).subscribe(
|
||||||
|
function(stories) {
|
||||||
|
var sliceVal = stories.length >= 100 ? 100 : stories.length;
|
||||||
|
var data = stories.sort(sortByRank).slice(0, sliceVal);
|
||||||
|
res.render('feed', {
|
||||||
|
title: 'FreeCodeCamp Camper News RSS Feed',
|
||||||
|
description: 'RSS Feed for FreeCodeCamp Top 100 Hot Camper News',
|
||||||
|
url: 'http://www.freecodecamp.com/news',
|
||||||
|
FeedPosts: data
|
||||||
|
});
|
||||||
|
},
|
||||||
|
next
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
function hot(req, res) {
|
function hot(req, res) {
|
||||||
return res.render('stories/index', {
|
return res.render('stories/index', {
|
||||||
title: 'Top Stories on Camper News',
|
title: 'Top Stories on Camper News',
|
||||||
|
15
server/views/feed.jade
Normal file
15
server/views/feed.jade
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
doctype xml
|
||||||
|
rss(version="2.0", xmlns:atom="http://www.w3.org/2005/Atom")
|
||||||
|
channel
|
||||||
|
title= title
|
||||||
|
link= url
|
||||||
|
description= description
|
||||||
|
atom:link(href="http://www.freecodecamp.com/news/feed", rel="self", type="application/rss+xml")
|
||||||
|
for post in FeedPosts
|
||||||
|
if (post.link).match(/https*:\/\/\w+(\.\w+)*/)
|
||||||
|
item
|
||||||
|
title #{ post.headline.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"') }
|
||||||
|
description <![CDATA[!{ post.metaDescription }]]>
|
||||||
|
pubDate= (new Date(post.timePosted)).toUTCString()
|
||||||
|
link= post.link
|
||||||
|
guid(isPermaLink="false")= post.link
|
@ -60,3 +60,4 @@ link(rel="mstile", sizes="310x150", href="https://s3.amazonaws.com/freecodecamp/
|
|||||||
link(rel="mstile", sizes="70x70", href="https://s3.amazonaws.com/freecodecamp/favicons/mstile-70x70.png")
|
link(rel="mstile", sizes="70x70", href="https://s3.amazonaws.com/freecodecamp/favicons/mstile-70x70.png")
|
||||||
link(rel="favicon", href="https://s3.amazonaws.com/freecodecamp/favicons/favicon.ico")
|
link(rel="favicon", href="https://s3.amazonaws.com/freecodecamp/favicons/favicon.ico")
|
||||||
link(rel='shortcut icon', href='//s3.amazonaws.com/freecodecamp/favicons/favicon.ico')
|
link(rel='shortcut icon', href='//s3.amazonaws.com/freecodecamp/favicons/favicon.ico')
|
||||||
|
link(rel="alternate" type="application/rss+xml" title="RSS Feed for FreeCodeCamp Camper News" href="http://www.freecodecamp.com/news/feed")
|
||||||
|
Reference in New Issue
Block a user