Skip to content

Commit

Permalink
Check for bans and partially working num replies
Browse files Browse the repository at this point in the history
  • Loading branch information
ryankeegan committed Apr 8, 2018
1 parent 0e4298c commit 9db41d4
Show file tree
Hide file tree
Showing 15 changed files with 119 additions and 257 deletions.
Binary file removed .DS_Store
Binary file not shown.
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,7 @@ node_modules/
.idea/
*.log.*
uploads/
package-lock.json
dist/
package-lock.json
*~
.DS_Store
6 changes: 0 additions & 6 deletions dist/build.js

This file was deleted.

15 changes: 15 additions & 0 deletions middleware/checkBan.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
const Ban = require(_base + 'models/ban');

module.exports = function(req, res, next) {
Ban.findOne({ ip: req.connection.remoteAddress }, function(err, result) {
if (err) {
next(err);
}

if (result) {
next(new Error('User is banned!'));
}

next();
});
}
3 changes: 2 additions & 1 deletion routes/create/reply.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,12 @@ const path = 'uploads/';
const multer = require('multer');
const upload = multer({dest: './uploads/'});
const striptags = require('striptags');
const checkBan = require(_base + 'middleware/checkBan');

module.exports = {
'/create/reply': {
methods: ['post'],
middleware: [upload.single("attachment")],
middleware: [upload.single("attachment"), checkBan],
fn: function (req, res, next) {
let allowedExt = ['png', 'jpg', 'jpeg', 'webm'];
let threadId = req.body.threadId,
Expand Down
3 changes: 2 additions & 1 deletion routes/create/thread.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@ const path = 'uploads/';
const multer = require('multer');
const upload = multer({dest: './uploads/'});
const striptags = require('striptags');
const checkBan = require(_base + 'middleware/checkBan');

module.exports = {
'/create/thread': {
methods: ['post'],
middleware: [upload.single("attachment")],
middleware: [upload.single("attachment"), checkBan],
fn: function (req, res, next) {
let allowedExt = ['png', 'jpg', 'jpeg', 'webm'];
let name = req.body.name,
Expand Down
10 changes: 6 additions & 4 deletions routes/delete/ban.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
const Ban = require(_base + 'models/ban');
const Ban = require(_base + 'models/ban'),
ensureAuthenticity = require(_base + 'middleware/ensureAuthenticity');

module.exports = {
'/delete/ban': {
methods: ['delete'],
middleware: [ensureAuthenticity],
fn: function(req, res, next) {
let _id = req.body._id;
Ban.findByIdAndRemove(_id, function(err, ban) {
let ip = req.body.ip;
Ban.findOneAndRemove({ ip: ip }, function(err, ban) {
if(err) {
return next(err);
}
res.json({result: ban});
res.json({ result: ban });
});
}
}
Expand Down
20 changes: 20 additions & 0 deletions routes/read/numReplies.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
const Replies = require(_base + "models/reply");

module.exports = {
'/read/numReplies': {
methods: ['get'],
fn: function(req, res, next) {
let _id = req.query._id, //For thread
numReplies = 0;
Replies.find({ threadId: _id }, function(err, threadResults) {
if(err) {
return next(err);
} else {
numReplies = threadResults.length;
console.log(numReplies);
res.json( { result: { numReplies: numReplies } } );
}
});
}
}
}
21 changes: 10 additions & 11 deletions routes/read/thread.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,15 @@ module.exports = {
'/read/thread': {
methods: ['get'],
fn: function(req, res, next) {
let _id = req.query._id;
//post id, name, content, pinned, time
console.log(_id);
Threads.findById(_id, function(err, result) {
if(err) {
return next(err);
} else {
res.json({ result: result });
}
});
let _id = req.query._id;
//post id, name, content, pinned, time
Threads.findById(_id, function(err, result) {
if(err) {
return next(err);
} else {
res.json({ result: result });
}
});
}
}
};
};
39 changes: 27 additions & 12 deletions routes/read/threads.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,32 @@
const Threads = require(_base + 'models/thread');
const Threads = require(_base + 'models/thread'),
Replies = require(_base + "models/reply");

module.exports = {
'/read/threads': {
methods: ['get'],
fn: function(req, res, next) {
let letter = req.query.letter;
Threads.find({ boardId: letter }, function(err, results) {
if(err) {
return next(err);
} else {
res.json({ result: results });
}
'/read/threads': {
methods: ['get'],
fn: function(req, res, next) {
let letter = req.query.letter,
numReplies = 0;
Threads.find({ boardId: letter }, function(err, results) {
if(err) {
return next(err);
} else {
for(let i=0; i<results.length; i++) {
numReplies = 0;
Replies.find({ threadId: results[i]._id }, function(err, threadResults) {
if(err) {
return next(err);
} else {
numReplies = threadResults.length;
console.log(numReplies);
}
});
console.log(numReplies);
results[i].numReplies = numReplies;
}
res.json({ result: results });
}
});
}
};
}
};
12 changes: 0 additions & 12 deletions src/assets/css/common.css~

This file was deleted.

7 changes: 6 additions & 1 deletion src/assets/js/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ axios.defaults.withCredentials = true;
bansUrl: 'read/bans',
isAuthUrl: 'read/isAuth',
banUrl: 'create/ban',
deleteReplyUrl: 'delete/reply'
deleteReplyUrl: 'delete/reply',
numRepliesUrl: 'read/numReplies'
};
function url(api) {
return root + urls[api];
Expand Down Expand Up @@ -96,4 +97,8 @@ axios.defaults.withCredentials = true;
_api.deleteReply = function (id, fn) {
post(url('deleteReplyUrl'), { _id: id }, fn);
};

_api.numReplies = function (id, fn) {
get(url('numRepliesUrl'), { _id: _id }, fn);
}
})();
19 changes: 17 additions & 2 deletions src/components/Catalog.vue
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
</video>
</a>
<div class="meta">
R: <b>?</b>
R: <b>{{ thread.numReplies }}</b>
</div>
<div class="teaser">
<a :href="'/' + $route.params.board + '/thread/' + thread._id"><b>{{ thread.title }}</b></a> <div v-html="thread.content">{{ thread.content }}</div>
Expand Down Expand Up @@ -163,12 +163,14 @@
vm.updateThreads(vm.$route.params.board);
vm.getBoardInfo(vm.$route.params.board);
vm.compileBoardList();
vm.getThreadsNumReplies();
},
beforeRouteUpdate (to, from, next) {
let vm = this;
vm.updateThreads(to.params.board);
vm.getBoardInfo(to.params.board);
vm.compileBoardList();
vm.getThreadsNumReplies();
next();
},
methods: {
Expand Down Expand Up @@ -213,7 +215,20 @@
console.log(vm.boardList);
}
});
}
},
getThreadsNumReplies() {
let vm = this;
for(let i=0; i<vm.threads.length; i++) {
_api.numReplies(vm.threads[i]._id, function (err, res) {
if (err) {
console.log(err);
}
else if(res.result) {
vm.threads[i].numReplies = res.result.numReplies;
}
});
}
}
}
}
</script>
Loading

0 comments on commit 9db41d4

Please sign in to comment.