2012-03-17 18:53:47 +08:00

44 lines
1.1 KiB
JavaScript

var topic_ctrl = require('./topic');
var config = require('../config').config;
var data2xml = require('data2xml');
var Markdown = require('node-markdown').Markdown;
exports.index = function (req,res,next) {
if (!config.rss) {
return res.send('Please set `rss` in config.js');
}
var opt = { limit: config.rss.max_rss_items, sort: [['create_at','desc']] };
topic_ctrl.get_topics_by_query({}, opt, function (err, topics) {
if(err) return next(err);
var rss_obj = {
_attr: { version: '2.0' },
channel: {
title: config.rss.title,
link: config.rss.link,
language: config.rss.language,
description: config.rss.description,
item: []
},
};
topics.forEach(function (topic) {
rss_obj.channel.item.push({
title: topic.title,
link: config.rss.link + '/topic/' + topic._id,
guid: config.rss.link + '/topic/' + topic._id,
description: Markdown(topic.content, true),
author: topic.author.name,
pubDate: topic.create_at.toUTCString()
});
});
var rss_content = data2xml('rss', rss_obj);
res.contentType('application/xml');
res.send(rss_content);
});
};