diff --git a/backend/src/constants/profanities.ts b/backend/src/constants/profanities.ts index 3241be630..2e06e2b18 100644 --- a/backend/src/constants/profanities.ts +++ b/backend/src/constants/profanities.ts @@ -1,5 +1,7 @@ +import _ from "lodash"; + // Sorry for the bad words -const profanities = [ +export const profanities = [ "miodec", "bitly", "niqqa", @@ -431,4 +433,7 @@ const profanities = [ "ass", ]; -export default profanities; +export const regexProfanities = profanities.map((profanity) => { + const normalizedProfanity = _.escapeRegExp(profanity.toLowerCase()); + return `${normalizedProfanity}.*`; +}); diff --git a/backend/src/utils/validation.ts b/backend/src/utils/validation.ts index bae616938..543f228b8 100644 --- a/backend/src/utils/validation.ts +++ b/backend/src/utils/validation.ts @@ -1,5 +1,5 @@ import _ from "lodash"; -import profanities from "../constants/profanities"; +import { profanities, regexProfanities } from "../constants/profanities"; import { matchesAPattern, sanitizeString } from "./misc"; export function inRange(value: number, min: number, max: number): boolean { @@ -38,12 +38,9 @@ export function containsProfanity(text: string): boolean { return sanitizeString(str) ?? ""; }); - const hasProfanity = profanities.some((profanity) => { - const normalizedProfanity = _.escapeRegExp(profanity.toLowerCase()); - const prefixedProfanity = `${normalizedProfanity}.*`; - + const hasProfanity = regexProfanities.some((profanity) => { return normalizedText.some((word) => { - return matchesAPattern(word, prefixedProfanity); + return matchesAPattern(word, profanity); }); });