stop calling that a model

merge-requests/208/head
fatchan 5 years ago
parent a4f4511962
commit ff4f6c4758
  1. 8
      controllers/forms.js
  2. 2
      controllers/pages.js
  3. 0
      db/accounts.js
  4. 0
      db/bans.js
  5. 0
      db/boards.js
  6. 0
      db/db.js
  7. 0
      db/posts.js
  8. 0
      db/trips.js
  9. 2
      helpers/bancheck.js
  10. 2
      helpers/markdown.js
  11. 10
      helpers/number-converter.js
  12. 2
      helpers/quotes.js
  13. 2
      helpers/tripcode.js
  14. 4
      models/forms/ban-poster.js
  15. 2
      models/forms/delete-post.js
  16. 2
      models/forms/dismiss-report.js
  17. 2
      models/forms/edit-post.js
  18. 2
      models/forms/login.js
  19. 2
      models/forms/make-post.js
  20. 2
      models/forms/register.js
  21. 2
      models/forms/removebans.js
  22. 2
      models/forms/report-post.js
  23. 2
      models/forms/spoiler-post.js
  24. 12
      models/pages/board.js
  25. 2
      models/pages/catalog.js
  26. 2
      models/pages/globalmanage.js
  27. 2
      models/pages/home.js
  28. 4
      models/pages/manage.js
  29. 2
      models/pages/thread.js
  30. 2
      server.js
  31. 26
      static/css/style.css
  32. 40
      views/includes/deletefooter.pug
  33. 6
      views/includes/pages.pug
  34. 11
      views/pages/board.pug
  35. 46
      views/pages/manage.pug
  36. 10
      wipe.js

@ -2,10 +2,10 @@
const express = require('express') const express = require('express')
, router = express.Router() , router = express.Router()
, Boards = require(__dirname+'/../db-models/boards.js') , Boards = require(__dirname+'/../db/boards.js')
, Posts = require(__dirname+'/../db-models/posts.js') , Posts = require(__dirname+'/../db/posts.js')
, Trips = require(__dirname+'/../db-models/trips.js') , Trips = require(__dirname+'/../db/trips.js')
, Bans = require(__dirname+'/../db-models/bans.js') , Bans = require(__dirname+'/../db/bans.js')
, banPoster = require(__dirname+'/../models/forms/ban-poster.js') , banPoster = require(__dirname+'/../models/forms/ban-poster.js')
, removeBans = require(__dirname+'/../models/forms/removebans.js') , removeBans = require(__dirname+'/../models/forms/removebans.js')
, makePost = require(__dirname+'/../models/forms/make-post.js') , makePost = require(__dirname+'/../models/forms/make-post.js')

@ -45,7 +45,7 @@ router.get('/:board/manage', Boards.exists, isLoggedIn, hasPerms, manage);
router.get('/globalmanage', isLoggedIn, hasPerms, globalmanage); router.get('/globalmanage', isLoggedIn, hasPerms, globalmanage);
// board page/recents // board page/recents
router.get('/:board/:page(\\d+)?', Boards.exists, numberConverter, board); router.get('/:board', Boards.exists, numberConverter, board);
// thread view page // thread view page
router.get('/:board/thread/:id(\\d+)', Boards.exists, numberConverter, thread); router.get('/:board/thread/:id(\\d+)', Boards.exists, numberConverter, thread);

@ -1,6 +1,6 @@
'use strict'; 'use strict';
const Bans = require(__dirname+'/../db-models/bans.js') const Bans = require(__dirname+'/../db/bans.js')
, hasPerms = require(__dirname+'/hasperms.js'); , hasPerms = require(__dirname+'/hasperms.js');
module.exports = async (req, res, next) => { module.exports = async (req, res, next) => {

@ -1,6 +1,6 @@
'use strict'; 'use strict';
const Posts = require(__dirname+'/../db-models/posts.js') const Posts = require(__dirname+'/../db/posts.js')
, greentextRegex = /^>[^>].+/gm , greentextRegex = /^>[^>].+/gm
, redtextRegex = /^<[^<].+/gm , redtextRegex = /^<[^<].+/gm
, boldRegex = /==.+==/gm , boldRegex = /==.+==/gm

@ -19,6 +19,16 @@ module.exports = (req, res, next) => {
req.params.page = +req.params.page; req.params.page = +req.params.page;
} }
//and query
if (req.query.p) {
const pnum = +req.query.p;
if (Number.isSafeInteger(pnum)) {
req.query.p = +req.query.p;
} else {
req.query.p = null;
}
}
next(); next();
} }

@ -1,6 +1,6 @@
'use strict'; 'use strict';
const Posts = require(__dirname+'/../db-models/posts.js') const Posts = require(__dirname+'/../db/posts.js')
, quoteRegex = />>\d+/gm; , quoteRegex = />>\d+/gm;
module.exports = async (board, text) => { module.exports = async (board, text) => {

@ -1,6 +1,6 @@
'use strict'; 'use strict';
const Tripcodes = require(__dirname+'/../db-models/trips.js') const Tripcodes = require(__dirname+'/../db/trips.js')
, crypto = require('crypto'); , crypto = require('crypto');
module.exports = async (password) => { module.exports = async (password) => {

@ -2,8 +2,8 @@
const uploadDirectory = require(__dirname+'/../../helpers/uploadDirectory.js') const uploadDirectory = require(__dirname+'/../../helpers/uploadDirectory.js')
, hasPerms = require(__dirname+'/../../helpers/hasperms.js') , hasPerms = require(__dirname+'/../../helpers/hasperms.js')
, Bans = require(__dirname+'/../../db-models/bans.js') , Bans = require(__dirname+'/../../db/bans.js')
, Posts = require(__dirname+'/../../db-models/posts.js'); , Posts = require(__dirname+'/../../db/posts.js');
module.exports = async (req, res, next, board, checkedPosts) => { module.exports = async (req, res, next, board, checkedPosts) => {

@ -6,7 +6,7 @@ const path = require('path')
, unlink = util.promisify(fs.unlink) , unlink = util.promisify(fs.unlink)
, uploadDirectory = require(__dirname+'/../../helpers/uploadDirectory.js') , uploadDirectory = require(__dirname+'/../../helpers/uploadDirectory.js')
, hasPerms = require(__dirname+'/../../helpers/hasperms.js') , hasPerms = require(__dirname+'/../../helpers/hasperms.js')
, Posts = require(__dirname+'/../../db-models/posts.js'); , Posts = require(__dirname+'/../../db/posts.js');
module.exports = async (req, res, next, checkedPosts) => { module.exports = async (req, res, next, checkedPosts) => {

@ -1,6 +1,6 @@
'use strict'; 'use strict';
const Posts = require(__dirname+'/../../db-models/posts.js') const Posts = require(__dirname+'/../../db/posts.js')
, hasPerms = require(__dirname+'/../../helpers/hasperms.js'); , hasPerms = require(__dirname+'/../../helpers/hasperms.js');
module.exports = async (req, res, next) => { module.exports = async (req, res, next) => {

@ -1,6 +1,6 @@
'use strict'; 'use strict';
const Posts = require(__dirname+'/../../db-models/posts.js'); const Posts = require(__dirname+'/../../db/posts.js');
module.exports = async (req, res, next) => { module.exports = async (req, res, next) => {

@ -1,7 +1,7 @@
'use strict'; 'use strict';
const bcrypt = require('bcrypt') const bcrypt = require('bcrypt')
, Accounts = require(__dirname+'/../../db-models/accounts.js'); , Accounts = require(__dirname+'/../../db/accounts.js');
module.exports = async (req, res, next) => { module.exports = async (req, res, next) => {

@ -6,7 +6,7 @@ const uuidv4 = require('uuid/v4')
, crypto = require('crypto') , crypto = require('crypto')
, randomBytes = util.promisify(crypto.randomBytes) , randomBytes = util.promisify(crypto.randomBytes)
, uploadDirectory = require(__dirname+'/../../helpers/uploadDirectory.js') , uploadDirectory = require(__dirname+'/../../helpers/uploadDirectory.js')
, Posts = require(__dirname+'/../../db-models/posts.js') , Posts = require(__dirname+'/../../db/posts.js')
, getTripCode = require(__dirname+'/../../helpers/tripcode.js') , getTripCode = require(__dirname+'/../../helpers/tripcode.js')
, linkQuotes = require(__dirname+'/../../helpers/quotes.js') , linkQuotes = require(__dirname+'/../../helpers/quotes.js')
, simpleMarkdown = require(__dirname+'/../../helpers/markdown.js') , simpleMarkdown = require(__dirname+'/../../helpers/markdown.js')

@ -1,7 +1,7 @@
'use strict'; 'use strict';
const bcrypt = require('bcrypt') const bcrypt = require('bcrypt')
, Accounts = require(__dirname+'/../../db-models/accounts.js'); , Accounts = require(__dirname+'/../../db/accounts.js');
module.exports = async (req, res, next) => { module.exports = async (req, res, next) => {

@ -1,6 +1,6 @@
'use strict'; 'use strict';
const Bans = require(__dirname+'/../../db-models/bans.js') const Bans = require(__dirname+'/../../db/bans.js')
, { ObjectId } = require('mongodb'); , { ObjectId } = require('mongodb');
module.exports = async (req, res, next) => { module.exports = async (req, res, next) => {

@ -1,6 +1,6 @@
'use strict'; 'use strict';
const Posts = require(__dirname+'/../../db-models/posts.js'); const Posts = require(__dirname+'/../../db/posts.js');
module.exports = async (req, res, next) => { module.exports = async (req, res, next) => {

@ -6,7 +6,7 @@ const path = require('path')
, unlink = util.promisify(fs.unlink) , unlink = util.promisify(fs.unlink)
, uploadDirectory = require(__dirname+'/../../helpers/uploadDirectory.js') , uploadDirectory = require(__dirname+'/../../helpers/uploadDirectory.js')
, hasPerms = require(__dirname+'/../../helpers/hasperms.js') , hasPerms = require(__dirname+'/../../helpers/hasperms.js')
, Posts = require(__dirname+'/../../db-models/posts.js'); , Posts = require(__dirname+'/../../db/posts.js');
module.exports = async (req, res, next, checkedPosts) => { module.exports = async (req, res, next, checkedPosts) => {

@ -1,22 +1,28 @@
'use strict'; 'use strict';
const Posts = require(__dirname+'/../../db-models/posts.js'); const Posts = require(__dirname+'/../../db/posts.js');
module.exports = async (req, res, next) => { module.exports = async (req, res, next) => {
//get the recently bumped thread & preview posts //get the recently bumped thread & preview posts
const page = req.query.p || 1;
let threads; let threads;
let pages; let pages;
try { try {
threads = await Posts.getRecent(req.params.board, req.params.page || 1);
pages = Math.ceil((await Posts.getPages(req.params.board)) / 10); pages = Math.ceil((await Posts.getPages(req.params.board)) / 10);
if (page > pages) {
return next();
}
threads = await Posts.getRecent(req.params.board, page);
} catch (err) { } catch (err) {
return next(err); return next(err);
} }
//render the page //render the page
res.render('board', { res.render('board', {
csrf: req.csrfToken(), csrf: req.csrfToken(),
threads: threads || [], threads: threads || [],
pages: pages pages,
page,
}); });
} }

@ -1,6 +1,6 @@
'use strict'; 'use strict';
const Posts = require(__dirname+'/../../db-models/posts.js'); const Posts = require(__dirname+'/../../db/posts.js');
module.exports = async (req, res, next) => { module.exports = async (req, res, next) => {

@ -1,6 +1,6 @@
'use strict'; 'use strict';
const Posts = require(__dirname+'/../../db-models/posts.js'); const Posts = require(__dirname+'/../../db/posts.js');
module.exports = async (req, res, next) => { module.exports = async (req, res, next) => {

@ -1,6 +1,6 @@
'use strict'; 'use strict';
const Boards = require(__dirname+'/../../db-models/boards.js'); const Boards = require(__dirname+'/../../db/boards.js');
module.exports = async (req, res, next) => { module.exports = async (req, res, next) => {

@ -1,7 +1,7 @@
'use strict'; 'use strict';
const Posts = require(__dirname+'/../../db-models/posts.js') const Posts = require(__dirname+'/../../db/posts.js')
, Bans = require(__dirname+'/../../db-models/bans.js'); , Bans = require(__dirname+'/../../db/bans.js');
module.exports = async (req, res, next) => { module.exports = async (req, res, next) => {

@ -1,6 +1,6 @@
'use strict'; 'use strict';
const Posts = require(__dirname+'/../../db-models/posts.js'); const Posts = require(__dirname+'/../../db/posts.js');
module.exports = async (req, res, next) => { module.exports = async (req, res, next) => {

@ -53,7 +53,7 @@ const express = require('express')
// use pug view engine // use pug view engine
app.set('view engine', 'pug'); app.set('view engine', 'pug');
app.set('views', path.join(__dirname, 'views/pages')); app.set('views', path.join(__dirname, 'views/pages'));
app.enable('view cache'); // app.enable('view cache');
// static files // static files
app.use('/css', express.static(__dirname + '/static/css')); app.use('/css', express.static(__dirname + '/static/css'));

@ -92,8 +92,12 @@ object {
color: green; color: green;
} }
blockquote a {
color: #d00;
}
blockquote { blockquote {
word-break: break-all; /*word-break: break-all;*/
white-space: pre-wrap; white-space: pre-wrap;
} }
@ -123,8 +127,12 @@ input, textarea {
} }
.action-wrapper { .action-wrapper {
/*align-items: center;*/ display: flex;
/*flex-direction: row;*/ flex-direction: column;
}
.action-wrapper * {
margin: 3px 0;
} }
.form-post { .form-post {
@ -172,10 +180,6 @@ input, textarea {
figure { figure {
} }
blockquote a {
color: #d00;
}
input textarea { input textarea {
padding: 8px; padding: 8px;
} }
@ -316,6 +320,10 @@ hr {
@media only screen and (max-width: 800px) { @media only screen and (max-width: 800px) {
body {
/*font-size: 14pt;*/
}
input { input {
height: 30px; height: 30px;
} }
@ -328,6 +336,10 @@ hr {
width: 100%; width: 100%;
} }
blockquote {
margin: 1em;
}
.post-check { .post-check {
top: 2px; top: 2px;
margin-left: 2px!important; margin-left: 2px!important;

@ -1,15 +1,25 @@
section.action-wrapper .action-wrapper Actions:
span label
label input.post-check(type='checkbox', name='delete' value=1)
input.post-check(type='checkbox', name='delete' value=1) | Delete Post
| Delete label
label input.post-check(type='checkbox', name='spoiler' value=1)
input.post-check(type='checkbox', name='spoiler' value=1) | Spoiler Images
| Spoiler label
input#password(type='password', name='password', placeholder='post password' autocomplete='off') input#password(type='text', name='password', placeholder='post password' autocomplete='off')
span .action-wrapper Mod Actions:
label label
input.post-check(type='checkbox', name='report' value=1) input.post-check(type='checkbox', name='dismiss' value=1)
| Report | Dismiss Reports
input#report(type='text', name='reason', placeholder='reason' autocomplete='off') label
input(type='submit', value='submit') input.post-check(type='checkbox', name='ban' value=1)
| Ban Poster
label
input.post-check(type='checkbox', name='global_ban' value=1)
| Global Ban Poster
label
input.post-check(type='checkbox', name='preserve_post' value=1)
| Show Post In Ban
label
input#report(type='text', name='reason', placeholder='ban reason' autocomplete='off')
input(type='submit', value='submit')

@ -0,0 +1,6 @@
span.pages Page:
- for(let i = 1; i <= pages; i++)
if i === page
span: a(href=`/${board._id}?p=${i}`) [#{i}]
else
span: a(href=`/${board._id}?p=${i}`) #{i}

@ -10,6 +10,8 @@ block content
include ../includes/postform.pug include ../includes/postform.pug
.mode Posting mode: Thread [#[a.no-decoration(href=`/${board._id}/catalog`) Catalog]] .mode Posting mode: Thread [#[a.no-decoration(href=`/${board._id}/catalog`) Catalog]]
hr(size=1) hr(size=1)
include ../includes/pages.pug
hr(size=1)
form(action='/forms/board/'+board._id+'/actions' method='POST' enctype='application/x-www-form-urlencoded') form(action='/forms/board/'+board._id+'/actions' method='POST' enctype='application/x-www-form-urlencoded')
input(type='hidden' name='_csrf' value=csrf) input(type='hidden' name='_csrf' value=csrf)
if threads.length === 0 if threads.length === 0
@ -20,10 +22,7 @@ block content
+post(thread, true) +post(thread, true)
for post in thread.replies for post in thread.replies
+post(post, true) +post(post, true)
hr(size=1) hr(size=1)
if pages > 0 include ../includes/pages.pug
span.pages Page hr(size=1)
- for(let i = 0; i < pages; i++)
span: a(href=`/${board._id}/${i+1}`) #{i+1}
hr(size=1)
include ../includes/deletefooter.pug include ../includes/deletefooter.pug

@ -14,42 +14,24 @@ block content
if posts.length === 0 if posts.length === 0
p No reports. p No reports.
hr(size=1) hr(size=1)
for post in posts else
section.thread for post in posts
+post(post, false, true) section.thread
+post(post, false, true)
hr(size=1)
include ../includes/deletefooter.pug
hr(size=1) hr(size=1)
section.action-wrapper
label
input.post-check(type='checkbox', name='delete' value=1)
| Delete Post
label
input.post-check(type='checkbox', name='spoiler' value=1)
| Spoiler Images
label
input.post-check(type='checkbox', name='dismiss' value=1)
| Dismiss Reports
label
input.post-check(type='checkbox', name='ban' value=1)
| Ban Poster
label
input.post-check(type='checkbox', name='global_ban' value=1)
| Global Ban Poster
label
input.post-check(type='checkbox', name='preserve_post' value=1)
| Show Post In Ban
label
input#report(type='text', name='reason', placeholder='ban reason' autocomplete='off')
input(type='submit', value='submit')
hr(size=1)
h4 Bans: h4 Bans:
form(action=`/forms/board/${board._id}/unban` method='POST' enctype='application/x-www-form-urlencoded') form(action=`/forms/board/${board._id}/unban` method='POST' enctype='application/x-www-form-urlencoded')
input(type='hidden' name='_csrf' value=csrf) input(type='hidden' name='_csrf' value=csrf)
if bans.length === 0 if bans.length === 0
p No bans. p No bans.
hr(size=1) hr(size=1)
for ban in bans else
section.thread for ban in bans
+ban(ban) section.thread
hr(size=1) +ban(ban)
section.action-wrapper hr(size=1)
input(type='submit', value='unban') section.action-wrapper
input(type='submit', value='unban')

@ -10,11 +10,11 @@ const Mongo = require(__dirname+'/helpers/db.js')
(async () => { (async () => {
console.log('connecting to db...') console.log('connecting to db...')
await Mongo.connect(); await Mongo.connect();
const Boards = require(__dirname+'/db-models/boards.js') const Boards = require(__dirname+'/db/boards.js')
, Posts = require(__dirname+'/db-models/posts.js') , Posts = require(__dirname+'/db/posts.js')
, Bans = require(__dirname+'/db-models/bans.js') , Bans = require(__dirname+'/db/bans.js')
, Trips = require(__dirname+'/db-models/trips.js') , Trips = require(__dirname+'/db/trips.js')
, Accounts = require(__dirname+'/db-models/accounts.js'); , Accounts = require(__dirname+'/db/accounts.js');
console.log('deleting accounts') console.log('deleting accounts')
await Accounts.deleteAll(); await Accounts.deleteAll();
console.log('deleting posts') console.log('deleting posts')

Loading…
Cancel
Save