mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-04-14 19:56:23 +00:00
commit 83bcd07e20385d58f69f9490bf168307e454b2cc
Author: SabreCat <sabrecat@gmail.com>
Date: Fri Dec 22 17:24:45 2023 -0600
fix(profile): revert state on error
commit 6aa6278727eb22c6133994f648ef0df3b0e7e866
Author: SabreCat <sabrecat@gmail.com>
Date: Fri Dec 22 14:37:28 2023 -0600
fix(test): no longer care about swears in profile
commit 0882c77038f43fdd237e8f75d52bef256fa97d42
Author: SabreCat <sabe@habitica.com>
Date: Fri Dec 22 14:15:42 2023 -0600
fix(lint): remove unused functions
commit 9b275ef72d5315eb1ccd50c44a349d5b7d902bd3
Author: SabreCat <sabe@habitica.com>
Date: Fri Dec 22 14:09:11 2023 -0600
fix(profiles): restore reporting functionality
Also remove unused and/or unrelated code and clean up comments
commit f4ed8c14619456aa264543cd077f73db3fc374b8
Merge: da16aa9c75 f8ba191eea
Author: SabreCat <sabe@habitica.com>
Date: Fri Dec 22 12:11:00 2023 -0600
Merge branch 'release' into slur-swear-blocker
commit da16aa9c75afefe2929e25bca0d47720cb1dd16a
Author: CuriousMagpie <eilatan@gmail.com>
Date: Thu Dec 21 13:20:28 2023 -0500
feat(s/s blocker): challenge updates to slack
commit 51bed61c4c21241d5f0af1729cd9065e80a334cd
Author: CuriousMagpie <eilatan@gmail.com>
Date: Tue Dec 19 15:36:59 2023 -0500
feat(s/s blocker): work on challenges
commit 139cbcb21c47c86c760722c876358c2b6372e72f
Author: CuriousMagpie <eilatan@gmail.com>
Date: Wed Dec 13 13:20:45 2023 -0500
fix(slack): update Slack notification to include authorEmail and remove undefined
commit 805b287721ede4a3a3a9f950afceebe55caf7d23
Author: SabreCat <sabe@habitica.com>
Date: Tue Dec 12 16:35:54 2023 -0600
fix(profiles): improve profanity check logic
commit 02ef7e8822a8b9e2680423fdebf5f03a2c51262f
Author: CuriousMagpie <eilatan@gmail.com>
Date: Tue Dec 12 17:22:29 2023 -0500
feat(slur blocker): arghhhhhh
commit 949dee9b1ef659ee285fc603d30d4bdd48894ffd
Author: CuriousMagpie <eilatan@gmail.com>
Date: Tue Dec 12 13:57:29 2023 -0500
feat(slur blocker): more refactoring
commit bf953998f41ae7f2e7a25465321430f181f09769
Merge: d21aa687b7 f572aa442e
Author: CuriousMagpie <eilatan@gmail.com>
Date: Mon Dec 11 15:20:06 2023 -0500
Merge branch 'release' into slur-swear-blocker
commit d21aa687b7b493a06a4079cf0b2ef90ad6565138
Author: CuriousMagpie <eilatan@gmail.com>
Date: Thu Dec 7 18:00:29 2023 -0500
feat(slur blocker): refactoring code
commit f2db90c494b6c2705721e1b9fdbf503aec7ad7d8
Author: CuriousMagpie <eilatan@gmail.com>
Date: Wed Dec 6 12:12:55 2023 -0500
feat(slur/swear blocker): work on Profiles
commit 8f9822ffe8c820918f1ff59c3fd97faded9ad1f9
Author: CuriousMagpie <eilatan@gmail.com>
Date: Mon Dec 4 17:25:17 2023 -0500
feat(profiles/challenges): work on profile block & slack report
commit bdb2e06e5e4fc9c34c0abc27139737be05d1320b
Author: CuriousMagpie <eilatan@gmail.com>
Date: Fri Dec 1 16:11:27 2023 -0500
feat(slur/swear): working on it
commit 7277b5cad5ceb17c97fda22d871bf3e2edd104b7
Merge: 24d14277ab 941f1f976c
Author: CuriousMagpie <eilatan@gmail.com>
Date: Fri Dec 1 15:04:46 2023 -0500
Merge branch 'profile-slur-swear-blocker' into slur-swear-blocker
commit 941f1f976c8a04f22a6843e70caea9e071e409b3
Author: CuriousMagpie <eilatan@gmail.com>
Date: Thu Nov 30 14:34:30 2023 -0500
feat(profiles/PMs): slur/swear blocker upgrade
commit 0863017efc0f7a1832a296addabe68ba16278cf6
Author: CuriousMagpie <eilatan@gmail.com>
Date: Tue Nov 28 16:21:21 2023 -0500
feat(profiles): slur/swear blocker
commit e9937d864ff35e9ac70c4c3c58d172187cdb3c3f
Author: CuriousMagpie <eilatan@gmail.com>
Date: Mon Nov 27 15:24:37 2023 -0500
feat(profiles): slur/swear blocker
commit 24d14277ab84f7fb3c67aa666ef8ae4312c68cb5
Author: CuriousMagpie <eilatan@gmail.com>
Date: Mon Nov 27 14:12:46 2023 -0500
feat(challenges): update behavior based on public/private groups
commit 1251f5b6a7ccc57f76b9979dc57c5dc3c712520e
Author: CuriousMagpie <eilatan@gmail.com>
Date: Tue Nov 14 16:28:29 2023 -0500
feat(challenges): swear and slur blocker
commit a771045ca7dde5bd4edea83dcb5572e093da95f1
Author: CuriousMagpie <eilatan@gmail.com>
Date: Tue Nov 14 15:46:16 2023 -0500
feat(challenges): even more slur blocker
commit e5e91aa78ad244a55e6f43f35bef5ef7b3254d9b
Author: CuriousMagpie <eilatan@gmail.com>
Date: Tue Nov 14 14:31:25 2023 -0500
feat(challenges): more slur blocker
commit 50e824e4e3ebf1479deb17fd0ecf6d293c56db62
Author: CuriousMagpie <eilatan@gmail.com>
Date: Mon Nov 13 15:12:14 2023 -0500
feat(challenges): slur blocker
commit 315ea24ef4ab846ddcc8a20ea09a58c6eb523a24
Author: CuriousMagpie <eilatan@gmail.com>
Date: Fri Nov 3 12:31:12 2023 -0400
feat(challenges): slur blocker work
commit 0f742d219fd5bcbb47b29e3c80d73284688490a7
Author: CuriousMagpie <eilatan@gmail.com>
Date: Thu Nov 2 16:22:31 2023 -0400
feat(challenges): add banned words & slur blocker to challenges
commit 40d6b60ee3c8675b95646132d85f47b44a0bdbb4
Author: CuriousMagpie <eilatan@gmail.com>
Date: Mon Oct 23 13:00:46 2023 -0400
update packages on local/origin repo
63 lines
2.3 KiB
JavaScript
63 lines
2.3 KiB
JavaScript
import bannedSlurs from '../bannedSlurs';
|
|
import bannedWords from '../bannedWords';
|
|
import {
|
|
getMatchesByWordArray,
|
|
normalizeUnicodeString,
|
|
removePunctuationFromString,
|
|
} from '../stringUtils';
|
|
import forbiddenUsernames from '../forbiddenUsernames';
|
|
|
|
const bannedSlurRegexes = bannedSlurs.map(word => new RegExp(`\\b([^a-z]+)?${word}([^a-z]+)?\\b`, 'i'));
|
|
const bannedWordRegexes = bannedWords.map(word => new RegExp(`\\b([^a-z]+)?${word}([^a-z]+)?\\b`, 'i'));
|
|
|
|
export function stringContainsProfanity (str, profanityType = 'bannedWord') {
|
|
const bannedRegexes = profanityType === 'slur'
|
|
? bannedSlurRegexes
|
|
: bannedWordRegexes;
|
|
|
|
for (let i = 0; i < bannedRegexes.length; i += 1) {
|
|
const regEx = bannedRegexes[i];
|
|
const match = removePunctuationFromString(normalizeUnicodeString(str)).match(regEx);
|
|
if (match !== null && match[0] !== null) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
export function nameContainsNewline (username) {
|
|
return username.includes('\n');
|
|
}
|
|
|
|
function usernameIsForbidden (username) {
|
|
const forbiddenWordsMatched = getMatchesByWordArray(username, forbiddenUsernames);
|
|
return forbiddenWordsMatched.length > 0;
|
|
}
|
|
|
|
const invalidCharsRegex = new RegExp('[^a-z0-9_-]', 'i');
|
|
function usernameContainsInvalidCharacters (username) {
|
|
const match = username.match(invalidCharsRegex);
|
|
return match !== null && match[0] !== null;
|
|
}
|
|
|
|
export function verifyDisplayName (displayName, res) {
|
|
const issues = [];
|
|
if (displayName.length < 1 || displayName.length > 30) issues.push(res.t('displaynameIssueLength'));
|
|
if (stringContainsProfanity(displayName, 'slur')) issues.push(res.t('bannedSlurUsedInProfile'));
|
|
if (nameContainsNewline(displayName)) issues.push(res.t('displaynameIssueNewline'));
|
|
|
|
return issues;
|
|
}
|
|
|
|
export function verifyUsername (username, res, newUser = true) {
|
|
const slurMessage = newUser
|
|
? res.t('usernameIssueSlur')
|
|
: res.t('bannedSlurUsedInProfile');
|
|
const issues = [];
|
|
if (username.length < 1 || username.length > 20) issues.push(res.t('usernameIssueLength'));
|
|
if (usernameContainsInvalidCharacters(username)) issues.push(res.t('usernameIssueInvalidCharacters'));
|
|
if (stringContainsProfanity(username, 'slur') || stringContainsProfanity(username)) issues.push(slurMessage);
|
|
if (usernameIsForbidden(username)) issues.push(res.t('usernameIssueForbidden'));
|
|
|
|
return issues;
|
|
}
|