summaryrefslogtreecommitdiff
path: root/lib/bucky.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/bucky.js')
-rw-r--r--lib/bucky.js191
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