censor: make regex matching case-insensitive

This commit is contained in:
Dragory 2019-02-16 14:13:19 +02:00
parent 8ddf53345d
commit 44c731564b

View file

@ -8,14 +8,14 @@ import {
disableCodeBlocks, disableCodeBlocks,
getInviteCodesInString, getInviteCodesInString,
getUrlsInString, getUrlsInString,
stripObjectToScalars stripObjectToScalars,
} from "../utils"; } from "../utils";
import { ZalgoRegex } from "../data/Zalgo"; import { ZalgoRegex } from "../data/Zalgo";
import { GuildSavedMessages } from "../data/GuildSavedMessages"; import { GuildSavedMessages } from "../data/GuildSavedMessages";
import { SavedMessage } from "../data/entities/SavedMessage"; import { SavedMessage } from "../data/entities/SavedMessage";
export class CensorPlugin extends Plugin { export class CensorPlugin extends Plugin {
public static pluginName = 'censor'; public static pluginName = "censor";
protected serverLogs: GuildLogs; protected serverLogs: GuildLogs;
protected savedMessages: GuildSavedMessages; protected savedMessages: GuildSavedMessages;
@ -39,7 +39,7 @@ export class CensorPlugin extends Plugin {
blocked_tokens: null, blocked_tokens: null,
blocked_words: null, blocked_words: null,
blocked_regex: null blocked_regex: null,
}, },
overrides: [ overrides: [
@ -51,10 +51,10 @@ export class CensorPlugin extends Plugin {
filter_domains: false, filter_domains: false,
blocked_tokens: null, blocked_tokens: null,
blocked_words: null, blocked_words: null,
blocked_regex: null blocked_regex: null,
} },
} },
] ],
}; };
} }
@ -89,7 +89,7 @@ export class CensorPlugin extends Plugin {
member: stripObjectToScalars(member, ["user"]), member: stripObjectToScalars(member, ["user"]),
channel: stripObjectToScalars(channel), channel: stripObjectToScalars(channel),
reason, reason,
messageText: disableCodeBlocks(deactivateMentions(savedMessage.data.content)) messageText: disableCodeBlocks(deactivateMentions(savedMessage.data.content)),
}); });
} }
@ -100,7 +100,7 @@ export class CensorPlugin extends Plugin {
const filterZalgo = this.configValueForMemberIdAndChannelId( const filterZalgo = this.configValueForMemberIdAndChannelId(
savedMessage.user_id, savedMessage.user_id,
savedMessage.channel_id, savedMessage.channel_id,
"filter_zalgo" "filter_zalgo",
); );
if (filterZalgo) { if (filterZalgo) {
const result = ZalgoRegex.exec(savedMessage.data.content); const result = ZalgoRegex.exec(savedMessage.data.content);
@ -114,28 +114,28 @@ export class CensorPlugin extends Plugin {
const filterInvites = this.configValueForMemberIdAndChannelId( const filterInvites = this.configValueForMemberIdAndChannelId(
savedMessage.user_id, savedMessage.user_id,
savedMessage.channel_id, savedMessage.channel_id,
"filter_invites" "filter_invites",
); );
if (filterInvites) { if (filterInvites) {
const inviteGuildWhitelist: string[] = this.configValueForMemberIdAndChannelId( const inviteGuildWhitelist: string[] = this.configValueForMemberIdAndChannelId(
savedMessage.user_id, savedMessage.user_id,
savedMessage.channel_id, savedMessage.channel_id,
"invite_guild_whitelist" "invite_guild_whitelist",
); );
const inviteGuildBlacklist: string[] = this.configValueForMemberIdAndChannelId( const inviteGuildBlacklist: string[] = this.configValueForMemberIdAndChannelId(
savedMessage.user_id, savedMessage.user_id,
savedMessage.channel_id, savedMessage.channel_id,
"invite_guild_blacklist" "invite_guild_blacklist",
); );
const inviteCodeWhitelist: string[] = this.configValueForMemberIdAndChannelId( const inviteCodeWhitelist: string[] = this.configValueForMemberIdAndChannelId(
savedMessage.user_id, savedMessage.user_id,
savedMessage.channel_id, savedMessage.channel_id,
"invite_code_whitelist" "invite_code_whitelist",
); );
const inviteCodeBlacklist: string[] = this.configValueForMemberIdAndChannelId( const inviteCodeBlacklist: string[] = this.configValueForMemberIdAndChannelId(
savedMessage.user_id, savedMessage.user_id,
savedMessage.channel_id, savedMessage.channel_id,
"invite_code_blacklist" "invite_code_blacklist",
); );
const inviteCodes = getInviteCodesInString(savedMessage.data.content); const inviteCodes = getInviteCodesInString(savedMessage.data.content);
@ -148,7 +148,7 @@ export class CensorPlugin extends Plugin {
if (inviteGuildWhitelist && !inviteGuildWhitelist.includes(invite.guild.id)) { if (inviteGuildWhitelist && !inviteGuildWhitelist.includes(invite.guild.id)) {
this.censorMessage( this.censorMessage(
savedMessage, savedMessage,
`invite guild (**${invite.guild.name}** \`${invite.guild.id}\`) not found in whitelist` `invite guild (**${invite.guild.name}** \`${invite.guild.id}\`) not found in whitelist`,
); );
return; return;
} }
@ -156,7 +156,7 @@ export class CensorPlugin extends Plugin {
if (inviteGuildBlacklist && inviteGuildBlacklist.includes(invite.guild.id)) { if (inviteGuildBlacklist && inviteGuildBlacklist.includes(invite.guild.id)) {
this.censorMessage( this.censorMessage(
savedMessage, savedMessage,
`invite guild (**${invite.guild.name}** \`${invite.guild.id}\`) found in blacklist` `invite guild (**${invite.guild.name}** \`${invite.guild.id}\`) found in blacklist`,
); );
return; return;
} }
@ -177,18 +177,18 @@ export class CensorPlugin extends Plugin {
const filterDomains = this.configValueForMemberIdAndChannelId( const filterDomains = this.configValueForMemberIdAndChannelId(
savedMessage.user_id, savedMessage.user_id,
savedMessage.channel_id, savedMessage.channel_id,
"filter_domains" "filter_domains",
); );
if (filterDomains) { if (filterDomains) {
const domainWhitelist: string[] = this.configValueForMemberIdAndChannelId( const domainWhitelist: string[] = this.configValueForMemberIdAndChannelId(
savedMessage.user_id, savedMessage.user_id,
savedMessage.channel_id, savedMessage.channel_id,
"domain_whitelist" "domain_whitelist",
); );
const domainBlacklist: string[] = this.configValueForMemberIdAndChannelId( const domainBlacklist: string[] = this.configValueForMemberIdAndChannelId(
savedMessage.user_id, savedMessage.user_id,
savedMessage.channel_id, savedMessage.channel_id,
"domain_blacklist" "domain_blacklist",
); );
const urls = getUrlsInString(savedMessage.data.content); const urls = getUrlsInString(savedMessage.data.content);
@ -230,7 +230,7 @@ export class CensorPlugin extends Plugin {
const blockedRegex = const blockedRegex =
this.configValueForMemberIdAndChannelId(savedMessage.user_id, savedMessage.channel_id, "blocked_regex") || []; this.configValueForMemberIdAndChannelId(savedMessage.user_id, savedMessage.channel_id, "blocked_regex") || [];
for (const regexStr of blockedRegex) { for (const regexStr of blockedRegex) {
const regex = new RegExp(regexStr); const regex = new RegExp(regexStr, "i");
if (regex.test(savedMessage.data.content)) { if (regex.test(savedMessage.data.content)) {
this.censorMessage(savedMessage, `blocked regex (\`${regexStr}\`) found`); this.censorMessage(savedMessage, `blocked regex (\`${regexStr}\`) found`);
return; return;