automod: fix spam filters counting edits multiple times

This commit is contained in:
Dragory 2020-08-02 03:23:12 +03:00
parent 9bbd245388
commit 6caf7b1304
No known key found for this signature in database
GPG key ID: 5F387BA66DF8AAC1
2 changed files with 18 additions and 0 deletions

View file

@ -4,6 +4,7 @@ import { AutomodContext, AutomodPluginType } from "../types";
import { runAutomod } from "../functions/runAutomod";
import { addRecentActionsFromMessage } from "../functions/addRecentActionsFromMessage";
import moment from "moment-timezone";
import { clearRecentActionsForMessage } from "../functions/clearRecentActionsForMessage";
export function runAutomodOnMessage(pluginData: PluginData<AutomodPluginType>, message: SavedMessage, isEdit: boolean) {
const user = pluginData.client.users.get(message.user_id);
@ -17,6 +18,10 @@ export function runAutomodOnMessage(pluginData: PluginData<AutomodPluginType>, m
};
pluginData.state.queue.add(async () => {
if (isEdit) {
clearRecentActionsForMessage(pluginData, context);
}
addRecentActionsFromMessage(pluginData, context);
await runAutomod(pluginData, context);
});

View file

@ -0,0 +1,13 @@
import { AutomodContext, AutomodPluginType } from "../types";
import { PluginData } from "knub";
import { RECENT_ACTION_EXPIRY_TIME, RecentActionType } from "../constants";
import { getEmojiInString, getRoleMentions, getUrlsInString, getUserMentions } from "../../../utils";
export function clearRecentActionsForMessage(pluginData: PluginData<AutomodPluginType>, context: AutomodContext) {
const globalIdentifier = context.message.user_id;
const perChannelIdentifier = `${context.message.channel_id}-${context.message.user_id}`;
pluginData.state.recentActions = pluginData.state.recentActions.filter(act => {
return act.identifier !== globalIdentifier && act.identifier !== perChannelIdentifier;
});
}