automod: fix spam filters counting edits multiple times
This commit is contained in:
parent
9bbd245388
commit
6caf7b1304
2 changed files with 18 additions and 0 deletions
|
@ -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);
|
||||
});
|
||||
|
|
|
@ -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;
|
||||
});
|
||||
}
|
Loading…
Add table
Reference in a new issue