Early version of overboard, /all.html. Still needs a small cache and moderation changes to support moderating references #166

merge-requests/208/head
Thomas Lynch 4 years ago
parent 79deff75d4
commit 0021ed02cc
  1. 3
      configs/main.js.example
  2. 3
      controllers/pages.js
  3. 11
      db/posts.js
  4. 2
      models/forms/create.js
  5. 1
      models/pages/index.js
  6. 23
      models/pages/overboard.js
  7. 20
      views/pages/overboard.pug

@ -73,6 +73,9 @@ module.exports = {
editPost: 30,
},
//how many threads to show on overboard
overboardLimit: 20,
//cache templates in memory. disable only if editing templates and doing dev work
cacheTemplates: true,

@ -19,7 +19,7 @@ const express = require('express')
, { globalManageSettings, globalManageReports, globalManageBans,
globalManageRecent, globalManageAccounts, globalManageNews, globalManageLogs } = require(__dirname+'/../models/pages/globalmanage/')
, { changePassword, blockBypass, home, register, login, create,
board, catalog, banners, randombanner, news, captchaPage,
board, catalog, banners, randombanner, news, captchaPage, overboard,
captcha, thread, modlog, modloglist, account, boardlist } = require(__dirname+'/../models/pages/');
//homepage
@ -38,6 +38,7 @@ router.get('/:board/catalog.html', Boards.exists, catalog); //catalog
router.get('/:board/logs.html', Boards.exists, modloglist);//modlog list
router.get('/:board/logs/:date(\\d{2}-\\d{2}-\\d{4}).html', Boards.exists, paramConverter, modlog); //daily log
router.get('/:board/banners.html', Boards.exists, banners); //banners
router.get('/all.html', overboard); //overboard
router.get('/create.html', sessionRefresh, isLoggedIn, create); //create new board
router.get('/randombanner', randombanner); //random banner

@ -61,10 +61,13 @@ module.exports = {
if (!getSensitive) {
projection['ip'] = 0;
}
const threads = await db.find({
const threadsQuery = {
'thread': null,
'board': board
}, {
}
if (board) {
threadsQuery[board] = board;
}
const threads = await db.find(threadsQuery, {
projection
}).sort({
'sticky': -1,
@ -76,7 +79,7 @@ module.exports = {
const previewRepliesLimit = thread.sticky ? stickyPreviewReplies : previewReplies;
const replies = previewRepliesLimit === 0 ? [] : await db.find({
'thread': thread.postId,
'board': board
'board': thread.board
},{
projection
}).sort({

@ -3,7 +3,7 @@
const { Boards, Accounts } = require(__dirname+'/../../db/')
, dynamicResponse = require(__dirname+'/../../helpers/dynamic.js')
, uploadDirectory = require(__dirname+'/../../helpers/files/uploadDirectory.js')
, restrictedURIs = new Set(['captcha', 'forms', 'randombanner'])
, restrictedURIs = new Set(['captcha', 'forms', 'randombanner', 'all'])
, { ensureDir } = require('fs-extra')
, { boardDefaults } = require(__dirname+'/../../configs/main.js');

@ -19,4 +19,5 @@ module.exports = {
modlog: require(__dirname+'/modlog.js'),
modloglist: require(__dirname+'/modloglist.js'),
boardlist: require(__dirname+'/boardlist.js'),
overboard: require(__dirname+'/overboard.js'),
}

@ -0,0 +1,23 @@
'use strict';
const Posts = require(__dirname+'/../../db/posts.js')
, cache = require(__dirname+'/../../redis.js')
, { overboardLimit } = require(__dirname+'/../../configs/main.js');
module.exports = async (req, res, next) => {
let threads = [];
try {
threads = await Posts.getRecent(null, 1, overboardLimit, false);
} catch (err) {
return next(err);
}
res
.set('Cache-Control', 'public, max-age=60')
.render('overboard', {
modview: true,
threads,
});
}

@ -0,0 +1,20 @@
extends ../layout.pug
include ../mixins/post.pug
block head
title Overboard
block content
.board-header
h1.board-title Overboard
h4.board-description Recently bumped threads from all boards
hr(size=1)
if threads.length === 0
p No posts.
hr(size=1)
for thread in threads
.thread
+post(thread, true)
for post in thread.replies
+post(post, true)
hr(size=1)
Loading…
Cancel
Save