feat: post auto flagging on downvotes #10029 (#10367)

* feat: post auto flagging on downvotes

* fix: just get one admin
This commit is contained in:
gasoved
2022-03-04 23:38:16 +03:00
committed by GitHub
parent 56345777ce
commit 62187caa67
8 changed files with 31 additions and 9 deletions

View File

@@ -2,10 +2,12 @@
const meta = require('../meta');
const db = require('../database');
const flags = require('../flags');
const user = require('../user');
const topics = require('../topics');
const plugins = require('../plugins');
const privileges = require('../privileges');
const translator = require('../translator');
module.exports = function (Posts) {
const votesInProgress = {};
@@ -243,6 +245,13 @@ module.exports = function (Posts) {
if (!postData || !postData.pid || !postData.tid) {
return;
}
const threshold = meta.config['flags:autoFlagOnDownvoteThreshold'];
if (threshold && postData.votes <= (-threshold)) {
const adminUid = await user.getFirstAdminUid();
const reportMsg = await translator.translate(`[[flags:auto-flagged, ${-postData.votes}]]`);
const flagObj = await flags.create('post', postData.pid, adminUid, reportMsg, null, true);
await flags.notify(flagObj, adminUid, true);
}
await Promise.all([
updateTopicVoteCount(postData),
db.sortedSetAdd('posts:votes', postData.votes, postData.pid),