Website/pages/api/submit.js

32 lines
1.5 KiB
JavaScript

const local = ['127.0.0.1', '1', '192.168.1.254'];
const disallowRegex = /(https|http):\/\/.*/;
const allowed_chars = /^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ .,\/?;:'\[\]\{\}\\<>\-_+=*!#$0123456789\^]*$/;
export default async function handle(req, res) {
// Check if IP matches with the local IP
// const ip = req.socket.remoteAddress.split('::ffff:')[1];
// if(!local.includes(ip)) {
// return res.status(403).send('Forbidden. IP: ' + ip + '; Your IP in no way is logged!');
// }
const text = req.body?.text;
if(!text) return res.status(400).send("Illegal request!");
if(!allowed_chars.test(text)) return res.status(400).send("The message you were trying to send contains disallowed symbols!");
if(disallowRegex.test(text)) return res.status(400).send("Nuh-uh! You don't send links here.");
const webhookRes = await fetch(process.env.WEBHOOK, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
username: "TheRed.SH / User Feedback",
content: text,
avatar_url: "https://cdn.discordapp.com/avatars/574110505254256640/049c51674d7ccd748ca123556d351da5.webp?size=1024"
})
})
if(webhookRes.ok) {
res.status(200).send("Your message has been successfully sent!");
webhookRes.text().then(i => console.log(i));
} else {
res.status(500).send("Error! The message has failed to send!");
webhookRes.text().then(i => console.log(i));
}
}