var RDB = require('./redis.js'), utils = require('./utils.js'), marked = require('marked'), user = require('./user.js'), async = require('async'); (function(Posts) { //data structure //*global:next_post_id // *pid:1:content // *pid:1:uid // *pid:1:timestamp // ***pid:1:replies // *uid:1:posts Posts.get = function(callback, tid, current_user, start, end) { if (start == null) start = 0; if (end == null) end = start + 10; // async.parallel({ // details: function(callback) { // RDB.get('tid:' + tid + ':title', function(topic_name) { // callback(null, { // 'topic_name': topic_name // }); // }); // }, // posts: function(callback) { // var participant_uids = [], // post_calls = []; // RDB.lrange('tid:' + tid + ':posts', start, end, function(pids) { // var content = [], // uid = [], // timestamp = [], // pid = [], // post_rep = []; // for (var i=0, ii=pids.length; i 0) { // RDB.multi() // .mget(content) // .mget(uid) // .mget(timestamp) // .mget(post_rep) // .exec(function(err, replies) { // content = replies[0]; // uid = replies[1]; // timestamp = replies[2]; // post_rep = replies[3]; // callback(null, replies); // } // ); // } // }); // } // }, function(err, results) { // callback(results); // }); // return; RDB.get('tid:' + tid + ':title', function(topic_name) { //do these asynch later RDB.lrange('tid:' + tid + ':posts', start, end, function(pids) { var content = [], uid = [], timestamp = [], pid = [], post_rep = []; for (var i=0, ii=pids.length; i 0) { RDB.multi() .mget(content) .mget(uid) .mget(timestamp) .mget(post_rep) .exec(function(err, replies) { content = replies[0]; uid = replies[1]; timestamp = replies[2]; post_rep = replies[3]; user.get_user_postdetails(uid, function(user_details) { user.get_gravatars_by_uids(uid, '', function(gravatars) { var posts = []; var callbacks = content.length; for (var i=0, ii=content.length; i