-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.js
74 lines (65 loc) · 2.43 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
// ------ PACKAGE IMPORTS AND VARS ------ //
const express = require("express")
const app = express()
const monitor = require("express-status-monitor")
const aoi = require('aoi.js')
const db = require('quick.db')
// ------ ROUTES HANDLER ------ //
require("./routes")(app)
// ------ HOME PAGE ------ //
app.get("/", (req, res) => {
res.sendFile(__dirname + '/home.json')
db.add("reqs_total", 1)
})
app.get('/*', (req, res) => {
res.send({ error: "Invalid endpoint" })
})
// -------- CHALK SHIT (by inder xd) ---------- //
const chalk = require("chalk");
const up = chalk.green; // ok working color
const static = chalk.hex("#03fcca");// Staticstics and lines color
const blurplexd = chalk.hex("#7289DA"); // xd blurple color
const on = chalk.yellow; // process turned on color
const nodejsv = process.version; //nodejs version
const djsv = ("v12.5.3") //djs version
const { version: packv } = require('./package.json'); // package.json version for console
// ------ API CONFIGS AND SHIT ------ //
app.listen(5000, () => {
console.log(static("--- [ Staticstics ] ---"))
console.log(on(` NodeJS: ${nodejsv} \n DiscordJS: ${djsv}\n Package.json: ${packv} `))
console.log(static("------------------------"))
console.log(blurplexd(" [ Successfully loaded all elements and codes ]"))
console.log(static("------------------------"))
console.log(up(" [ gud-api is up! ✅ ]"))
console.log(static("------------------------"));
console.log(up(" [ Connected to - https://gud-api.gofaizen.xyz ✅ ]"))
console.log(static("------------------------"));
})
const rateLimiter = require('express-rate-limit')({
windowMs: 3000,
// message: 'calm down ffs',
max: 3,
headers: true,
keyGenerator: function(req, /* res*/) {
const str = (req.headers['x-forwarded-for'] || req.socket.remoteAddress) || req.ip;
return str;
},
handler: function(req, res, /*next*/) {
console.log('RATELIMIT >> ' + req.originalUrl.split('/')[1]);
res.status(429).json({
statusCode: 429,
error: {
message: 'You are Ratelimited!',
limitedUntil: req.rateLimit.remaining + ' Remaining Requests after unblock',
currentReq: req.rateLimit.current + ' Current Requests made'
},
dev: {
stack: '👻',
time: new Date().toLocaleDateString() + ' | ' + new Date().toLocaleTimeString()
}
});
}
});
app.use(rateLimiter)
app.set('json spaces', 1); // clean look
app.use(monitor()) // logs an stuff