diff options
Diffstat (limited to 'lib/bucky.js')
| -rw-r--r-- | lib/bucky.js | 191 |
1 files changed, 0 insertions, 191 deletions
diff --git a/lib/bucky.js b/lib/bucky.js deleted file mode 100644 index 70910ef..0000000 --- a/lib/bucky.js +++ /dev/null @@ -1,191 +0,0 @@ -var db = require('./db') -var util = require('./util') -var _ = require('lodash') - -var bucky = module.exports = { - - /* INDEX */ - - ensureLatestThreads: function (req, res, next){ - db.getLatestThreads().then(function(threads){ - res.threads = threads - res.threads_ids = res.threads.pluck("id").sort() - res.keywords = _.uniq(res.threads.pluck("keyword")) - next() - }) - }, - ensureCommentCountsForThreads: function (req, res, next){ - db.getCommentCounts(res.threads_ids).then(function(counts){ - var lookup = {} - counts.forEach(function(c){ - lookup[c.thread] = c - }) - res.threads.forEach(function(thread){ - if (lookup[thread.id]) { - thread.set("comment_count", lookup[thread.id].count) - } - }) - next() - }) - }, - ensureFileCountsForThreads: function (req, res, next){ - db.getFileCounts(res.threads_ids).then(function(counts){ - var lookup = {} - counts.forEach(function(c){ - lookup[c.thread] = c - }) - res.threads.forEach(function(t){ - var c = lookup[t.id] - t.set("file_count", c ? c.count : 0) - }) - next() - }) - }, - ensureKeywordsForThreads: function (req, res, next){ - db.getKeywords(res.keywords).then(function(keywords){ - var lookup = {} - keywords.forEach(function(k){ - lookup[k.get('keyword')] = k - }) - res.threads.forEach(function(t){ - var kw = t.get('keyword') - if (! kw) return - var k = lookup[kw] - if (! k) return - if (! t.get("color")) { - t.set("color", k.get("color")) - } - }) - next() - }) - }, - ensureHootbox: function (req, res, next){ - db.getCommentsForThread(1, 15, 0, "desc").then(function(hootbox){ - res.hootbox = hootbox - next() - }) - }, - ensureLastlog: function (req, res, next){ - db.getLastlog(6).then(function(lastlog){ - res.lastlog = lastlog - next() - }) - }, - - /* DETAILS */ - - ensureThread: function (req, res, next){ - var id = req.params.id.replace(/\D/g, "") - if (! id) { - return res.sendStatus(404) - } - db.getThread(id).then(function(thread){ - if (thread) { - res.thread = thread - next() - } - else { - res.sendStatus(404) - } - }) - }, - ensureKeywordForThread: function (req, res, next){ - var keyword = res.thread.get('keyword') - if (! keyword) return next() - db.getKeyword(keyword).then(function(keyword){ - res.keyword = keyword - next() - }) - }, - ensureCommentsForThread: function (req, res, next){ - db.getCommentsForThread(res.thread.get('id')).then(function(comments){ - res.comments = comments - next() - }) - }, - ensureFilesForThread: function (req, res, next){ - db.getFilesForThread(res.thread.get('id')).then(function(files){ - res.files = files - next() - }) - }, - - /* KEYWORDS */ - - ensureKeyword: function (req, res, next){ - var keyword = req.params.keyword - if (! keyword) { - return res.sendStatus(404) - } - db.getKeyword(keyword).then(function(k){ - if (! k) { - return res.sendStatus(404) - } - res.keyword = k - next() - }) - }, - ensureThreadsForKeyword: function (req, res, next){ - var keyword = req.params.keyword - if (! keyword) { - res.sendStatus(404) - } - db.getThreadsForKeyword(keyword).then(function(threads){ - res.threads = threads - res.threads_ids = res.threads.pluck("id").sort() - res.keywords = _.uniq(res.threads.pluck("keyword")) - next() - }) - }, - - /* MAIL */ - - ensureMailboxes: function (req, res, next){ - var username = req.user.get('username') - var box = req.params.box - var mbox = username + "." + box - if (! box) { - res.sendStatus(404) - } - db.getMailboxes(username).then(function(boxes){ - if (! boxes) { - return res.sendStatus(404) - } - if (! boxes.models.some(function(box){ return box.get('mbox') == mbox })) { - return res.sendStatus(404) - } - res.boxes = boxes - next() - }) - }, - ensureMailboxCounts: function (req, res, next){ - db.getMailboxCounts(res.boxes.pluck("mbox")).then(function(counts){ - var lookup = {} - counts.forEach(function(c){ - lookup[c.mbox] = c - }) - res.boxes.forEach(function(box){ - var count = lookup[box.get('mbox')] ? lookup[box.get('mbox')].count : 0 - box.set("count", count) - }) - next() - }) - }, - ensureMessages: function (req, res, next){ - db.getMessages(req.user.get('username'), req.params.box, 50, 0).then(function(messages){ - res.messages = messages - next() - }) - }, - ensureMessage: function(req, res, next){ - db.getMessage(req.params.id).then(function(message){ - var username = req.user.get('username') - if (username !== message.get('recipient') && username !== message.get('sender')) { - res.sendStatus(404) - return - } - res.message = message - next() - }) - } -}
\ No newline at end of file |
