Baris Soner Usakli 12 years ago
commit 8c8e1fef93

@ -29,7 +29,9 @@
Feed.updateTopic = function(tid, cid) {
var cache_time_in_seconds = 60;
topics.getTopicWithPosts(tid, 0, function(topicData) {
topics.getTopicWithPosts(tid, 0, function(err, topicData) {
if (err) console.log('Error: Problem saving topic RSS feed', err);
var location = '/topic/' + topicData.slug,
xml_url = '/topic/' + tid + '.rss';

@ -7,6 +7,13 @@ var RDB = require('./redis.js'),
(function(ThreadTools) {
ThreadTools.exists = function(tid, callback) {
RDB.sismember('topics:tid', tid, function(err, ismember) {
if (err) RDB.handle(err);
callback(!!ismember || false);
});
}
ThreadTools.privileges = function(tid, uid, callback) {
//todo: break early if one condition is true

@ -84,6 +84,8 @@ marked.setOptions({
}
Topics.getTopicWithPosts = function(tid, current_user, callback) {
threadTools.exists(tid, function(exists) {
if (!exists) return callback(new Error('Topic tid \'' + tid + '\' not found'));
Topics.markAsRead(tid, current_user);
@ -107,13 +109,14 @@ marked.setOptions({
}
async.parallel([getTopicData, getTopicPosts, getPrivileges], function(err, results) {
if (err) console.log(err.message);
var topicData = results[0],
topicPosts = results[1],
privileges = results[2];
var main_posts = topicPosts.splice(0, 1);
callback({
callback(null, {
'topic_name':topicData.title,
'category_name':topicData.category_name,
'category_slug':topicData.category_slug,
@ -127,6 +130,7 @@ marked.setOptions({
'main_posts': main_posts
});
});
});
}

@ -133,7 +133,9 @@ var express = require('express'),
var topic_url = tid + (req.params.slug ? '/' + req.params.slug : '');
topics.getTopicWithPosts(tid, ((req.user) ? req.user.uid : 0), function(topic) {
topics.getTopicWithPosts(tid, ((req.user) ? req.user.uid : 0), function(err, topic) {
if (err) return res.redirect('404');
res.send(
app.build_header(res) +
'\n\t<noscript>\n' + templates['noscript/header'] + templates['noscript/topic'].parse(topic) + '\n\t</noscript>' +
@ -238,7 +240,7 @@ var express = require('express'),
res.json(data);
break;
case 'topic' :
topics.getTopicWithPosts(req.params.id, uid, function(data) {
topics.getTopicWithPosts(req.params.id, uid, function(err, data) {
res.json(data);
});
break;

Loading…
Cancel
Save