3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-11 04:45:02 +00:00

Add !invite utility command

This commit is contained in:
Dragory 2020-08-05 18:52:15 +03:00
parent ebdeabdc32
commit 024078ccdc
No known key found for this signature in database
GPG key ID: 5F387BA66DF8AAC1
7 changed files with 187 additions and 24 deletions

View file

@ -1,9 +1,16 @@
import { PluginData } from "knub";
import { CensorPluginType } from "../types";
import { SavedMessage } from "src/data/entities/SavedMessage";
import { Embed, GuildInvite } from "eris";
import { AnyInvite, Embed, GuildInvite } from "eris";
import { ZalgoRegex } from "src/data/Zalgo";
import { getInviteCodesInString, getUrlsInString, resolveMember, resolveInvite } from "src/utils";
import {
getInviteCodesInString,
getUrlsInString,
resolveMember,
resolveInvite,
isGuildInvite,
isRESTGuildInvite,
} from "src/utils";
import cloneDeep from "lodash.clonedeep";
import { censorMessage } from "./censorMessage";
import escapeStringRegexp from "escape-string-regexp";
@ -52,7 +59,7 @@ export async function applyFiltersToMsg(
const inviteCodes = getInviteCodesInString(messageContent);
const invites: Array<GuildInvite | null> = await Promise.all(
const invites: Array<AnyInvite | null> = await Promise.all(
inviteCodes.map(code => resolveInvite(pluginData.client, code)),
);
@ -63,27 +70,29 @@ export async function applyFiltersToMsg(
return true;
}
if (!invite.guild && !allowGroupDMInvites) {
if (!isGuildInvite(invite) && !allowGroupDMInvites) {
censorMessage(pluginData, savedMessage, `group dm invites are not allowed`);
return true;
}
if (inviteGuildWhitelist && !inviteGuildWhitelist.includes(invite.guild.id)) {
censorMessage(
pluginData,
savedMessage,
`invite guild (**${invite.guild.name}** \`${invite.guild.id}\`) not found in whitelist`,
);
return true;
}
if (isRESTGuildInvite(invite)) {
if (inviteGuildWhitelist && !inviteGuildWhitelist.includes(invite.guild.id)) {
censorMessage(
pluginData,
savedMessage,
`invite guild (**${invite.guild.name}** \`${invite.guild.id}\`) not found in whitelist`,
);
return true;
}
if (inviteGuildBlacklist && inviteGuildBlacklist.includes(invite.guild.id)) {
censorMessage(
pluginData,
savedMessage,
`invite guild (**${invite.guild.name}** \`${invite.guild.id}\`) found in blacklist`,
);
return true;
if (inviteGuildBlacklist && inviteGuildBlacklist.includes(invite.guild.id)) {
censorMessage(
pluginData,
savedMessage,
`invite guild (**${invite.guild.name}** \`${invite.guild.id}\`) found in blacklist`,
);
return true;
}
}
if (inviteCodeWhitelist && !inviteCodeWhitelist.includes(invite.code)) {