[neutratywy] anti-troll measures

This commit is contained in:
Andrea Vos 2020-08-06 17:59:08 +02:00
parent 5e0522d6d0
commit ab2865493a
2 changed files with 33 additions and 13 deletions

View File

@ -1,7 +1,7 @@
<template>
<div>
<div v-for="(synonym, i) in val" :key="i" class="input-group input-group-sm p-1">
<input type="text" class="form-control" v-model="val[i]" required ref="inp">
<input type="text" class="form-control" v-model="val[i]" required ref="inp" maxlength="24">
<div v-if="i" class="input-group-append">
<button type="button" class="btn btn-outline-danger btn-sm" @click="remove(i)">
<Icon v="times"/>

View File

@ -45,6 +45,24 @@ const remove = async (db, id) => {
`);
}
const trollWords = [
'cipeusz',
'feminazi',
'bruksela',
'zboczeń',
];
const isTroll = (body) => {
const jsonBody = JSON.stringify(body);
for (let trollWord of trollWords) {
if (jsonBody.indexOf(trollWord) > -1) {
return true;
}
}
return false;
}
export default async function (req, res, next) {
const db = await sqlite.open({
filename: __dirname + '/../data/db.sqlite',
@ -64,6 +82,7 @@ export default async function (req, res, next) {
ORDER BY approved, masc
`);
} else if (req.method === 'POST' && url === '/submit') {
if (isAdmin || !isTroll(req.body.data)) {
const id = ulid()
await db.get(SQL`
INSERT INTO nouns (id, masc, fem, neutr, mascPl, femPl, neutrPl, approved, base_id)
@ -77,6 +96,7 @@ export default async function (req, res, next) {
if (isAdmin) {
await approve(db, id);
}
}
result = 'ok';
} else if (req.method === 'POST' && url.startsWith('/approve/') && isAdmin) {
await approve(db, getId(url));