forked from spacebar/SplatNet-Backend
Judd: implement ratelimit on /post route
This commit is contained in:
parent
4f02c3a26c
commit
e86743873c
3 changed files with 32 additions and 2 deletions
20
judd/package-lock.json
generated
20
judd/package-lock.json
generated
|
|
@ -11,6 +11,7 @@
|
|||
"dependencies": {
|
||||
"discord.js": "^14.25.1",
|
||||
"express": "^4.18.2",
|
||||
"express-rate-limit": "^8.3.1",
|
||||
"express-subdomain": "^1.0.5",
|
||||
"joi": "^17.7.0",
|
||||
"mongoose": "^6.7.1",
|
||||
|
|
@ -2453,6 +2454,24 @@
|
|||
"url": "https://opencollective.com/express"
|
||||
}
|
||||
},
|
||||
"node_modules/express-rate-limit": {
|
||||
"version": "8.3.1",
|
||||
"resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.3.1.tgz",
|
||||
"integrity": "sha512-D1dKN+cmyPWuvB+G2SREQDzPY1agpBIcTa9sJxOPMCNeH3gwzhqJRDWCXW3gg0y//+LQ/8j52JbMROWyrKdMdw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"ip-address": "10.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 16"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/express-rate-limit"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"express": ">= 4.11"
|
||||
}
|
||||
},
|
||||
"node_modules/express-subdomain": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/express-subdomain/-/express-subdomain-1.0.6.tgz",
|
||||
|
|
@ -3075,7 +3094,6 @@
|
|||
"resolved": "https://registry.npmjs.org/pg/-/pg-8.18.0.tgz",
|
||||
"integrity": "sha512-xqrUDL1b9MbkydY/s+VZ6v+xiMUmOUk7SS9d/1kpyQxoJ6U9AO1oIJyUWVZojbfe5Cc/oluutcgFG4L9RDP1iQ==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"pg-connection-string": "^2.11.0",
|
||||
"pg-pool": "^3.11.0",
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
"dependencies": {
|
||||
"discord.js": "^14.25.1",
|
||||
"express": "^4.18.2",
|
||||
"express-rate-limit": "^8.3.1",
|
||||
"express-subdomain": "^1.0.5",
|
||||
"joi": "^17.7.0",
|
||||
"mongoose": "^6.7.1",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
const router = require('express').Router();
|
||||
const rateLimit = require('express-rate-limit');
|
||||
const titles = require('../titles');
|
||||
const { WebhookClient, EmbedBuilder } = require('discord.js');
|
||||
const lookup = require('./ids.json');
|
||||
|
|
@ -6,7 +7,17 @@ const blacklist = require('./blacklist.json');
|
|||
|
||||
const webhookClient = new WebhookClient({ url: process.env.WEBHOOK_URL });
|
||||
|
||||
router.post('/post', async (request, response, next) => {
|
||||
const postLimiter = rateLimit({
|
||||
windowMs: 30 * 1000,
|
||||
max: 1,
|
||||
statusCode: 500,
|
||||
message: 'ratelimited chi!!! slow ur roll bud',
|
||||
standardHeaders: true,
|
||||
legacyHeaders: false,
|
||||
validate: { trustProxy: false },
|
||||
});
|
||||
|
||||
router.post('/post', postLimiter, async (request, response, next) => {
|
||||
const title = titles[request.titleCode];
|
||||
|
||||
if (!title) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue