From d314b9cae27808cde70f4484168c7e3c5ce30450 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Thu, 18 Dec 2014 19:47:51 -0500 Subject: [PATCH] closes #2538 --- src/routes/feeds.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/routes/feeds.js b/src/routes/feeds.js index 7472f5f233..77571e1fe8 100644 --- a/src/routes/feeds.js +++ b/src/routes/feeds.js @@ -6,6 +6,7 @@ var async = require('async'), posts = require('../posts'), topics = require('../topics'), + user = require('../user'), categories = require('../categories'), meta = require('../meta'), helpers = require('../controllers/helpers'), @@ -95,6 +96,30 @@ function generateForTopic(req, res, next) { }); } +function generateForUserTopics(req, res, next) { + var userslug = req.params.userslug; + + async.waterfall([ + function(next) { + user.getUidByUserslug(userslug, next); + }, + function(uid, next) { + user.getUserFields(uid, ['uid', 'username'], next); + } + ], function(err, userData) { + if (err) { + return next(err); + } + + generateForTopics({ + title: 'Topics by ' + userData.username, + description: 'A list of topics that are posted by ' + userData.username, + feed_url: '/user/' + userslug + '/topics.rss', + site_url: '/user/' + userslug + '/topics' + }, 'uid:' + userData.uid + ':topics', req, res, next); + }); +} + function generateForCategory(req, res, next) { var cid = req.params.category_id; var uid = req.user ? req.user.uid : 0; @@ -266,4 +291,5 @@ module.exports = function(app, middleware, controllers){ app.get('/popular.rss', disabledRSS, generateForPopular); app.get('/recentposts.rss', disabledRSS, generateForRecentPosts); app.get('/category/:category_id/recentposts.rss', hasCategoryPrivileges, disabledRSS, generateForCategoryRecentPosts); + app.get('/user/:userslug/topics.rss', disabledRSS, generateForUserTopics); };