3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-03-15 05:41:51 +00:00

automod: add alert action support

This commit is contained in:
Dragory 2019-09-30 00:47:19 +03:00
parent 6e67ff8292
commit 85136c11e3
3 changed files with 12 additions and 3 deletions

View file

@ -57,5 +57,6 @@
"SCHEDULED_MESSAGE": "⏰ {userMention(author)} scheduled a message to be posted to {channelMention(channel)} on {date} at {time} (UTC)", "SCHEDULED_MESSAGE": "⏰ {userMention(author)} scheduled a message to be posted to {channelMention(channel)} on {date} at {time} (UTC)",
"POSTED_SCHEDULED_MESSAGE": "\uD83D\uDCE8 Posted scheduled message (`{messageId}`) to {channelMention(channel)} as scheduled by {userMention(author)}", "POSTED_SCHEDULED_MESSAGE": "\uD83D\uDCE8 Posted scheduled message (`{messageId}`) to {channelMention(channel)} as scheduled by {userMention(author)}",
"BOT_ALERT": "⚠ {tmplEval(body)}" "BOT_ALERT": "⚠ {tmplEval(body)}",
"AUTOMOD_ALERT": "{text}"
} }

View file

@ -58,4 +58,5 @@ export enum LogType {
POSTED_SCHEDULED_MESSAGE, POSTED_SCHEDULED_MESSAGE,
BOT_ALERT, BOT_ALERT,
AUTOMOD_ALERT,
} }

View file

@ -20,6 +20,8 @@ import { Queue } from "../Queue";
import Timeout = NodeJS.Timeout; import Timeout = NodeJS.Timeout;
import { ModActionsPlugin } from "./ModActions"; import { ModActionsPlugin } from "./ModActions";
import { MutesPlugin } from "./Mutes"; import { MutesPlugin } from "./Mutes";
import { LogsPlugin } from "./Logs";
import { LogType } from "../data/LogType";
type MessageInfo = { channelId: string; messageId: string }; type MessageInfo = { channelId: string; messageId: string };
@ -310,7 +312,7 @@ const inviteCache = new SimpleCache(10 * MINUTES);
export class AutomodPlugin extends ZeppelinPlugin<TConfigSchema> { export class AutomodPlugin extends ZeppelinPlugin<TConfigSchema> {
public static pluginName = "automod"; public static pluginName = "automod";
public static configSchema = ConfigSchema; public static configSchema = ConfigSchema;
public static dependencies = ["mod_actions", "mutes"]; public static dependencies = ["mod_actions", "mutes", "logs"];
protected unloaded = false; protected unloaded = false;
@ -330,6 +332,7 @@ export class AutomodPlugin extends ZeppelinPlugin<TConfigSchema> {
protected modActions: ModActionsPlugin; protected modActions: ModActionsPlugin;
protected mutes: MutesPlugin; protected mutes: MutesPlugin;
protected logs: LogsPlugin;
protected static preprocessStaticConfig(config) { protected static preprocessStaticConfig(config) {
if (config.rules && typeof config.rules === "object") { if (config.rules && typeof config.rules === "object") {
@ -371,6 +374,7 @@ export class AutomodPlugin extends ZeppelinPlugin<TConfigSchema> {
protected onLoad() { protected onLoad() {
this.automodQueue = new Queue(); this.automodQueue = new Queue();
this.modActions = this.getPlugin("mod_actions"); this.modActions = this.getPlugin("mod_actions");
this.logs = this.getPlugin("logs");
} }
protected onUnload() { protected onUnload() {
@ -850,7 +854,10 @@ export class AutomodPlugin extends ZeppelinPlugin<TConfigSchema> {
} }
} }
// TODO: Alert action (and AUTOMOD_ALERT log type) if (rule.actions.alert) {
const text = rule.actions.alert.text;
this.logs.log(LogType.AUTOMOD_ALERT, { text });
}
} }
@d.event("messageCreate") @d.event("messageCreate")